mirror of
				https://github.com/bensuperpc/infrastructure.git
				synced 2025-10-25 23:36:20 +02:00 
			
		
		
		
	Compare commits
	
		
			132 Commits
		
	
	
		
			mainold
			...
			d53081cd35
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d53081cd35 | |||
| 5bada9c98b | |||
| ca42926acc | |||
| e5d8ced52d | |||
| b10dcf6603 | |||
| d6cfd4b229 | |||
| d1f13de09e | |||
| 4818e18842 | |||
| 811f6ac7bb | |||
| 540bf34947 | |||
| 6817b3deb0 | |||
| 860be99a4e | |||
| 1b9c6ad1ad | |||
| 35e54a598c | |||
| 018282f8bb | |||
| a265603ff6 | |||
| 6578de0ffa | |||
| 31220657c8 | |||
| 4676eb9cdc | |||
| 754c5ccb9c | |||
| 6ab1b3c486 | |||
| 4496211aa5 | |||
| e430fad46e | |||
| 55bf1ddf70 | |||
| b6d1b9f5a7 | |||
| 54e24022ce | |||
| a65975e840 | |||
| 62e7ec4650 | |||
| 41fe67ba58 | |||
| 0745869554 | |||
| 4dc0d9f56a | |||
| 96d4284d64 | |||
| 1b34b7f9f2 | |||
| b2a3b2623e | |||
| 162250b0d9 | |||
| b819c4398d | |||
| 5b48945835 | |||
| d7a36310ec | |||
| c0aa45026b | |||
| 71ab3026c6 | |||
| 2aaccc2458 | |||
| a15380b95c | |||
| 84986db7b1 | |||
| 3573286659 | |||
| 0c75405cec | |||
| b8259bf676 | |||
| fe327d654a | |||
| c33e11e455 | |||
| 1f96c00bfc | |||
| 247e344a52 | |||
| bd67d7d944 | |||
| 47ea7b6ea5 | |||
| 059289d7c3 | |||
| 5eef332e34 | |||
| 51a014e14c | |||
| edc107feaf | |||
| 68b917a720 | |||
| eab7e99486 | |||
| 3d88e6ca37 | |||
| 927522a5a8 | |||
| bcec823b46 | |||
| 572c9bc4bb | |||
| 7989688e8f | |||
| 4ba26dd3b7 | |||
| ec51802360 | |||
| 6a91e090df | |||
| 8ac352e542 | |||
|   | 6e57893aec | ||
| 2a997e0f4c | |||
| 8b479921c7 | |||
| f22ca7a7f0 | |||
| 0e523a9edc | |||
| ced832d359 | |||
| 0f7df1997f | |||
| a141daff08 | |||
| 29e3988bca | |||
| 72973384fb | |||
| 2da0baa838 | |||
| 0c27a361d3 | |||
| 6b5f489252 | |||
| 39ba3a47a2 | |||
| 112df38652 | |||
| b9296c280d | |||
| 2df1d52ffb | |||
| b101480a01 | |||
| f11ca40a94 | |||
| 340c1a1438 | |||
| 33b68a1811 | |||
| 805584b2e1 | |||
| 60837143f6 | |||
| 4527aed52b | |||
| 9110cfec89 | |||
| 817d09683b | |||
| aee30a0aaf | |||
| 7231d29b91 | |||
| 2eaaf1f936 | |||
| 5e3b93ac20 | |||
| fe7cac2fb5 | |||
| 4add489e77 | |||
| 8dc8a2bea4 | |||
| b099097526 | |||
| 077aaf806c | |||
| 9835f44382 | |||
| 3bd36ddf87 | |||
| f4b6c9e886 | |||
| 6fc996fdec | |||
| 6fd0a9563e | |||
| 870649e860 | |||
| 01cd09f1e5 | |||
| 6915ecb88d | |||
| 92722a9f59 | |||
| 88499758d6 | |||
| 8730a32195 | |||
| 8f8b37edf8 | |||
| 134060c73d | |||
| 1771a8e3ad | |||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9ef3b36aa6 | ||
| e8f1a9fd35 | |||
| 8b7c2d9f89 | |||
| 32c44523b4 | |||
| 3716b0a4ce | |||
| 7ae9bf54a3 | |||
| 93d6a913ed | |||
| 851c67cf90 | |||
| 0c8bd4664c | |||
| fe8d7c0882 | |||
| 7efd27e4d9 | |||
| 834b50a6ba | |||
| ae6eff1f7c | |||
| b35ebcf7be | |||
| 418724258e | |||
| 1babc4f57b | 
							
								
								
									
										15
									
								
								.gitea/workflows/gitea-ci.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.gitea/workflows/gitea-ci.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | name: Build And Test | ||||||
|  | run-name: ${{ gitea.actor }} is runs ci pipeline | ||||||
|  | on: [ push ] | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   build: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - run: ls | ||||||
|  | publish: | ||||||
|  |     runs-on: cth-ubuntu-latest | ||||||
|  |     needs: build | ||||||
|  |     if: gitea.ref == 'refs/heads/main' | ||||||
|  |     steps: | ||||||
|  |       - run: ls | ||||||
							
								
								
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | github: bensuperpc  | ||||||
							
								
								
									
										38
									
								
								.github/ISSUE_TEMPLATE/bug_report.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.github/ISSUE_TEMPLATE/bug_report.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | --- | ||||||
|  | name: Bug report | ||||||
|  | about: Create a report to help us improve | ||||||
|  | title: '' | ||||||
|  | labels: '' | ||||||
|  | assignees: '' | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | **Describe the bug** | ||||||
|  | A clear and concise description of what the bug is. | ||||||
|  |  | ||||||
|  | **To Reproduce** | ||||||
|  | Steps to reproduce the behavior: | ||||||
|  | 1. Go to '...' | ||||||
|  | 2. Click on '....' | ||||||
|  | 3. Scroll down to '....' | ||||||
|  | 4. See error | ||||||
|  |  | ||||||
|  | **Expected behavior** | ||||||
|  | A clear and concise description of what you expected to happen. | ||||||
|  |  | ||||||
|  | **Screenshots** | ||||||
|  | If applicable, add screenshots to help explain your problem. | ||||||
|  |  | ||||||
|  | **Desktop (please complete the following information):** | ||||||
|  |  - OS: [e.g. iOS] | ||||||
|  |  - Browser [e.g. chrome, safari] | ||||||
|  |  - Version [e.g. 22] | ||||||
|  |  | ||||||
|  | **Smartphone (please complete the following information):** | ||||||
|  |  - Device: [e.g. iPhone6] | ||||||
|  |  - OS: [e.g. iOS8.1] | ||||||
|  |  - Browser [e.g. stock browser, safari] | ||||||
|  |  - Version [e.g. 22] | ||||||
|  |  | ||||||
|  | **Additional context** | ||||||
|  | Add any other context about the problem here. | ||||||
							
								
								
									
										10
									
								
								.github/ISSUE_TEMPLATE/custom.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.github/ISSUE_TEMPLATE/custom.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | --- | ||||||
|  | name: Custom issue template | ||||||
|  | about: Describe this issue template's purpose here. | ||||||
|  | title: '' | ||||||
|  | labels: '' | ||||||
|  | assignees: '' | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								.github/ISSUE_TEMPLATE/feature_request.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.github/ISSUE_TEMPLATE/feature_request.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | --- | ||||||
|  | name: Feature request | ||||||
|  | about: Suggest an idea for this project | ||||||
|  | title: '' | ||||||
|  | labels: '' | ||||||
|  | assignees: '' | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | **Is your feature request related to a problem? Please describe.** | ||||||
|  | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||||||
|  |  | ||||||
|  | **Describe the solution you'd like** | ||||||
|  | A clear and concise description of what you want to happen. | ||||||
|  |  | ||||||
|  | **Describe alternatives you've considered** | ||||||
|  | A clear and concise description of any alternative solutions or features you've considered. | ||||||
|  |  | ||||||
|  | **Additional context** | ||||||
|  | Add any other context or screenshots about the feature request here. | ||||||
							
								
								
									
										6
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | version: 2 | ||||||
|  | updates: | ||||||
|  |   - package-ecosystem: "github-actions" | ||||||
|  |     directory: "/" | ||||||
|  |     schedule: | ||||||
|  |       interval: "daily"  | ||||||
							
								
								
									
										46
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | name: infrastructure | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - "main" | ||||||
|  |       - "master" | ||||||
|  |       - "dev" | ||||||
|  |     paths-ignore: | ||||||
|  |       - "**/README.md" | ||||||
|  |   pull_request: | ||||||
|  |     branches: | ||||||
|  |       - "*" | ||||||
|  |   schedule: | ||||||
|  |     - cron: "0 9 * * 2" # every tuesday at 9:00 https://crontab.guru/#0_7_*_*_1 | ||||||
|  |   workflow_dispatch: | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   image: | ||||||
|  |     name: infrastructure | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     timeout-minutes: 30 | ||||||
|  |     steps: | ||||||
|  |       - name: "Checkout Code" | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |         with: | ||||||
|  |           submodules: "recursive" | ||||||
|  |           fetch-depth: 0 | ||||||
|  |       - name: "Update server image" | ||||||
|  |         run: make update-docker | ||||||
|  |       - name: "Build server" | ||||||
|  |         run: make build | ||||||
|  | #      - name: "Start server" | ||||||
|  | #        run: make start | ||||||
|  |       - name: "Logs server" | ||||||
|  |         run: make logs | ||||||
|  |       - name: "State server" | ||||||
|  |         run: make state | ||||||
|  |       - name: "Stop server" | ||||||
|  |         run: make stop | ||||||
|  |       - name: "Down server" | ||||||
|  |         run: make down | ||||||
|  |       - name: "Clean server" | ||||||
|  |         run: make clean | ||||||
|  |       - name: "Purge server" | ||||||
|  |         run: make purge | ||||||
							
								
								
									
										31
									
								
								.github/workflows/submodule-update.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								.github/workflows/submodule-update.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | name: submodule-update | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   schedule: | ||||||
|  |     - cron: '0 */8 * * *' | ||||||
|  |   workflow_dispatch: | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   image: | ||||||
|  |     name: submodule-update | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: "Checkout Code" | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |         with: | ||||||
|  |           token: ${{ secrets.CI_TOKEN }} | ||||||
|  |           repository: ${{ github.repository }} | ||||||
|  |           submodules: 'recursive' | ||||||
|  |           fetch-depth: 1 | ||||||
|  |       # Update references | ||||||
|  |       - name: Git Sumbodule Update | ||||||
|  |         run: | | ||||||
|  |           git pull --recurse-submodules | ||||||
|  |           git submodule update --remote --recursive | ||||||
|  |       # Commit and push | ||||||
|  |       - name: Commit update | ||||||
|  |         run: | | ||||||
|  |           git config --global user.name 'Bensuperpc' | ||||||
|  |           git config --global user.email 'bensuperpc@gmail.com' | ||||||
|  |           git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} | ||||||
|  |           git commit -am "Auto updated submodule references" && git push || echo "No changes to commit" | ||||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1 @@ | |||||||
| *.env |  | ||||||
|   | |||||||
							
								
								
									
										58
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,15 +1,8 @@ | |||||||
| #////////////////////////////////////////////////////////////// | #////////////////////////////////////////////////////////////// | ||||||
| #//   ____                                                   // |  | ||||||
| #//  | __ )  ___ _ __  ___ _   _ _ __   ___ _ __ _ __   ___  // |  | ||||||
| #//  |  _ \ / _ \ '_ \/ __| | | | '_ \ / _ \ '__| '_ \ / __| // |  | ||||||
| #//  | |_) |  __/ | | \__ \ |_| | |_) |  __/ |  | |_) | (__  // |  | ||||||
| #//  |____/ \___|_| |_|___/\__,_| .__/ \___|_|  | .__/ \___| // |  | ||||||
| #//                             |_|             |_|          // |  | ||||||
| #////////////////////////////////////////////////////////////// |  | ||||||
| #//                                                          // | #//                                                          // | ||||||
| #//  Infrastructur, 2022                                     // | #//  Infrastructure, 2024                                    // | ||||||
| #//  Created: 14, April, 2022                                // | #//  Created: 14, April, 2022                                // | ||||||
| #//  Modified: 10, April, 2023                               // | #//  Modified: 05, May, 2024                                 // | ||||||
| #//  file: -                                                 // | #//  file: -                                                 // | ||||||
| #//  -                                                       // | #//  -                                                       // | ||||||
| #//  Source:                                                 // | #//  Source:                                                 // | ||||||
| @@ -18,64 +11,81 @@ | |||||||
| #//                                                          // | #//                                                          // | ||||||
| #////////////////////////////////////////////////////////////// | #////////////////////////////////////////////////////////////// | ||||||
|  |  | ||||||
|  | SERVER_DIRECTORY := infrastructure | ||||||
|  |  | ||||||
| DOCKER := docker | DOCKER := docker | ||||||
|  |  | ||||||
| PROFILES := webserver database wordpress | BLOG_SERVICES := wordpress | ||||||
|  | TORRENTS_SERVICES := qbittorrent transmission | ||||||
|  | SHARING_SERVICES := psitransfer picoshare privatebin projectsend jellyfin dufs gitea syncthing | ||||||
|  | ADMIN_SERVICES := yacht uptime-kuma adminer openssh | ||||||
|  | UTILS_SERVICES := it-tools stirlingpdf | ||||||
|  | # gitea-runner | ||||||
|  |  | ||||||
|  | PROFILES := main_infrastructure caddy homepage $(BLOG_SERVICES) $(SHARING_SERVICES) $(TORRENTS_SERVICES) $(ADMIN_SERVICES) $(UTILS_SERVICES) | ||||||
| PROFILE_CMD := $(addprefix --profile ,$(PROFILES)) | PROFILE_CMD := $(addprefix --profile ,$(PROFILES)) | ||||||
|  |  | ||||||
|  | COMPOSE_FILES :=  $(shell find . -name 'docker-compose*.yml' -type f | sed -e 's/^/--file /') | ||||||
|  | COMPOSE_DIR := --project-directory ./$(SERVER_DIRECTORY) | ||||||
|  |  | ||||||
| COMPOSE_FILES :=  $(shell find docker-compose* | sed -e 's/^/--file /') | UID := 1000 | ||||||
|  | GID := 1000 | ||||||
|  |  | ||||||
| AUTHOR := bensuperpc | ENV_ARG_VAR := PUID=$(UID) PGID=$(GID) | ||||||
|  |  | ||||||
|  | DOCKER_COMPOSE_COMMAND := $(ENV_ARG_VAR) $(DOCKER) compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) | ||||||
|  |  | ||||||
| .PHONY: build all | .PHONY: build all | ||||||
| all: start | all: start | ||||||
|  |  | ||||||
| .PHONY: build | .PHONY: build | ||||||
| build: | build: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) build | 	$(DOCKER_COMPOSE_COMMAND) build | ||||||
|  |  | ||||||
| .PHONY: start | .PHONY: start | ||||||
| start: | start: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) up -d | 	$(DOCKER_COMPOSE_COMMAND) up -d | ||||||
|  |  | ||||||
| .PHONY: start-at | .PHONY: start-at | ||||||
| start-at: | start-at: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) up | 	$(DOCKER_COMPOSE_COMMAND) up | ||||||
|  |  | ||||||
| .PHONY: docker-check | .PHONY: docker-check | ||||||
| docker-check: | docker-check: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILES_CMD) config | 	$(DOCKER_COMPOSE_COMMAND) config | ||||||
|  |  | ||||||
| .PHONY: stop | .PHONY: stop | ||||||
| stop: down | stop: down | ||||||
|  |  | ||||||
| .PHONY: down | .PHONY: down | ||||||
| down: | down: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) down | 	$(DOCKER_COMPOSE_COMMAND) down | ||||||
|  |  | ||||||
| .PHONY: restart | .PHONY: restart | ||||||
| restart: stop start | restart: stop start | ||||||
|  |  | ||||||
| .PHONY: logs | .PHONY: logs | ||||||
| logs: | logs: | ||||||
| 	docker compose $(COMPOSE_FILES) logs | 	$(DOCKER_COMPOSE_COMMAND) logs | ||||||
|  |  | ||||||
| .PHONY: state | .PHONY: state | ||||||
| state: | state: | ||||||
| 	docker compose $(COMPOSE_FILES) ps | 	$(DOCKER_COMPOSE_COMMAND) ps | ||||||
| 	docker compose $(COMPOSE_FILES) top | 	$(DOCKER_COMPOSE_COMMAND) top | ||||||
|  |  | ||||||
|  | .PHONY: update-docker | ||||||
|  | update-docker: | ||||||
|  | 	$(DOCKER_COMPOSE_COMMAND) pull | ||||||
|  |  | ||||||
| .PHONY: update | .PHONY: update | ||||||
| update: | update: update-docker | ||||||
| 	git submodule update --init --recursive --remote | 	git submodule update --init --recursive --remote | ||||||
| 	git pull --recurse-submodules --all --progress | 	git pull --recurse-submodules --all --progress | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILES_CMD) pull |  | ||||||
|  |  | ||||||
| .PHONY: clean | .PHONY: clean | ||||||
| clean: | clean: | ||||||
| 	$(DOCKER) images --filter=reference='bensuperpc/*' --format='{{.Repository}}:{{.Tag}}' | xargs -r $(DOCKER) rmi -f | 	docker system prune -f | ||||||
|  |  | ||||||
| .PHONY: purge | .PHONY: purge | ||||||
| purge: | purge: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) down -v --rmi all | 	$(ENV_ARG_VAR) $(DOCKER) compose $(COMPOSE_DIR) $(COMPOSE_FILES) down -v --rmi all | ||||||
							
								
								
									
										235
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										235
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,13 +1,10 @@ | |||||||
| # Infrastructure | # Infrastructure | ||||||
|  |  | ||||||
| _My personal infrastructure for my servers and services._ | _Open source, decentralized and self-hosted infrastructure for many services._ | ||||||
|  |  | ||||||
| **I moved to caddy inetead of nginx, you can find the old version before this commit:**b98fca7af8954770feec0cd962d35f47bde0d5d2** |  | ||||||
|  |  | ||||||
| ## About | ## About | ||||||
|  |  | ||||||
| This is my infrastructure. It's a collection of scripts and configuration files that I use to manage my servers and services. | It uses caddy and docker-compose to run my services (And many other things). | ||||||
| It uses ~~Nginx ~~ caddy and docker-compose to run my services (And many other things). |  | ||||||
| It's a **work in progress**, and I'm still learning a lot about it. | It's a **work in progress**, and I'm still learning a lot about it. | ||||||
| If you have any **questions** or **suggestions**, feel free to open an issue or a pull request. | If you have any **questions** or **suggestions**, feel free to open an issue or a pull request. | ||||||
|  |  | ||||||
| @@ -15,18 +12,23 @@ If you have any **questions** or **suggestions**, feel free to open an issue or | |||||||
|  |  | ||||||
| - [x] caddy 2 reverse proxy | - [x] caddy 2 reverse proxy | ||||||
| - [x] Docker / docker-compose | - [x] Docker / docker-compose | ||||||
| - [x] ~~Letsencrypt / Certbot~~ (Caddy) | - [x] Caddy | ||||||
| - [x] Wordpress (Via FASTCGI/caddy) | - [x] Wordpress (Via FASTCGI/caddy) | ||||||
| - [x] PHPMyAdmin (MariaDB) | - [x] Adminer (MariaDB) | ||||||
| - [ ] Qbittorrent | - [x] Jellyfin (Media server) | ||||||
| - [ ] Jellyfin | - [x] Gitea (Git server) | ||||||
| - [ ] Gitea | - [x] Uptime Kuma (Monitoring) | ||||||
| - [ ] Mastodon | - [x] qbittorrent and transmission (Torrent client/server) | ||||||
| - [ ] Minecraft server (Hyperworld v2) | - [x] SyncThing (File synchronization) | ||||||
| - [ ] SSL for all subdomains / Services (Not just the main domain) | - [x] PsiTransfer (File sharing) | ||||||
|  | - [x] it-tools (Tools for IT) | ||||||
|  | - [x] Privatebin (Pastebin) | ||||||
|  | - [x] Yacht (Web interface for managing docker containers) | ||||||
|  |  | ||||||
| ## Screenshots | ## Screenshots | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Installation and configuration | ## Installation and configuration | ||||||
|  |  | ||||||
| ### Requirements | ### Requirements | ||||||
| @@ -35,7 +37,9 @@ If you have any **questions** or **suggestions**, feel free to open an issue or | |||||||
| - [Docker Compose](https://docs.docker.com/compose/install/) | - [Docker Compose](https://docs.docker.com/compose/install/) | ||||||
| - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) | - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) | ||||||
| - [Web domain](https://www.ovh.com/world/domains/) (I use OVH) | - [Web domain](https://www.ovh.com/world/domains/) (I use OVH) | ||||||
| - [Open port 80 and 443 on your router](http://192.168.0.1/) (I use a Orange box with default IP) | - [Open port 80, 443, 22 and 2222 on your router](http://192.168.1.1/) | ||||||
|  |  | ||||||
|  | ***To avoid get rate limit from letsencrypt (10 certificates per 3 hours), you need to disable some certificates in the caddyfiles and enable them 3h later...*** | ||||||
|  |  | ||||||
| ### Clone | ### Clone | ||||||
|  |  | ||||||
| @@ -51,29 +55,153 @@ Go to the folder | |||||||
| cd infrastructure | cd infrastructure | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Get the SSL certificate | ### Configure the domain | ||||||
|  |  | ||||||
| For all **bensuperpc.org**, you need to replace it with your domain, example: **bensuperpc.com** | For all **bensuperpc.org**, you need to replace it with your domain, example: **mydomain.com**, so the same for **bensuperpc.com** ect... | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/bensuperpc.org/bensuperpc.com/g' | find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/bensuperpc.org/mydomain.com/g' | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| And then, caddy will generate the certificate for you and renew it automatically :D (It's easier than certbot and nginx) | Check if all bensuperpc.* are replaced by your domain in [Caddyfile](caddy/wordpress/Caddyfile) | ||||||
|  |  | ||||||
|  | And then, caddy will generate the certificate for you and renew it automatically :D | ||||||
|  |  | ||||||
|  | | Domain name | Type | Description | | ||||||
|  | | --- | --- | --- | | ||||||
|  | | [bensuperpc.org](https://bensuperpc.org) | Main | Redirect to www.bensuperpc.org | | ||||||
|  | | [www.bensuperpc.org](https://www.bensuperpc.org) | Main | Homepage | | ||||||
|  | | [wordpress.bensuperpc.org](https://wordpress.bensuperpc.org) | Sub | Wordpress website | | ||||||
|  | | [adminer.bensuperpc.org](https://adminer.bensuperpc.org) | Sub | Adminer for MariaDB for wordpress only | | ||||||
|  | | [uptimekuma.bensuperpc.org](https://uptimekuma.bensuperpc.org) | Sub | Uptime Kuma for monitoring | | ||||||
|  | | [qbittorrent.bensuperpc.org](https://qbittorrent.bensuperpc.org) | Sub | Torrent client/server | | ||||||
|  | | [transmission.bensuperpc.org](https://transmission.bensuperpc.org) | Sub | Torrent client/server | | ||||||
|  | | [git.bensuperpc.org](https://git.bensuperpc.org) | Sub | Gitea for git | | ||||||
|  | | [link.bensuperpc.org](https://link.bensuperpc.org) | Sub | For link shortener | | ||||||
|  | | [jellyfin.bensuperpc.org](https://jellyfin.bensuperpc.org) | Sub | Jellyfin for media server | | ||||||
|  | | [syncthing.bensuperpc.org](https://syncthing.bensuperpc.org) | Sub | SyncThing for file synchronization | | ||||||
|  | | [psitransfer.bensuperpc.org](https://psitransfer.bensuperpc.org) | Sub | PsiTransfer for file sharing | | ||||||
|  | | [it-tools.bensuperpc.org](https://it-tools.bensuperpc.org) | Sub | Tools for IT | | ||||||
|  | | [privatebin.bensuperpc.org](https://privatebin.bensuperpc.org) | Sub | Pastebin | | ||||||
|  | | [yacht.bensuperpc.org](https://yacht.bensuperpc.org) | Sub | Web interface for managing docker containers | | ||||||
|  | | [projectsend.bensuperpc.org](https://projectsend.bensuperpc.org) | Sub | ProjectSend for file sharing | | ||||||
|  | | [picoshare.bensuperpc.org](https://picoshare.bensuperpc.org) | Sub | Picoshare for file sharing | | ||||||
|  | | [dufs.bensuperpc.org](https://dufs.bensuperpc.org) | Sub | Dufs for file sharing | | ||||||
|  | | bensuperpc.com | Main | Redirect to www.bensuperpc.org | | ||||||
|  | | bensuperpc.fr | Main | Redirect to www.bensuperpc.org | | ||||||
|  | | bensuperpc.net | Main | Redirect to www.bensuperpc.org | | ||||||
|  | | bensuperpc.ovh | Main | Redirect to www.bensuperpc.org | | ||||||
|  |  | ||||||
| ### Configure the infrastructure | ### Configure the infrastructure | ||||||
|  |  | ||||||
| You must create a file named `.env` with the following content: | You need to configure the infrastructure with your own configuration. | ||||||
|  |  | ||||||
|  | You can generate a password with 32 characters: | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| MARIADB_ROOT_PASSWORD=<your_root_password> | openssl rand -base64 32 | ||||||
| MARIADB_USER=<your_user> |  | ||||||
| MARIADB_PASSWORD=<your_password> |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Wordpress website | Or online: [passwordsgenerator.net](https://passwordsgenerator.net/) | ||||||
|  |  | ||||||
| For the Wordpress website, you can configure in GUI when you go to the website. | For [caddy_backup.env](infrastructure/caddy/env/caddy_backup.env) file, you need to change the password(s) for the restic backup. | ||||||
|  | ```sh | ||||||
|  | RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For the [wordpress.env](infrastructure/wordpress/env/wordpress.env) file, you need to change the password and user for the database. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | WORDPRESS_DB_USER=bensuperpc | ||||||
|  | WORDPRESS_DB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [wordpress_db.env](infrastructure/wordpress/env/wordpress_db.env) file, you need to change the password(s) and user for the database. | ||||||
|  |      | ||||||
|  | ```sh | ||||||
|  | MYSQL_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [wordpress_backup.env](infrastructure/wordpress/env/wordpress_backup.env) file, you need to change the password(s) for the restic backup. | ||||||
|  | ```sh | ||||||
|  | RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [adminer.env](infrastructure/wordpress/env/adminer.env) file, you need to change the password(s) and user for the database. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | MYSQL_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [gitea.env](infrastructure/gitea/env/gitea.env) file, you need to change the password(s) and user for the database. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | GITEA__database__USER=bensuperpc | ||||||
|  | GITEA__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j | ||||||
|  | GITEA__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [gitea_db.env](infrastructure/gitea/env/gitea_db.env) file, you need to change the password(s) and user for the database. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | MYSQL_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [psitransfer.env](infrastructure/psitransfer/env/psitransfer.env) file, you need to change the secret key. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [yacht.env](infrastructure/yacht/env/yacht.env) file, you need to change the secret key. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | SECRET_KEY=UZvg9nbcGIJlPEB3uI39TAEWyFOz9nm8 | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [projectsend_db.env](infrastructure/projectsend/env/projectsend_db.env) file, you need to change the password(s) and user for the database. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | MYSQL_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [picoshare.env](infrastructure/picoshare/env/picoshare.env) file, you need to change the secret key. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | PS_SHARED_SECRET=CBuS4DJLqIe93xF1KGYRrnhxUFBqLD2n | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [dufs.env](infrastructure/dufs/env/dufs.env) file, you need to change the secret key and if you want the user name. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | DUFS_AUTH="admin:heqihlOfBmJDESGFlpbPi7P7Mi6F7RkV@/:rw|@/:ro" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For [stirlingpdf.env](infrastructure/stirlingpdf/env/stirlingpdf.env) file, it's **completly optional**, you can change the password(s) and user. | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | # Enable security, optional | ||||||
|  | DOCKER_ENABLE_SECURITY=true | ||||||
|  | SECURITY_ENABLE_LOGIN=true | ||||||
|  | # Can be disabled after initial login, optional, | ||||||
|  | # default it admin:stirling | ||||||
|  | SECURITY_INITIALLOGIN_USERNAME=admin | ||||||
|  | SECURITY_INITIALLOGIN_PASSWORD=Jw9U039f5xc2mFcacvGvPD9RjwIh4DzO | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | You can need to add/change the public ssh key [id_ed25519.pub](infrastructure/openssh/config/authorized_keys/id_ed25519.pub) (its my public key), also change the user name in [openssh.env](infrastructure/openssh/env/openssh.env): | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | USER_NAME=bensuperpc | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ### Start the infrastructure | ### Start the infrastructure | ||||||
|  |  | ||||||
| @@ -89,13 +217,39 @@ Stop the website with (or CTRL+C with the previous command): | |||||||
| make stop | make stop | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ## URL | Remove countainers with: | ||||||
|  |  | ||||||
| You can access to the website with: | ```sh | ||||||
|  | make down | ||||||
|  | ``` | ||||||
|  |  | ||||||
| - [bensuperpc.org](https://bensuperpc.org) and [www.bensuperpc.org](https://www.bensuperpc.org) (Wordpress for now) | You can disable some services by removing the service name in PROFILES variable in the [Makefile](Makefile) file. | ||||||
|  |  | ||||||
| ## Build with | To enable the gitea CI: https://medium.com/@lokanx/how-to-build-docker-containers-using-gitea-runners-600729555e07 | ||||||
|  |  | ||||||
|  | ### Homepage | ||||||
|  |  | ||||||
|  | You can change the homepage config in these files: | ||||||
|  |  | ||||||
|  | - [bookmarks.yaml](infrastructure/homepage/config/bookmarks.yaml) | ||||||
|  | - [services.yaml](infrastructure/homepage/config/services.yaml) | ||||||
|  | - [settings.yaml](infrastructure/homepage/config/settings.yaml) | ||||||
|  | - [widgets.yaml](infrastructure/homepage/config/widgets.yaml) | ||||||
|  |  | ||||||
|  | ### Docker volumes | ||||||
|  |  | ||||||
|  | This infrastructure uses docker volumes to store data, all configuration/data for each service are not shared between services for security and maintenance reasons, but **public_data** and **private_data** are shared between all services to store your data. | ||||||
|  |  | ||||||
|  | | Volume name | Description | | ||||||
|  | | --- | --- | | ||||||
|  | | public_data | Public data reachable on internet via [dufs.bensuperpc.org](https://dufs.bensuperpc.org), can be disabled. | | ||||||
|  | | private_data | Private data | | ||||||
|  |  | ||||||
|  | ### SSH access | ||||||
|  |  | ||||||
|  | The default port for ssh/rsync is is 2222. | ||||||
|  |  | ||||||
|  | ## Sources | ||||||
|  |  | ||||||
| - [Wordpress](https://wordpress.org/) | - [Wordpress](https://wordpress.org/) | ||||||
| - [Gnu Make](https://www.gnu.org/software/make/) | - [Gnu Make](https://www.gnu.org/software/make/) | ||||||
| @@ -106,13 +260,26 @@ You can access to the website with: | |||||||
| - [Docker Hub](https://hub.docker.com/) | - [Docker Hub](https://hub.docker.com/) | ||||||
| - [How To Start WordPress with Caddy using Docker Compose](https://minhcung.me/how-to-start-wordpress-with-caddy-using-docker-compose-3d31bb9ef88b) | - [How To Start WordPress with Caddy using Docker Compose](https://minhcung.me/how-to-start-wordpress-with-caddy-using-docker-compose-3d31bb9ef88b) | ||||||
| - [Digital Ocean - How To Install WordPress with Docker Compose (nginx)](https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-docker-compose) | - [Digital Ocean - How To Install WordPress with Docker Compose (nginx)](https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-docker-compose) | ||||||
| - [PGAmin](https://www.pgadmin.org/) | - [Imagisphe](https://imagisphe.re/) | ||||||
| - [Qbittorrent](https://www.qbittorrent.org/) |  | ||||||
| - [Jellyfin](https://jellyfin.org/) |  | ||||||
| - [Letsencrypt](https://letsencrypt.org/) | - [Letsencrypt](https://letsencrypt.org/) | ||||||
| - [Certbot](https://certbot.eff.org/) | - [Caddy](https://caddyserver.com/) | ||||||
| - [Nginx](https://www.nginx.com/) | - [Adminer](https://www.adminer.org/) | ||||||
| - [UWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) | - [Uptime Kuma](https://uptime-kuma.com/) | ||||||
|  | - [qbittorrent](https://www.qbittorrent.org/) | ||||||
|  | - [Transmission](https://transmissionbt.com/) | ||||||
|  | - [Gitea](https://gitea.io/) | ||||||
|  | - [Jellyfin](https://jellyfin.org/) | ||||||
|  | - [SyncThing](https://syncthing.net/) | ||||||
|  | - [PsiTransfer](https://psitransfer.com/) | ||||||
|  | - [It-tools](https://github.com/CorentinTh/it-tools) | ||||||
|  | - [Privatebin](https://github.com/PrivateBin/PrivateBin) | ||||||
|  | - [ghost](https://ghost.org) | ||||||
|  | - [Homepage Tuto](https://belginux.com/installer-homepage-avec-docker/) | ||||||
|  | - [Yacht](https://yacht.sh/) | ||||||
|  | - [ProjectSend](https://www.projectsend.org/) | ||||||
|  | - [Picoshare](https://github.com/mtlynch/picoshare) | ||||||
|  | - [Dufs](https://github.com/sigoden/dufs) | ||||||
|  | - [Fix docker volume](https://pratikpc.medium.com/use-docker-compose-named-volumes-as-non-root-within-your-containers-1911eb30f731) | ||||||
|  |  | ||||||
| ## License | ## License | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,3 +0,0 @@ | |||||||
| #import /path/to/*.caddy |  | ||||||
|  |  | ||||||
| import wordpress/Caddyfile |  | ||||||
| @@ -1,40 +0,0 @@ | |||||||
| bensuperpc.org { |  | ||||||
| 	# push |  | ||||||
|  |  | ||||||
| 	root * /var/www/html |  | ||||||
| 	php_fastcgi wordpress:9000 |  | ||||||
|  |  | ||||||
| 	file_server |  | ||||||
| 	encode zstd gzip |  | ||||||
|  |  | ||||||
| 	metrics /metrics |  | ||||||
|  |  | ||||||
| 	@disallowed { |  | ||||||
| 		path /xmlrpc.php |  | ||||||
| 		path *.sql |  | ||||||
| 		path /wp-content/uploads/*.php |  | ||||||
| 	} |  | ||||||
| 	rewrite @disallowed '/index.php' |  | ||||||
|  |  | ||||||
| 	respond /uploads/*.php 404 |  | ||||||
|  |  | ||||||
| 	header { |  | ||||||
| 		-Server |  | ||||||
| 		Content-Security-Policy default-src 'self' *.bensuperpc.org |  | ||||||
| 		X-XSS-Protection 1; mode=block |  | ||||||
| 		Strict-Transport-Security max-age=31536000; includeSubDomains; preload |  | ||||||
| 		X-Frame-Options DENY |  | ||||||
| 		X-Frame-Options: SAMEORIGIN |  | ||||||
| 		X-Content-Type-Options nosniff |  | ||||||
| 		Referrer-Policy no-referrer-when-downgrade |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	log { |  | ||||||
| 		output stdout |  | ||||||
| 		format console |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| www.bensuperpc.com { |  | ||||||
| 	redir https://bensuperpc.org{uri} |  | ||||||
| } |  | ||||||
| @@ -1,88 +0,0 @@ | |||||||
| version: '3.7' |  | ||||||
| # https://minhcung.me/how-to-start-wordpress-with-caddy-using-docker-compose-3d31bb9ef88b |  | ||||||
| services: |  | ||||||
|   database: |  | ||||||
|     image: mariadb:latest |  | ||||||
|     container_name: database |  | ||||||
|     profiles: |  | ||||||
|       - database |  | ||||||
|     volumes: |  | ||||||
|       - database:/var/lib/mysql:rw |  | ||||||
|     restart: always |  | ||||||
|     env_file: |  | ||||||
|       - env/mariadb.env |  | ||||||
|     environment: |  | ||||||
|       MYSQL_DATABASE: blog_wp |  | ||||||
|     command: '--default-authentication-plugin=mysql_native_password' |  | ||||||
|     networks: |  | ||||||
|       - blog-network |  | ||||||
|   # Wordpress |  | ||||||
|   wordpress: |  | ||||||
|     depends_on: |  | ||||||
|       - database |  | ||||||
|     image: wordpress:6.2-fpm-alpine |  | ||||||
|     container_name: wordpress |  | ||||||
|     profiles: |  | ||||||
|       - wordpress |  | ||||||
|     restart: always |  | ||||||
|     env_file: |  | ||||||
|       - env/wordpress.env |  | ||||||
|     volumes: |  | ||||||
|       - ./php.ini:/usr/local/etc/php/conf.d/custom.ini:ro |  | ||||||
|       - wordpress:/var/www/html:rw |  | ||||||
|     networks: |  | ||||||
|       - blog-network |  | ||||||
|   # Webserver |  | ||||||
|   caddy: |  | ||||||
|     image: caddy:alpine |  | ||||||
|     container_name: webserver |  | ||||||
|     profiles: |  | ||||||
|       - webserver |  | ||||||
|     ports: |  | ||||||
|       - 80:80/tcp |  | ||||||
|       - 80:80/udp |  | ||||||
|       - 443:443/tcp |  | ||||||
|       - 443:443/udp |  | ||||||
|     volumes: |  | ||||||
|       - wordpress:/var/www/html:rw |  | ||||||
|       - caddy_data:/data:rw |  | ||||||
|       - caddy_config:/config:rw |  | ||||||
|       - ./caddy:/etc/caddy:ro |  | ||||||
|     networks: |  | ||||||
|       - blog-network |  | ||||||
| #  phpmyadmin: |  | ||||||
| #    image: phpmyadmin:5.2.0 |  | ||||||
| #    container_name: phpmyadmin |  | ||||||
| #    profiles: |  | ||||||
| #      - phpmyadmin |  | ||||||
| #    restart: always |  | ||||||
| #    env_file:  |  | ||||||
| #      - env/phpmyadmin.env |  | ||||||
| #    ports: |  | ||||||
| #      - 8080:80 |  | ||||||
| #    depends_on: |  | ||||||
| #      - database |  | ||||||
| #    networks: |  | ||||||
| #      - blog-network |  | ||||||
| #    security_opt: |  | ||||||
| #      - no-new-privileges:true |  | ||||||
| #      - seccomp:unconfined |  | ||||||
| #      - apparmor:unconfined |  | ||||||
| #    cap_drop: |  | ||||||
| #      - ALL |  | ||||||
| #    cap_add: |  | ||||||
| #      - CHOWN |  | ||||||
| networks: |  | ||||||
|   blog-network: |  | ||||||
|     driver: bridge |  | ||||||
|     name: blog-network |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   database: |  | ||||||
|     name: database |  | ||||||
|   wordpress: |  | ||||||
|     name: wordpress |  | ||||||
|   caddy_data: |  | ||||||
|     name: caddy_data |  | ||||||
|   caddy_config: |  | ||||||
|     name: caddy_config |  | ||||||
							
								
								
									
										4
									
								
								env/flask_database.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								env/flask_database.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | |||||||
| POSTGRES_HOST_AUTH_METHOD=trust |  | ||||||
| POSTGRES_USER=bensuperpc |  | ||||||
| POSTGRES_PASSWORD=nPRh270dKH3hz%6HS2$X%8F3fqoQ*Fex |  | ||||||
| POSTGRES_DB=website |  | ||||||
							
								
								
									
										7
									
								
								env/flask_website.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								env/flask_website.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +0,0 @@ | |||||||
| FLASK_DEBUG=1 |  | ||||||
|  |  | ||||||
| # Acces to the database |  | ||||||
| POSTGRES_URL=flask_db:5432 |  | ||||||
| POSTGRES_USER=bensuperpc |  | ||||||
| POSTGRES_PW=nPRh270dKH3hz%6HS2$X%8F3fqoQ*Fex |  | ||||||
| POSTGRES_DB=website |  | ||||||
							
								
								
									
										3
									
								
								env/pgadmin.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								env/pgadmin.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | |||||||
| PGADMIN_DEFAULT_EMAIL=bensuperpc@bensuperpc.org |  | ||||||
| PGADMIN_DEFAULT_PASSWORD=LmRVf9DY291ez7B^^%2RntHcsCrJ5fQ! |  | ||||||
| #PGADMIN_ENABLE_TLS |  | ||||||
							
								
								
									
										4
									
								
								env/phpmyadmin.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								env/phpmyadmin.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | |||||||
| MYSQL_ROOT_PASSWORD=g1qQWxTXyFXIKpAfbE0h5bxn&prr4zfd |  | ||||||
| MYSQL_USER=bensuperpc |  | ||||||
| MYSQL_PASSWORD=4Xnc7FB7902%*w9PW4y9&anQ5&hQdTzt |  | ||||||
| PMA_HOST=db |  | ||||||
							
								
								
									
										4
									
								
								env/wordpress.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								env/wordpress.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | |||||||
| WORDPRESS_DB_USER=bensuperpc |  | ||||||
| WORDPRESS_DB_PASSWORD=4Xnc7FB7902%*w9PW4y9&anQ5&hQdTzt |  | ||||||
| WORDPRESS_DB_NAME=wordpress |  | ||||||
| WORDPRESS_DB_HOST=wp_db:3306 |  | ||||||
							
								
								
									
										4
									
								
								env/wp_database.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								env/wp_database.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | |||||||
| MARIADB_ROOT_PASSWORD=g1qQWxTXyFXIKpAfbE0h5bxn&prr4zfd |  | ||||||
| MARIADB_USER=bensuperpc |  | ||||||
| MARIADB_PASSWORD=4Xnc7FB7902%*w9PW4y9&anQ5&hQdTzt |  | ||||||
| MARIADB_DATABASE=wordpress |  | ||||||
							
								
								
									
										15
									
								
								infrastructure/caddy/config/Caddyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								infrastructure/caddy/config/Caddyfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | { | ||||||
|  | 	email bensuperpc@gmail.com | ||||||
|  | 	key_type p384 | ||||||
|  |  | ||||||
|  | 	log { | ||||||
|  | 		output file /data/logs/access.log | ||||||
|  | 		format json | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | import bensuperpc.org/* | ||||||
|  | import bensuperpc.com/* | ||||||
|  | import bensuperpc.net/* | ||||||
|  | import bensuperpc.ovh/* | ||||||
|  | import bensuperpc.fr/* | ||||||
							
								
								
									
										7
									
								
								infrastructure/caddy/config/bensuperpc.com/Caddyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								infrastructure/caddy/config/bensuperpc.com/Caddyfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | bensuperpc.com {   | ||||||
|  |   	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | www.bensuperpc.com {   | ||||||
|  |   	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								infrastructure/caddy/config/bensuperpc.fr/Caddyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								infrastructure/caddy/config/bensuperpc.fr/Caddyfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | bensuperpc.fr { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | www.bensuperpc.fr { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
							
								
								
									
										19
									
								
								infrastructure/caddy/config/bensuperpc.net/Caddyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								infrastructure/caddy/config/bensuperpc.net/Caddyfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | bensuperpc.net { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | www.bensuperpc.net { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | git.bensuperpc.net { | ||||||
|  | 	redir https://git.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | jellyfin.bensuperpc.net { | ||||||
|  | 	redir https://jellyfin.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | uptimekuma.bensuperpc.net { | ||||||
|  | 	redir https://uptimekuma.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
							
								
								
									
										165
									
								
								infrastructure/caddy/config/bensuperpc.org/Caddyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								infrastructure/caddy/config/bensuperpc.org/Caddyfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,165 @@ | |||||||
|  | www.bensuperpc.org { | ||||||
|  | 	reverse_proxy homepage:3000 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bensuperpc.org { | ||||||
|  | 	redir https://www.{host}{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | homepage.bensuperpc.org { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | wordpress.bensuperpc.org { | ||||||
|  | 	root * /var/www/html | ||||||
|  | 	php_fastcgi wordpress:9000 | ||||||
|  |  | ||||||
|  | 	file_server | ||||||
|  | 	encode zstd gzip | ||||||
|  |  | ||||||
|  | 	@disallowed { | ||||||
|  | 		path /xmlrpc.php | ||||||
|  | 		path *.sql | ||||||
|  | 		path /wp-content/uploads/*.php | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	rewrite @disallowed '/index.php' | ||||||
|  |  | ||||||
|  | 	respond /uploads/*.php 404 | ||||||
|  |  | ||||||
|  | 	header { | ||||||
|  | 		# disable FLoC tracking | ||||||
|  | 		Permissions-Policy interest-cohort=() | ||||||
|  |  | ||||||
|  | 		# enable HSTS | ||||||
|  | 		Strict-Transport-Security max-age=31536000; | ||||||
|  |  | ||||||
|  | 		# disable clients from sniffing the media type | ||||||
|  | 		X-Content-Type-Options nosniff | ||||||
|  |  | ||||||
|  | 		# clickjacking protection | ||||||
|  | 		# X-Frame-Options DENY | ||||||
|  |  | ||||||
|  | 		# Disable powerful features we don't need | ||||||
|  |         Permissions-Policy "geolocation=(), camera=(), microphone=() interest-cohort=()" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | it-tools.bensuperpc.org { | ||||||
|  | 	# Load balance between 2 instances | ||||||
|  | 	reverse_proxy { | ||||||
|  | 		to it-tools0:80 it-tools1:80 | ||||||
|  | 		lb_policy round_robin | ||||||
|  | 		lb_retries 3 | ||||||
|  | 		lb_try_interval 1s | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | adminer.bensuperpc.org { | ||||||
|  | 	reverse_proxy adminer:8080 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | uptimekuma.bensuperpc.org { | ||||||
|  | 	reverse_proxy uptime-kuma:3001 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | torrent.bensuperpc.org { | ||||||
|  | 	reverse_proxy qbittorrent:8080 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | qbittorrent.bensuperpc.org { | ||||||
|  | 	redir https://torrent.bensuperpc.org permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | transmission.bensuperpc.org { | ||||||
|  | 	reverse_proxy transmission:9091 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | gitea.bensuperpc.org { | ||||||
|  | 	redir https://git.bensuperpc.org permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | git.bensuperpc.org { | ||||||
|  | 	reverse_proxy gitea:3000 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | jellyfin.bensuperpc.org { | ||||||
|  | 	reverse_proxy jellyfin:8096 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | transfer.bensuperpc.org { | ||||||
|  | 	reverse_proxy psitransfer:3000 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | psitransfer.bensuperpc.org { | ||||||
|  | 	redir https://transfer.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | picoshare.bensuperpc.org { | ||||||
|  | 	reverse_proxy picoshare:4001 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | syncthing.bensuperpc.org { | ||||||
|  | 	reverse_proxy syncthing:8384 { | ||||||
|  | 		header_up Host {upstream_hostport} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | tools.bensuperpc.org { | ||||||
|  | 	redir https://it-tools.bensuperpc.org permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | privatebin.bensuperpc.org { | ||||||
|  | 	reverse_proxy privatebin:8080 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | pastebin.bensuperpc.org { | ||||||
|  | 	redir https://privatebin.bensuperpc.org permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | yacht.bensuperpc.org { | ||||||
|  | 	reverse_proxy yacht:8000 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | projectsend.bensuperpc.org { | ||||||
|  | 	reverse_proxy projectsend:80 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | dufs.bensuperpc.org { | ||||||
|  | 	reverse_proxy dufs:5000 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | stirlingpdf.bensuperpc.org { | ||||||
|  | 	reverse_proxy stirlingpdf:8080 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | link.bensuperpc.org { | ||||||
|  | 	# TODO: Use service with database | ||||||
|  | 	# Friendly links | ||||||
|  | 	redir /gnous https://gnous.eu permanent | ||||||
|  | 	redir /proxy https://imagisphe.re permanent | ||||||
|  | 	redir /patch https://spaceint.fr permanent | ||||||
|  | 	redir /greep https://greep.fr permanent | ||||||
|  |  | ||||||
|  | 	# Youtube links | ||||||
|  | 	redir /rickroll https://www.youtube.com/watch?v=dQw4w9WgXcQ permanent | ||||||
|  | 	redir /babyshark https://www.youtube.com/watch?v=XqZsoesa55w permanent | ||||||
|  | 	redir /cowcowcow https://www.youtube.com/watch?v=FavUpD_IjVY permanent | ||||||
|  | 	redir /badapple https://www.youtube.com/watch?v=FtutLA63Cp8 permanent | ||||||
|  | 	redir /macdo https://www.youtube.com/watch?v=Q16KpquGsIc permanent | ||||||
|  | 	redir /superiser https://www.youtube.com/watch?v=srnyVw-OR0g permanent | ||||||
|  | 	redir /daicon https://youtu.be/-840keiiFDE?si=zIPIokytxcnGw5fJ&t=162 permanent | ||||||
|  | 	redir /scp https://www.youtube.com/watch?v=FGCDndN20G8 permanent | ||||||
|  | 	redir /scpfb https://youtu.be/9zrKk-1E8zM?si=8R_ZBVG3GzMUYOe8&t=36 permanent | ||||||
|  | 	redir /mother https://youtu.be/w3NyycHR3fE?si=rNNSW9zYv0bcO2Eu permanent | ||||||
|  | 	redir /cpu https://www.youtube.com/watch?v=y39D4529FM4 permanent | ||||||
|  | 	redir /lechanteur https://youtu.be/HXdP15Ubu6M?si=N0qvhqo--3pmSGmb permanent | ||||||
|  | 	redir /nohero https://youtu.be/4DuUejBkMqE?si=bkB8G6PHwCp56jxb permanent | ||||||
|  | 	redir /indochine https://youtu.be/M7X6oYg6iro?si=ZRarm3qamTJ8vIJ0 permanent | ||||||
|  | 	redir /bna https://youtu.be/3T3ofoKfEoY?si=_7HkGQXMC7rBng8O permanent | ||||||
|  | 	redir /jojo https://youtu.be/U0TXIXTzJEY?si=2acWJWX06ju2w4uj permanent | ||||||
|  | 	redir /patapon https://youtu.be/H6CbNHLHkmk?si=ZvU8SzrOK-oCUXT5 permanent | ||||||
|  | 	redir /darkwater https://youtu.be/Tr8ZgF4Dc0E?si=CEOmm2J6Jp5rdbbt permanent | ||||||
|  | 	redir /train https://youtu.be/l8mScKWj3kQ?si=BV07uJ9eP3kzV9Kl permanent | ||||||
|  | 	redir /jdg https://www.youtube.com/@joueurdugrenier permanent | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								infrastructure/caddy/config/bensuperpc.ovh/Caddyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								infrastructure/caddy/config/bensuperpc.ovh/Caddyfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | bensuperpc.ovh { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  |  | ||||||
|  | www.bensuperpc.ovh { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
							
								
								
									
										60
									
								
								infrastructure/caddy/docker-compose.caddy.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								infrastructure/caddy/docker-compose.caddy.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  | services: | ||||||
|  |   # Caddy | ||||||
|  |   caddy: | ||||||
|  |     image: caddy:latest | ||||||
|  |     container_name: caddy | ||||||
|  |     profiles: | ||||||
|  |       - caddy | ||||||
|  |     depends_on: | ||||||
|  |       main_infrastructure: | ||||||
|  |         condition: service_completed_successfully | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     ports: | ||||||
|  |       - 80:80 | ||||||
|  |       - 443:443 | ||||||
|  |     volumes: | ||||||
|  |       - wordpress:/var/www/html:rw | ||||||
|  |       - caddy_data:/data:rw | ||||||
|  |       - caddy_config:/config:rw | ||||||
|  |       - ./caddy/config:/etc/caddy:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     env_file: | ||||||
|  |       - ./caddy/env/caddy.env | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     #cap_drop: | ||||||
|  |     #  - ALL | ||||||
|  |     cap_add: | ||||||
|  |       - NET_ADMIN | ||||||
|  |     healthcheck: | ||||||
|  |       test: pidof caddy || exit 1 | ||||||
|  |       interval: 120s | ||||||
|  |       timeout: 10s | ||||||
|  |       retries: 3 | ||||||
|  |  | ||||||
|  |   caddy_backup: | ||||||
|  |     image: mazzolino/restic:latest | ||||||
|  |     container_name: caddy_backup | ||||||
|  |     profiles: | ||||||
|  |       - caddy | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     env_file: | ||||||
|  |       - ./caddy/env/caddy_backup.env | ||||||
|  |     volumes: | ||||||
|  |       - caddy_backup:/mnt/restic | ||||||
|  |       - caddy_data:/data:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   caddy_data: | ||||||
|  |     name: caddy_data | ||||||
|  |   caddy_config: | ||||||
|  |     name: caddy_config | ||||||
|  |   caddy_backup: | ||||||
|  |     name: caddy_backup | ||||||
							
								
								
									
										0
									
								
								infrastructure/caddy/env/caddy.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								infrastructure/caddy/env/caddy.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										14
									
								
								infrastructure/caddy/env/caddy_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								infrastructure/caddy/env/caddy_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | #RUN_ON_STARTUP=true | ||||||
|  | RESTIC_REPOSITORY=/mnt/restic | ||||||
|  | RESTIC_BACKUP_SOURCES=/data | ||||||
|  | RESTIC_PASSWORD=YFQh8v3Wi95v0p6h88D4u8C8z4gLfdMw | ||||||
|  | # Backup (exuclusive with Check and Prune) | ||||||
|  | BACKUP_CRON=*/30 * * * * | ||||||
|  | RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose | ||||||
|  | #RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 4 | ||||||
|  | # Check (exuclusive with Check and Prune) | ||||||
|  | #CHECK_CRON=*/30 * * * * | ||||||
|  | #RESTIC_CHECK_ARGS=--read-data-subset=40% | ||||||
|  | # Prune (exuclusive with Check and Prune) | ||||||
|  | #PRUNE_CRON=*/30 * * * * | ||||||
|  | #RESTIC_PRUNE_ARGS= | ||||||
							
								
								
									
										25
									
								
								infrastructure/dufs/docker-compose.dufs.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								infrastructure/dufs/docker-compose.dufs.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | services: | ||||||
|  |   # dufs | ||||||
|  |   dufs: | ||||||
|  |     image: sigoden/dufs:latest | ||||||
|  |     container_name: dufs | ||||||
|  |     profiles: | ||||||
|  |       - dufs | ||||||
|  |     user: ${PUID:-1000}:${PGID:-1000}  | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./dufs/env/dufs.env | ||||||
|  |     volumes: | ||||||
|  |       - public_data:/data | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   public_data: | ||||||
|  |     name: public_data | ||||||
|  |   private_data: | ||||||
|  |     name: private_data | ||||||
							
								
								
									
										7
									
								
								infrastructure/dufs/env/dufs.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								infrastructure/dufs/env/dufs.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | DUFS_BIND=0.0.0.0 | ||||||
|  | DUFS_PORT=5000 | ||||||
|  | DUFS_SERVE_PATH=/data | ||||||
|  | DUFS_HIDDEN=tmp,*.log,*.lock | ||||||
|  | DUFS_ALLOW_ALL=true | ||||||
|  | DUFS_COMPRESS=medium | ||||||
|  | DUFS_AUTH="admin:heqihlOfBmJDESGFlpbPi7P7Mi6F7RkV@/:rw|@/:ro" | ||||||
							
								
								
									
										98
									
								
								infrastructure/gitea/config/gitea_runner/config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								infrastructure/gitea/config/gitea_runner/config.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | |||||||
|  | # Example configuration file, it's safe to copy this as the default config file without any modification. | ||||||
|  |  | ||||||
|  | # You don't have to copy this file to your instance, | ||||||
|  | # just run `./act_runner generate-config > config.yaml` to generate a config file. | ||||||
|  |  | ||||||
|  | log: | ||||||
|  |   # The level of logging, can be trace, debug, info, warn, error, fatal | ||||||
|  |   level: info | ||||||
|  |  | ||||||
|  | runner: | ||||||
|  |   # Where to store the registration result. | ||||||
|  |   file: .runner | ||||||
|  |   # Execute how many tasks concurrently at the same time. | ||||||
|  |   capacity: 1 | ||||||
|  |   # Extra environment variables to run jobs. | ||||||
|  |   envs: | ||||||
|  |     A_TEST_ENV_NAME_1: a_test_env_value_1 | ||||||
|  |     A_TEST_ENV_NAME_2: a_test_env_value_2 | ||||||
|  |   # Extra environment variables to run jobs from a file. | ||||||
|  |   # It will be ignored if it's empty or the file doesn't exist. | ||||||
|  |   env_file: .env | ||||||
|  |   # The timeout for a job to be finished. | ||||||
|  |   # Please note that the Gitea instance also has a timeout (3h by default) for the job. | ||||||
|  |   # So the job could be stopped by the Gitea instance if it's timeout is shorter than this. | ||||||
|  |   timeout: 3h | ||||||
|  |   # Whether skip verifying the TLS certificate of the Gitea instance. | ||||||
|  |   insecure: false | ||||||
|  |   # The timeout for fetching the job from the Gitea instance. | ||||||
|  |   fetch_timeout: 5s | ||||||
|  |   # The interval for fetching the job from the Gitea instance. | ||||||
|  |   fetch_interval: 2s | ||||||
|  |   # The labels of a runner are used to determine which jobs the runner can run, and how to run them. | ||||||
|  |   # Like: "macos-arm64:host" or "ubuntu-latest:docker://gitea/runner-images:ubuntu-latest" | ||||||
|  |   # Find more images provided by Gitea at https://gitea.com/gitea/runner-images . | ||||||
|  |   # If it's empty when registering, it will ask for inputting labels. | ||||||
|  |   # If it's empty when execute `daemon`, will use labels in `.runner` file. | ||||||
|  |   labels: | ||||||
|  |     - "ubuntu-latest:docker://gitea/runner-images:ubuntu-latest" | ||||||
|  |     - "ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04" | ||||||
|  |     - "ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04" | ||||||
|  |  | ||||||
|  | cache: | ||||||
|  |   # Enable cache server to use actions/cache. | ||||||
|  |   enabled: true | ||||||
|  |   # The directory to store the cache data. | ||||||
|  |   # If it's empty, the cache data will be stored in $HOME/.cache/actcache. | ||||||
|  |   dir: "" | ||||||
|  |   # The host of the cache server. | ||||||
|  |   # It's not for the address to listen, but the address to connect from job containers. | ||||||
|  |   # So 0.0.0.0 is a bad choice, leave it empty to detect automatically. | ||||||
|  |   host: "" | ||||||
|  |   # The port of the cache server. | ||||||
|  |   # 0 means to use a random available port. | ||||||
|  |   port: 0 | ||||||
|  |   # The external cache server URL. Valid only when enable is true. | ||||||
|  |   # If it's specified, act_runner will use this URL as the ACTIONS_CACHE_URL rather than start a server by itself. | ||||||
|  |   # The URL should generally end with "/". | ||||||
|  |   external_server: "" | ||||||
|  |  | ||||||
|  | container: | ||||||
|  |   # Specifies the network to which the container will connect. | ||||||
|  |   # Could be host, bridge or the name of a custom network. | ||||||
|  |   # If it's empty, act_runner will create a network automatically. | ||||||
|  |   network: "" | ||||||
|  |   # Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker). | ||||||
|  |   privileged: false | ||||||
|  |   # And other options to be used when the container is started (eg, --add-host=my.gitea.url:host-gateway). | ||||||
|  |   options: | ||||||
|  |   # The parent directory of a job's working directory. | ||||||
|  |   # NOTE: There is no need to add the first '/' of the path as act_runner will add it automatically.  | ||||||
|  |   # If the path starts with '/', the '/' will be trimmed. | ||||||
|  |   # For example, if the parent directory is /path/to/my/dir, workdir_parent should be path/to/my/dir | ||||||
|  |   # If it's empty, /workspace will be used. | ||||||
|  |   workdir_parent: | ||||||
|  |   # Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob | ||||||
|  |   # You can specify multiple volumes. If the sequence is empty, no volumes can be mounted. | ||||||
|  |   # For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to: | ||||||
|  |   # valid_volumes: | ||||||
|  |   #   - data | ||||||
|  |   #   - /src/*.json | ||||||
|  |   # If you want to allow any volume, please use the following configuration: | ||||||
|  |   # valid_volumes: | ||||||
|  |   #   - '**' | ||||||
|  |   valid_volumes: [] | ||||||
|  |   # overrides the docker client host with the specified one. | ||||||
|  |   # If it's empty, act_runner will find an available docker host automatically. | ||||||
|  |   # If it's "-", act_runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers. | ||||||
|  |   # If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work. | ||||||
|  |   docker_host: "" | ||||||
|  |   # Pull docker image(s) even if already present | ||||||
|  |   force_pull: true | ||||||
|  |   # Rebuild docker image(s) even if already present | ||||||
|  |   force_rebuild: false | ||||||
|  |  | ||||||
|  | host: | ||||||
|  |   # The parent directory of a job's working directory. | ||||||
|  |   # If it's empty, $HOME/.cache/act/ will be used. | ||||||
|  |   workdir_parent: | ||||||
							
								
								
									
										74
									
								
								infrastructure/gitea/docker-compose.gitea.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								infrastructure/gitea/docker-compose.gitea.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | |||||||
|  | services: | ||||||
|  |   # Gitea | ||||||
|  |   gitea: | ||||||
|  |     image: gitea/gitea:latest-rootless | ||||||
|  |     container_name: gitea | ||||||
|  |     profiles: | ||||||
|  |       - gitea | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - database_gitea | ||||||
|  |       - caddy | ||||||
|  |     ports: | ||||||
|  |       - "22:22" | ||||||
|  |     env_file: | ||||||
|  |       - ./gitea/env/gitea.env | ||||||
|  |     volumes: | ||||||
|  |       - gitea_data:/var/lib/gitea | ||||||
|  |       - gitea_config:/etc/gitea | ||||||
|  | #      - /etc/timezone:/etc/timezone:ro | ||||||
|  | #      - /etc/localtime:/etc/localtime:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |    | ||||||
|  |   # Database gitea | ||||||
|  |   database_gitea: | ||||||
|  |     image: lscr.io/linuxserver/mariadb:latest | ||||||
|  |     container_name: database_gitea | ||||||
|  |     profiles: | ||||||
|  |       - database | ||||||
|  |       - gitea | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     volumes: | ||||||
|  |       - gitea_db:/var/lib/mysql:rw | ||||||
|  |     env_file: | ||||||
|  |       - ./gitea/env/gitea_db.env | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  |   # Gitea-runner | ||||||
|  |   gitea-runner: | ||||||
|  |     image: gitea/act_runner:latest | ||||||
|  |     container_name: gitea-runner | ||||||
|  |     profiles: | ||||||
|  |       - gitea-runner | ||||||
|  |     depends_on: | ||||||
|  |       - gitea | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     env_file: | ||||||
|  |       - ./gitea/env/gitea-runner.env | ||||||
|  |     volumes: | ||||||
|  |       - /var/run/docker.sock:/var/run/docker.sock | ||||||
|  |       - gitea_runner:/data | ||||||
|  |       - ./gitea/config/gitea_runner/config.yaml:/config.yaml:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   gitea_data: | ||||||
|  |     name: gitea_data | ||||||
|  |   gitea_config: | ||||||
|  |     name: gitea_config | ||||||
|  |   gitea_db: | ||||||
|  |     name: gitea_db | ||||||
|  |   gitea_runner: | ||||||
|  |     name: gitea_runner | ||||||
							
								
								
									
										5
									
								
								infrastructure/gitea/env/gitea-runner.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								infrastructure/gitea/env/gitea-runner.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | GITEA_INSTANCE_URL=https://git.bensuperpc.org | ||||||
|  | GITEA_RUNNER_REGISTRATION_TOKEN=TBGzS0m823Xk732zRqjrbcSWFTEPajj5V5OFzXWP | ||||||
|  | GITEA_RUNNER_NAME=runner-1 | ||||||
|  | #GITEA_RUNNER_LABELS= | ||||||
|  | CONFIG_FILE=/config.yaml | ||||||
							
								
								
									
										15
									
								
								infrastructure/gitea/env/gitea.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								infrastructure/gitea/env/gitea.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | USER_UID=1000 | ||||||
|  | USER_GID=1000 | ||||||
|  | GITEA__database__DB_TYPE=mysql | ||||||
|  | GITEA__database__HOST=database_gitea:3306 | ||||||
|  | GITEA__database__NAME=gitea | ||||||
|  | GITEA__database__USER=bensuperpc | ||||||
|  | GITEA__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j | ||||||
|  | GITEA__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c | ||||||
|  | #GITEA__security__INTERNAL_TOKEN= | ||||||
|  | GITEA__server__DOMAIN=git.bensuperpc.org | ||||||
|  | GITEA__server__SSH_DOMAIN=git.bensuperpc.org | ||||||
|  | GITEA__server__HTTP_PORT=3000 | ||||||
|  | GITEA__server__SSH_LISTEN_PORT=22 | ||||||
|  | GITEA__server__SSH_PORT=22 | ||||||
|  | GITEA__server__ROOT_URL=https://git.bensuperpc.org | ||||||
							
								
								
									
										4
									
								
								infrastructure/gitea/env/gitea_db.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								infrastructure/gitea/env/gitea_db.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | MYSQL_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j | ||||||
|  | MYSQL_DATABASE=gitea | ||||||
							
								
								
									
										51
									
								
								infrastructure/homepage/config/bookmarks.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								infrastructure/homepage/config/bookmarks.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | |||||||
|  | --- | ||||||
|  | # For configuration options and examples, please see: | ||||||
|  | # https://gethomepage.dev/latest/configs/bookmarks | ||||||
|  |  | ||||||
|  | - Developer: | ||||||
|  |     - Github: | ||||||
|  |         - abbr: GH | ||||||
|  |           href: https://github.com/bensuperpc | ||||||
|  |           description: github.com | ||||||
|  |  | ||||||
|  | - Social: | ||||||
|  |     - Reddit: | ||||||
|  |         - abbr: RE | ||||||
|  |           href: https://reddit.com/u/bensuperpc | ||||||
|  |           description: reddit.com | ||||||
|  |     - Twitter: | ||||||
|  |         - abbr: TW | ||||||
|  |           href: https://twitter.com/bensuperpc | ||||||
|  |           description: twitter.com | ||||||
|  |     - Bluesky: | ||||||
|  |         - abbr: BS | ||||||
|  |           href: https://bsky.app/profile/bensuperpc.bsky.social | ||||||
|  |           description: bsky.app | ||||||
|  |     - Mastodon: | ||||||
|  |         - abbr: MA | ||||||
|  |           href: https://mastodon.social/@bensuperpc | ||||||
|  |           description: mastodon.social | ||||||
|  |  | ||||||
|  | - Entertainment: | ||||||
|  |     - YouTube: | ||||||
|  |         - abbr: YT | ||||||
|  |           href: https://youtube.com/c/bensuperpc | ||||||
|  |           description: youtube.com | ||||||
|  |     - Twitch: | ||||||
|  |         - abbr: TW | ||||||
|  |           href: https://twitch.tv/bensuperpc | ||||||
|  |           description: twitch.tv | ||||||
|  |  | ||||||
|  | - Friends: | ||||||
|  |     - Gnous: | ||||||
|  |         - abbr: Gn | ||||||
|  |           href: https://gnous.eu/ | ||||||
|  |           description: gnous.eu | ||||||
|  |     - Imagisphe: | ||||||
|  |         - abbr: IM | ||||||
|  |           href: https://imagisphe.re/ | ||||||
|  |           description: imagisphe.re | ||||||
|  |     - Greep: | ||||||
|  |         - abbr: GP | ||||||
|  |           href: https://greep.fr/#/ | ||||||
|  |           description: greep.fr | ||||||
							
								
								
									
										0
									
								
								infrastructure/homepage/config/custom.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								infrastructure/homepage/config/custom.css
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								infrastructure/homepage/config/custom.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								infrastructure/homepage/config/custom.js
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										10
									
								
								infrastructure/homepage/config/docker.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								infrastructure/homepage/config/docker.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | --- | ||||||
|  | # For configuration options and examples, please see: | ||||||
|  | # https://gethomepage.dev/latest/configs/docker/ | ||||||
|  |  | ||||||
|  | #jellyfin: | ||||||
|  | #  host: jellyfin | ||||||
|  | #  port: 8096 | ||||||
|  |  | ||||||
|  | #my-docker: | ||||||
|  | #   socket: /var/run/docker.sock | ||||||
							
								
								
									
										2
									
								
								infrastructure/homepage/config/kubernetes.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								infrastructure/homepage/config/kubernetes.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | --- | ||||||
|  | # sample kubernetes config | ||||||
							
								
								
									
										121
									
								
								infrastructure/homepage/config/services.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								infrastructure/homepage/config/services.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,121 @@ | |||||||
|  | --- | ||||||
|  | # For configuration options and examples, please see: | ||||||
|  | # https://gethomepage.dev/latest/configs/services | ||||||
|  |  | ||||||
|  | - Personal: | ||||||
|  |     - wordpress: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/wordpress.png | ||||||
|  |         href: https://wordpress.bensuperpc.org/ | ||||||
|  |         description: Wordpress | ||||||
|  |         ping: wordpress.bensuperpc.org | ||||||
|  |         container: wordpress | ||||||
|  |     - jellyfin: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/jellyfin.png | ||||||
|  |         href: https://jellyfin.bensuperpc.org/ | ||||||
|  |         description: Jellyfin | ||||||
|  |         ping: jellyfin.bensuperpc.org | ||||||
|  |         container: jellyfin | ||||||
|  |     - projectsend: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/projectsend.png | ||||||
|  |         href: https://projectsend.bensuperpc.org/ | ||||||
|  |         description: ProjectSend | ||||||
|  |         ping: projectsend.bensuperpc.org | ||||||
|  |         container: projectsend | ||||||
|  | - Sharing: | ||||||
|  |     - psitransfer: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/psitransfer.png | ||||||
|  |         href: https://psitransfer.bensuperpc.org/ | ||||||
|  |         description: PsiTransfer | ||||||
|  |         ping: psitransfer.bensuperpc.org | ||||||
|  |         container: psitransfer | ||||||
|  |     - picoshare: | ||||||
|  | #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/picoshare.png | ||||||
|  |         href: https://picoshare.bensuperpc.org/ | ||||||
|  |         description: PicoShare | ||||||
|  |         ping: picoshare.bensuperpc.org | ||||||
|  |         container: picoshare | ||||||
|  |     - privatebin: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/privatebin.png | ||||||
|  |         href: https://privatebin.bensuperpc.org/ | ||||||
|  |         description: PrivateBin | ||||||
|  |         ping: privatebin.bensuperpc.org | ||||||
|  |         container: privatebin | ||||||
|  |     - qbittorrent: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/qbittorrent.png | ||||||
|  |         href: https://qbittorrent.bensuperpc.org/ | ||||||
|  |         description: qBittorrent | ||||||
|  |         ping: qbittorrent.bensuperpc.org | ||||||
|  |         container: qbittorrent | ||||||
|  |     - syncthing: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/syncthing.png | ||||||
|  |         href: https://syncthing.bensuperpc.org/ | ||||||
|  |         description: Syncthing | ||||||
|  |         ping: syncthing.bensuperpc.org | ||||||
|  |         container: syncthing | ||||||
|  |     - transmission: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/transmission.png | ||||||
|  |         href: https://transmission.bensuperpc.org/ | ||||||
|  |         description: Transmission | ||||||
|  |         ping: transmission.bensuperpc.org | ||||||
|  |         container: transmission | ||||||
|  |     - dufs: | ||||||
|  | #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/dufs.png | ||||||
|  |         href: https://dufs.bensuperpc.org/ | ||||||
|  |         description: Dufs | ||||||
|  |         ping: dufs.bensuperpc.org | ||||||
|  |         container: dufs | ||||||
|  |  | ||||||
|  | - Utils: | ||||||
|  |     - it-tools: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/it-tools.png | ||||||
|  |         href: https://it-tools.bensuperpc.org/ | ||||||
|  |         description: IT Tools | ||||||
|  |         ping: it-tools.bensuperpc.org | ||||||
|  |         container: it-tools0 | ||||||
|  |     - stirlingpdf: | ||||||
|  |         #icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/stirlingpdf.png | ||||||
|  |         href: https://stirlingpdf.bensuperpc.org/ | ||||||
|  |         description: StirlingPDF | ||||||
|  |         ping: stirlingpdf.bensuperpc.org | ||||||
|  |         container: stirlingpdf | ||||||
|  |     - gitea: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/gitea.png | ||||||
|  |         href: https://gitea.bensuperpc.org/ | ||||||
|  |         description: Gitea | ||||||
|  |         ping: gitea.bensuperpc.org | ||||||
|  |         container: gitea | ||||||
|  |  | ||||||
|  | - Admin: | ||||||
|  |     - uptime-kuma: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/uptime-kuma.png | ||||||
|  |         href: https://uptimekuma.bensuperpc.org/ | ||||||
|  |         description: Uptime Kuma | ||||||
|  |         ping: uptimekuma.bensuperpc.org | ||||||
|  |         container: uptime-kuma | ||||||
|  |     - yacht: | ||||||
|  | #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/yacht.png | ||||||
|  |         href: https://yacht.bensuperpc.org/ | ||||||
|  |         description: Yacht | ||||||
|  |         ping: yacht.bensuperpc.org | ||||||
|  |         container: yacht | ||||||
|  |     - adminer: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/adminer.png | ||||||
|  |         href: https://adminer.bensuperpc.org/ | ||||||
|  |         description: Adminer | ||||||
|  |         ping: adminer.bensuperpc.org | ||||||
|  |         container: adminer | ||||||
|  |  | ||||||
|  | - Games: | ||||||
|  |     - minecraft: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/minecraft.png | ||||||
|  | #        href: https://minecraft.bensuperpc.org/ | ||||||
|  |         description: Minecraft server | ||||||
|  | #        ping: minecraft.bensuperpc.org | ||||||
|  |         container: minecraft-server | ||||||
|  |     - 7dtd: | ||||||
|  | #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/7dtd.png | ||||||
|  | #        href: https://7dtd.bensuperpc.org/ | ||||||
|  |         description: 7 Days to Die server | ||||||
|  | #        ping: 7dtd.bensuperpc.org | ||||||
|  |         container: 7dtd-server | ||||||
|  |  | ||||||
							
								
								
									
										56
									
								
								infrastructure/homepage/config/settings.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								infrastructure/homepage/config/settings.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | |||||||
|  | --- | ||||||
|  | # For configuration options and examples, please see: | ||||||
|  | # https://gethomepage.dev/latest/configs/settings | ||||||
|  |  | ||||||
|  | title: Bensuperpc | ||||||
|  |  | ||||||
|  | base: https://www.bensuperpc.org | ||||||
|  |  | ||||||
|  | favicon: /image/favicon.ico | ||||||
|  |  | ||||||
|  | logpath: /app/logs | ||||||
|  |  | ||||||
|  | background:  | ||||||
|  |   image: /image/background.jpg | ||||||
|  |   blur: md | ||||||
|  |   opacity: 50 | ||||||
|  |   brightness: 50 | ||||||
|  |  | ||||||
|  | theme: dark | ||||||
|  | color: slate | ||||||
|  |  | ||||||
|  | language: en | ||||||
|  |  | ||||||
|  | layout: | ||||||
|  |   Personal: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |   Sharing: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |   Admin: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |   Utils: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |     initiallyCollapsed: false | ||||||
|  |   Games: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |     initiallyCollapsed: false | ||||||
|  |  | ||||||
|  | quicklaunch: | ||||||
|  |   searchDescriptions: true | ||||||
|  |   hideInternetSearch: false | ||||||
|  |   hideVisitURL: false | ||||||
|  |  | ||||||
|  | hideVersion: true | ||||||
|  |  | ||||||
|  | headerStyle: boxed | ||||||
|  |  | ||||||
|  | useEqualHeights: true | ||||||
|  |  | ||||||
|  | #providers: | ||||||
|  | #  openweathermap: openweathermapapikey | ||||||
|  | #  weatherapi: weatherapiapikey | ||||||
							
								
								
									
										37
									
								
								infrastructure/homepage/config/widgets.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								infrastructure/homepage/config/widgets.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | --- | ||||||
|  | # For configuration options and examples, please see: | ||||||
|  | # https://gethomepage.dev/latest/configs/service-widgets | ||||||
|  | # https://gethomepage.dev/main/widgets/services/qbittorrent | ||||||
|  |  | ||||||
|  | #- logo: | ||||||
|  | #    icon: /image/daisy.jpg | ||||||
|  |  | ||||||
|  | - resources: | ||||||
|  |     cpu: true | ||||||
|  |     cputemp: true | ||||||
|  |     memory: true | ||||||
|  |     disk: / | ||||||
|  |     uptime: true | ||||||
|  |     refresh: 3000 | ||||||
|  |  | ||||||
|  | #- search: | ||||||
|  | #    provider: duckduckgo | ||||||
|  | #    target: _blank | ||||||
|  | #    showSearchSuggestions: true | ||||||
|  |  | ||||||
|  | - datetime: | ||||||
|  |     text_size: xl | ||||||
|  |     locale: fr | ||||||
|  |     format: | ||||||
|  |         timeStyle: short | ||||||
|  |         dateStyle: short | ||||||
|  |  | ||||||
|  | - openmeteo: | ||||||
|  |     label: Nantes # optional | ||||||
|  |     latitude: 47.216671 | ||||||
|  |     longitude: -1.55 | ||||||
|  |     timezone: Europe/Paris # optional | ||||||
|  |     units: metric # or imperial | ||||||
|  |     cache: 5 # Time in minutes to cache API responses, to stay within limits | ||||||
|  |     format: # optional, Intl.NumberFormat options | ||||||
|  |       maximumFractionDigits: 1 | ||||||
							
								
								
									
										25
									
								
								infrastructure/homepage/docker-compose.homepage.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								infrastructure/homepage/docker-compose.homepage.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | services: | ||||||
|  |   # homepage | ||||||
|  |   homepage: | ||||||
|  |     image: ghcr.io/gethomepage/homepage:latest | ||||||
|  |     container_name: homepage | ||||||
|  |     profiles: | ||||||
|  |       - homepage | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./homepage/env/homepage.env | ||||||
|  |     volumes: | ||||||
|  |       - homepage_log:/app/logs | ||||||
|  |       - ./homepage/config:/app/config:ro | ||||||
|  |       - ./homepage/image:/app/public/image:ro | ||||||
|  |       - /var/run/docker.sock:/var/run/docker.sock:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   homepage_log: | ||||||
|  |     name: homepage_log | ||||||
							
								
								
									
										2
									
								
								infrastructure/homepage/env/homepage.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								infrastructure/homepage/env/homepage.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn | ||||||
|  | #PSITRANSFER_PORT=3000 | ||||||
							
								
								
									
										
											BIN
										
									
								
								infrastructure/homepage/image/background.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								infrastructure/homepage/image/background.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 569 KiB | 
							
								
								
									
										
											BIN
										
									
								
								infrastructure/homepage/image/daisy.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								infrastructure/homepage/image/daisy.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 51 KiB | 
							
								
								
									
										
											BIN
										
									
								
								infrastructure/homepage/image/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								infrastructure/homepage/image/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 295 KiB | 
							
								
								
									
										44
									
								
								infrastructure/it-tools/docker-compose.it-tools.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								infrastructure/it-tools/docker-compose.it-tools.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | services: | ||||||
|  |   # it-tools | ||||||
|  |   it-tools0: | ||||||
|  |     image: corentinth/it-tools:latest | ||||||
|  |     container_name: it-tools0 | ||||||
|  |     profiles: | ||||||
|  |       - it-tools | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     read_only: false | ||||||
|  |     deploy: | ||||||
|  |       resources: | ||||||
|  |         limits: | ||||||
|  |           cpus: '0.5' | ||||||
|  |           memory: 512M | ||||||
|  |         reservations: | ||||||
|  |           cpus: '0.001' | ||||||
|  |           memory: 20M | ||||||
|  |   it-tools1: | ||||||
|  |     image: corentinth/it-tools:latest | ||||||
|  |     container_name: it-tools1 | ||||||
|  |     profiles: | ||||||
|  |       - it-tools | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     read_only: false | ||||||
|  |     deploy: | ||||||
|  |       resources: | ||||||
|  |         limits: | ||||||
|  |           cpus: '0.5' | ||||||
|  |           memory: 512M | ||||||
|  |         reservations: | ||||||
|  |           cpus: '0.001' | ||||||
|  |           memory: 20M | ||||||
							
								
								
									
										37
									
								
								infrastructure/jellyfin/docker-compose.jellyfin.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								infrastructure/jellyfin/docker-compose.jellyfin.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | services: | ||||||
|  |   # Jellyfin | ||||||
|  |   jellyfin: | ||||||
|  |     image: lscr.io/linuxserver/jellyfin:latest | ||||||
|  |     container_name: jellyfin | ||||||
|  |     profiles: | ||||||
|  |       - jellyfin | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./jellyfin/env/jellyfin.env | ||||||
|  |     volumes: | ||||||
|  |       - jellyfin_config:/config | ||||||
|  |       - jellyfin_cache:/cache | ||||||
|  |       - public_data:/public | ||||||
|  |       - private_data:/private | ||||||
|  |     # Hardware acceleration (For Intel and AMD GPUs) | ||||||
|  |     devices: | ||||||
|  |       - /dev/dri:/dev/dri | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   jellyfin_config: | ||||||
|  |     name: jellyfin_config | ||||||
|  |   jellyfin_cache: | ||||||
|  |     name: jellyfin_cache | ||||||
|  |   public_data: | ||||||
|  |     name: public_data | ||||||
|  |   private_data: | ||||||
|  |     name: private_data | ||||||
							
								
								
									
										2
									
								
								infrastructure/jellyfin/env/jellyfin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								infrastructure/jellyfin/env/jellyfin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | TZ=Etc/UTC | ||||||
|  | DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel | ||||||
							
								
								
									
										30
									
								
								infrastructure/main/docker-compose.main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								infrastructure/main/docker-compose.main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | services: | ||||||
|  |   main_infrastructure: | ||||||
|  |     container_name: main_infrastructure | ||||||
|  |     image: alpine:latest | ||||||
|  |     profiles: | ||||||
|  |       - main_infrastructure | ||||||
|  |     volumes: | ||||||
|  |       - public_data:/public | ||||||
|  |       - private_data:/private | ||||||
|  |     read_only: true | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     cap_drop: | ||||||
|  |       - ALL | ||||||
|  |     cap_add: | ||||||
|  |       - CHOWN | ||||||
|  |       - DAC_OVERRIDE | ||||||
|  |     # Fix root permissions on mounted volumes | ||||||
|  |     command: chown -R ${PUID:-1000}:${PGID:-1000} /public /private | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   public_data: | ||||||
|  |     name: public_data | ||||||
|  |   private_data: | ||||||
|  |     name: private_data | ||||||
|  |  | ||||||
|  | networks: | ||||||
|  |   infra-network: | ||||||
|  |     driver: bridge | ||||||
|  |     name: infra-network | ||||||
| @@ -0,0 +1 @@ | |||||||
|  | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVtzpnPr0Boy+bUbL+viOYfqeetDZF6Hu40EwNLXNb0 bensuperpc@gmail.com | ||||||
							
								
								
									
										33
									
								
								infrastructure/openssh/docker-compose.openssh.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								infrastructure/openssh/docker-compose.openssh.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | services: | ||||||
|  |   # openssh | ||||||
|  |   openssh: | ||||||
|  |     image: linuxserver/openssh-server:latest | ||||||
|  |     container_name: openssh | ||||||
|  |     profiles: | ||||||
|  |       - openssh | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     env_file: | ||||||
|  |       - ./openssh/env/openssh.env | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     volumes: | ||||||
|  |       - openssh_config:/config | ||||||
|  |       - public_data:/public | ||||||
|  |       - private_data:/private | ||||||
|  |       - ./openssh/config/authorized_keys:/authorized_ssh_keys:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     ports: | ||||||
|  |       - 2222:2222 | ||||||
|  | volumes: | ||||||
|  |   openssh_config: | ||||||
|  |     name: openssh_config | ||||||
|  |   public_data: | ||||||
|  |     name: public_data | ||||||
|  |   private_data: | ||||||
|  |     name: private_data | ||||||
							
								
								
									
										15
									
								
								infrastructure/openssh/env/openssh.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								infrastructure/openssh/env/openssh.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | TZ=Etc/UTC | ||||||
|  | SUDO_ACCESS=false | ||||||
|  | PASSWORD_ACCESS=false | ||||||
|  | DOCKER_MODS=linuxserver/mods:openssh-server-rsync | ||||||
|  | #PUBLIC_KEY_URL=https://github.com/bensuperpc.keys | ||||||
|  | PUBLIC_KEY_DIR=/authorized_ssh_keys | ||||||
|  | USER_NAME=bensuperpc | ||||||
|  |  | ||||||
|  | #PUBLIC_KEY=yourpublickey | ||||||
|  | #PUBLIC_KEY_FILE=/path/to/file | ||||||
|  | #PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys | ||||||
|  | #PUBLIC_KEY_URL=https://github.com/username.keys | ||||||
|  | #USER_PASSWORD=password | ||||||
|  | #USER_PASSWORD_FILE=/path/to/file | ||||||
|  | #LOG_STDOUT= | ||||||
							
								
								
									
										33
									
								
								infrastructure/picoshare/docker-compose.picoshare.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								infrastructure/picoshare/docker-compose.picoshare.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | services: | ||||||
|  |   # picoshare | ||||||
|  |   picoshare: | ||||||
|  |     image: mtlynch/picoshare:latest | ||||||
|  |     container_name: picoshare | ||||||
|  |     profiles: | ||||||
|  |       - picoshare | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./picoshare/env/picoshare.env | ||||||
|  |     volumes: | ||||||
|  |       - picoshare_data:/data | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     read_only: true | ||||||
|  |     tmpfs: | ||||||
|  |       - /tmp | ||||||
|  |     deploy: | ||||||
|  |       resources: | ||||||
|  |         limits: | ||||||
|  |           cpus: '0.5' | ||||||
|  |           memory: 512M | ||||||
|  |         reservations: | ||||||
|  |           cpus: '0.001' | ||||||
|  |           memory: 20M | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   picoshare_data: | ||||||
|  |     name: picoshare_data | ||||||
							
								
								
									
										3
									
								
								infrastructure/picoshare/env/picoshare.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								infrastructure/picoshare/env/picoshare.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | PS_SHARED_SECRET=CBuS4DJLqIe93xF1KGYRrnhxUFBqLD2n | ||||||
|  | PORT=4001 | ||||||
|  | PS_BEHIND_PROXY=true | ||||||
							
								
								
									
										283
									
								
								infrastructure/privatebin/config/conf.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										283
									
								
								infrastructure/privatebin/config/conf.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,283 @@ | |||||||
|  | ;<?php http_response_code(403); /* | ||||||
|  | ; config file for PrivateBin | ||||||
|  | ; | ||||||
|  | ; An explanation of each setting can be find online at https://github.com/PrivateBin/PrivateBin/wiki/Configuration. | ||||||
|  |  | ||||||
|  | [main] | ||||||
|  | ; (optional) set a project name to be displayed on the website | ||||||
|  | ; name = "PrivateBin" | ||||||
|  |  | ||||||
|  | ; The full URL, with the domain name and directories that point to the | ||||||
|  | ; PrivateBin files, including an ending slash (/). This URL is essential to | ||||||
|  | ; allow Opengraph images to be displayed on social networks. | ||||||
|  | ; basepath = "https://privatebin.example.com/" | ||||||
|  |  | ||||||
|  | ; enable or disable the discussion feature, defaults to true | ||||||
|  | discussion = true | ||||||
|  |  | ||||||
|  | ; preselect the discussion feature, defaults to false | ||||||
|  | opendiscussion = false | ||||||
|  |  | ||||||
|  | ; enable or disable the display of dates & times in the comments, defaults to true | ||||||
|  | ; Note that internally the creation time will still get tracked in order to sort | ||||||
|  | ; the comments by creation time, but you can choose not to display them. | ||||||
|  | ; discussiondatedisplay = false | ||||||
|  |  | ||||||
|  | ; enable or disable the password feature, defaults to true | ||||||
|  | password = true | ||||||
|  |  | ||||||
|  | ; enable or disable the file upload feature, defaults to false | ||||||
|  | fileupload = false | ||||||
|  |  | ||||||
|  | ; preselect the burn-after-reading feature, defaults to false | ||||||
|  | burnafterreadingselected = false | ||||||
|  |  | ||||||
|  | ; which display mode to preselect by default, defaults to "plaintext" | ||||||
|  | ; make sure the value exists in [formatter_options] | ||||||
|  | defaultformatter = "plaintext" | ||||||
|  |  | ||||||
|  | ; (optional) set a syntax highlighting theme, as found in css/prettify/ | ||||||
|  | ; syntaxhighlightingtheme = "sons-of-obsidian" | ||||||
|  |  | ||||||
|  | ; size limit per paste or comment in bytes, defaults to 10 Mebibytes | ||||||
|  | sizelimit = 10485760 | ||||||
|  |  | ||||||
|  | ; template to include, default is "bootstrap" (tpl/bootstrap.php), also | ||||||
|  | ; available are "page" (tpl/page.php), the classic ZeroBin style and several | ||||||
|  | ; bootstrap variants: "bootstrap-dark", "bootstrap-compact", "bootstrap-page", | ||||||
|  | ; which can be combined with "-dark" and "-compact" for "bootstrap-dark-page" | ||||||
|  | ; and finally "bootstrap-compact-page" - previews at: | ||||||
|  | ; https://privatebin.info/screenshots.html | ||||||
|  | template = "bootstrap-dark" | ||||||
|  |  | ||||||
|  | ; (optional) info text to display | ||||||
|  | ; use single, instead of double quotes for HTML attributes | ||||||
|  | ;info = "More information on the <a href='https://privatebin.info/'>project page</a>." | ||||||
|  |  | ||||||
|  | ; (optional) notice to display | ||||||
|  | ; notice = "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service." | ||||||
|  |  | ||||||
|  | ; by default PrivateBin will guess the visitors language based on the browsers | ||||||
|  | ; settings. Optionally you can enable the language selection menu, which uses | ||||||
|  | ; a session cookie to store the choice until the browser is closed. | ||||||
|  | languageselection = false | ||||||
|  |  | ||||||
|  | ; set the language your installs defaults to, defaults to English | ||||||
|  | ; if this is set and language selection is disabled, this will be the only language | ||||||
|  | ; languagedefault = "en" | ||||||
|  |  | ||||||
|  | ; (optional) URL shortener address to offer after a new paste is created. | ||||||
|  | ; It is suggested to only use this with self-hosted shorteners as this will leak | ||||||
|  | ; the pastes encryption key. | ||||||
|  | ; urlshortener = "https://shortener.example.com/api?link=" | ||||||
|  |  | ||||||
|  | ; (optional) Let users create a QR code for sharing the paste URL with one click. | ||||||
|  | ; It works both when a new paste is created and when you view a paste. | ||||||
|  | ; qrcode = true | ||||||
|  |  | ||||||
|  | ; (optional) Let users send an email sharing the paste URL with one click. | ||||||
|  | ; It works both when a new paste is created and when you view a paste. | ||||||
|  | ; email = true | ||||||
|  |  | ||||||
|  | ; (optional) IP based icons are a weak mechanism to detect if a comment was from | ||||||
|  | ; a different user when the same username was used in a comment. It might get | ||||||
|  | ; used to get the IP of a comment poster if the server salt is leaked and a | ||||||
|  | ; SHA512 HMAC rainbow table is generated for all (relevant) IPs. | ||||||
|  | ; Can be set to one these values: | ||||||
|  | ; "none" / "identicon" (default) / "jdenticon" / "vizhash". | ||||||
|  | ; icon = "none" | ||||||
|  |  | ||||||
|  | ; Content Security Policy headers allow a website to restrict what sources are | ||||||
|  | ; allowed to be accessed in its context. You need to change this if you added | ||||||
|  | ; custom scripts from third-party domains to your templates, e.g. tracking | ||||||
|  | ; scripts or run your site behind certain DDoS-protection services. | ||||||
|  | ; Check the documentation at https://content-security-policy.com/ | ||||||
|  | ; Notes: | ||||||
|  | ; - If you use any bootstrap theme, you can remove the allow-popups from the | ||||||
|  | ;   sandbox restrictions. | ||||||
|  | ; - If you use the bootstrap5 theme, you must change default-src to 'self' to | ||||||
|  | ;   enable display of the svg icons | ||||||
|  | ; - By default this disallows to load images from third-party servers, e.g. when | ||||||
|  | ;   they are embedded in pastes. If you wish to allow that, you can adjust the | ||||||
|  | ;   policy here. See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-it-load-embedded-images | ||||||
|  | ;   for details. | ||||||
|  | ; - The 'unsafe-eval' is used in two cases; to check if the browser supports | ||||||
|  | ;   async functions and display an error if not and for Chrome to enable | ||||||
|  | ;   webassembly support (used for zlib compression). You can remove it if Chrome | ||||||
|  | ;   doesn't need to be supported and old browsers don't need to be warned. | ||||||
|  | ; cspheader = "default-src 'none'; base-uri 'self'; form-action 'none'; manifest-src 'self'; connect-src * blob:; script-src 'self' 'unsafe-eval'; style-src 'self'; font-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob:; media-src blob:; object-src blob:; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads" | ||||||
|  |  | ||||||
|  | ; stay compatible with PrivateBin Alpha 0.19, less secure | ||||||
|  | ; if enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of | ||||||
|  | ; sha256 in HMAC for the deletion token | ||||||
|  | ; zerobincompatibility = false | ||||||
|  |  | ||||||
|  | ; Enable or disable the warning message when the site is served over an insecure | ||||||
|  | ; connection (insecure HTTP instead of HTTPS), defaults to true. | ||||||
|  | ; Secure transport methods like Tor and I2P domains are automatically whitelisted. | ||||||
|  | ; It is **strongly discouraged** to disable this. | ||||||
|  | ; See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-it-show-me-an-error-about-an-insecure-connection for more information. | ||||||
|  | ; httpwarning = true | ||||||
|  |  | ||||||
|  | ; Pick compression algorithm or disable it. Only applies to pastes/comments | ||||||
|  | ; created after changing the setting. | ||||||
|  | ; Can be set to one these values: "none" / "zlib" (default). | ||||||
|  | ; compression = "zlib" | ||||||
|  |  | ||||||
|  | [expire] | ||||||
|  | ; expire value that is selected per default | ||||||
|  | ; make sure the value exists in [expire_options] | ||||||
|  | default = "1week" | ||||||
|  |  | ||||||
|  | [expire_options] | ||||||
|  | ; Set each one of these to the number of seconds in the expiration period, | ||||||
|  | ; or 0 if it should never expire | ||||||
|  | 5min = 300 | ||||||
|  | 10min = 600 | ||||||
|  | 1hour = 3600 | ||||||
|  | 1day = 86400 | ||||||
|  | 1week = 604800 | ||||||
|  | ; Well this is not *exactly* one month, it's 30 days: | ||||||
|  | 1month = 2592000 | ||||||
|  | 1year = 31536000 | ||||||
|  | never = 0 | ||||||
|  |  | ||||||
|  | [formatter_options] | ||||||
|  | ; Set available formatters, their order and their labels | ||||||
|  | plaintext = "Plain Text" | ||||||
|  | syntaxhighlighting = "Source Code" | ||||||
|  | markdown = "Markdown" | ||||||
|  |  | ||||||
|  | [traffic] | ||||||
|  | ; time limit between calls from the same IP address in seconds | ||||||
|  | ; Set this to 0 to disable rate limiting. | ||||||
|  | limit = 10 | ||||||
|  |  | ||||||
|  | ; (optional) Set IPs addresses (v4 or v6) or subnets (CIDR) which are exempted | ||||||
|  | ; from the rate-limit. Invalid IPs will be ignored. If multiple values are to | ||||||
|  | ; be exempted, the list needs to be comma separated. Leave unset to disable | ||||||
|  | ; exemptions. | ||||||
|  | ; exempted = "1.2.3.4,10.10.10/24" | ||||||
|  |  | ||||||
|  | ; (optional) If you want only some source IP addresses (v4 or v6) or subnets | ||||||
|  | ; (CIDR) to be allowed to create pastes, set these here. Invalid IPs will be | ||||||
|  | ; ignored. If multiple values are to be exempted, the list needs to be comma | ||||||
|  | ; separated. Leave unset to allow anyone to create pastes. | ||||||
|  | ; creators = "1.2.3.4,10.10.10/24" | ||||||
|  |  | ||||||
|  | ; (optional) if your website runs behind a reverse proxy or load balancer, | ||||||
|  | ; set the HTTP header containing the visitors IP address, i.e. X_FORWARDED_FOR | ||||||
|  | ; header = "X_FORWARDED_FOR" | ||||||
|  |  | ||||||
|  | [purge] | ||||||
|  | ; minimum time limit between two purgings of expired pastes, it is only | ||||||
|  | ; triggered when pastes are created | ||||||
|  | ; Set this to 0 to run a purge every time a paste is created. | ||||||
|  | limit = 300 | ||||||
|  |  | ||||||
|  | ; maximum amount of expired pastes to delete in one purge | ||||||
|  | ; Set this to 0 to disable purging. Set it higher, if you are running a large | ||||||
|  | ; site | ||||||
|  | batchsize = 10 | ||||||
|  |  | ||||||
|  | [model] | ||||||
|  | ; name of data model class to load and directory for storage | ||||||
|  | ; the default model "Filesystem" stores everything in the filesystem | ||||||
|  | class = Filesystem | ||||||
|  | [model_options] | ||||||
|  | dir = PATH "data" | ||||||
|  |  | ||||||
|  | ;[model] | ||||||
|  | ; example of a Google Cloud Storage configuration | ||||||
|  | ;class = GoogleCloudStorage | ||||||
|  | ;[model_options] | ||||||
|  | ;bucket = "my-private-bin" | ||||||
|  | ;prefix = "pastes" | ||||||
|  | ;uniformacl = false | ||||||
|  |  | ||||||
|  | ;[model] | ||||||
|  | ; example of DB configuration for MySQL | ||||||
|  | ;class = Database | ||||||
|  | ;[model_options] | ||||||
|  | ;dsn = "mysql:host=localhost;dbname=privatebin;charset=UTF8" | ||||||
|  | ;tbl = "privatebin_"	; table prefix | ||||||
|  | ;usr = "privatebin" | ||||||
|  | ;pwd = "Z3r0P4ss" | ||||||
|  | ;opt[12] = true	  ; PDO::ATTR_PERSISTENT | ||||||
|  |  | ||||||
|  | ;[model] | ||||||
|  | ; example of DB configuration for SQLite | ||||||
|  | ;class = Database | ||||||
|  | ;[model_options] | ||||||
|  | ;dsn = "sqlite:" PATH "data/db.sq3" | ||||||
|  | ;usr = null | ||||||
|  | ;pwd = null | ||||||
|  | ;opt[12] = true	; PDO::ATTR_PERSISTENT | ||||||
|  |  | ||||||
|  | ;[model] | ||||||
|  | ; example of DB configuration for PostgreSQL | ||||||
|  | ;class = Database | ||||||
|  | ;[model_options] | ||||||
|  | ;dsn = "pgsql:host=localhost;dbname=privatebin" | ||||||
|  | ;tbl = "privatebin_"     ; table prefix | ||||||
|  | ;usr = "privatebin" | ||||||
|  | ;pwd = "Z3r0P4ss" | ||||||
|  | ;opt[12] = true    ; PDO::ATTR_PERSISTENT | ||||||
|  |  | ||||||
|  | ;[model] | ||||||
|  | ; example of S3 configuration for Rados gateway / CEPH | ||||||
|  | ;class = S3Storage | ||||||
|  | ;[model_options] | ||||||
|  | ;region = "" | ||||||
|  | ;version = "2006-03-01" | ||||||
|  | ;endpoint = "https://s3.my-ceph.invalid" | ||||||
|  | ;use_path_style_endpoint = true | ||||||
|  | ;bucket = "my-bucket" | ||||||
|  | ;accesskey = "my-rados-user" | ||||||
|  | ;secretkey = "my-rados-pass" | ||||||
|  |  | ||||||
|  | ;[model] | ||||||
|  | ; example of S3 configuration for AWS | ||||||
|  | ;class = S3Storage | ||||||
|  | ;[model_options] | ||||||
|  | ;region = "eu-central-1" | ||||||
|  | ;version = "latest" | ||||||
|  | ;bucket = "my-bucket" | ||||||
|  | ;accesskey = "access key id" | ||||||
|  | ;secretkey = "secret access key" | ||||||
|  |  | ||||||
|  | ;[model] | ||||||
|  | ; example of S3 configuration for AWS using its SDK default credential provider chain | ||||||
|  | ; if relying on environment variables, the AWS SDK will look for the following: | ||||||
|  | ; - AWS_ACCESS_KEY_ID | ||||||
|  | ; - AWS_SECRET_ACCESS_KEY | ||||||
|  | ; - AWS_SESSION_TOKEN (if needed) | ||||||
|  | ; for more details, see https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html#default-credential-chain | ||||||
|  | ;class = S3Storage | ||||||
|  | ;[model_options] | ||||||
|  | ;region = "eu-central-1" | ||||||
|  | ;version = "latest" | ||||||
|  | ;bucket = "my-bucket" | ||||||
|  |  | ||||||
|  | [yourls] | ||||||
|  | ; When using YOURLS as a "urlshortener" config item: | ||||||
|  | ; - By default, "urlshortener" will point to the YOURLS API URL, with or without | ||||||
|  | ;   credentials, and will be visible in public on the PrivateBin web page. | ||||||
|  | ;   Only use this if you allow short URL creation without credentials. | ||||||
|  | ; - Alternatively, using the parameters in this section ("signature" and | ||||||
|  | ;   "apiurl"), "urlshortener" needs to point to the base URL of your PrivateBin | ||||||
|  | ;   instance with "?shortenviayourls&link=" appended. For example: | ||||||
|  | ;   urlshortener = "${basepath}?shortenviayourls&link=" | ||||||
|  | ;   This URL will in turn call YOURLS on the server side, using the URL from | ||||||
|  | ;   "apiurl" and the "access signature" from the "signature" parameters below. | ||||||
|  |  | ||||||
|  | ; (optional) the "signature" (access key) issued by YOURLS for the using account | ||||||
|  | ; signature = "" | ||||||
|  | ; (optional) the URL of the YOURLS API, called to shorten a PrivateBin URL | ||||||
|  | ; apiurl = "https://yourls.example.com/yourls-api.php" | ||||||
|  |  | ||||||
|  | ;[sri] | ||||||
|  | ; Subresource integrity (SRI) hashes used in template files. Uncomment and set | ||||||
|  | ; these for all js files used. See: | ||||||
|  | ; https://github.com/PrivateBin/PrivateBin/wiki/FAQ#user-content-how-to-make-privatebin-work-when-i-have-changed-some-javascript-files | ||||||
|  | ;privatebin.js = sha512-[…] | ||||||
							
								
								
									
										30
									
								
								infrastructure/privatebin/docker-compose.privatebin.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								infrastructure/privatebin/docker-compose.privatebin.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | services: | ||||||
|  |   # privatebin | ||||||
|  |   privatebin: | ||||||
|  |     image: privatebin/nginx-fpm-alpine:latest | ||||||
|  |     container_name: privatebin | ||||||
|  |     profiles: | ||||||
|  |       - privatebin | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     volumes: | ||||||
|  |       - privatebin_data:/srv/data | ||||||
|  |       - ./privatebin/config/conf.php:/srv/cfg/conf.php:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     read_only: true | ||||||
|  |     deploy: | ||||||
|  |       resources: | ||||||
|  |         limits: | ||||||
|  |           cpus: '0.5' | ||||||
|  |           memory: 512M | ||||||
|  |         reservations: | ||||||
|  |           cpus: '0.001' | ||||||
|  |           memory: 20M | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   privatebin_data: | ||||||
|  |     name: privatebin_data | ||||||
							
								
								
									
										50
									
								
								infrastructure/projectsend/docker-compose.projectsend.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								infrastructure/projectsend/docker-compose.projectsend.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | services: | ||||||
|  |   # projectsend | ||||||
|  |   projectsend: | ||||||
|  |     image: linuxserver/projectsend:latest | ||||||
|  |     container_name: projectsend | ||||||
|  |     profiles: | ||||||
|  |       - projectsend | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./projectsend/env/projectsend.env | ||||||
|  |     volumes: | ||||||
|  |       - /var/run/docker.sock:/var/run/docker.sock | ||||||
|  |       - projectsend_config:/config | ||||||
|  |       - projectsend_share:/data | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  |   # Database projectsend | ||||||
|  |   projectsend_db: | ||||||
|  |     image: lscr.io/linuxserver/mariadb:latest | ||||||
|  |     container_name: projectsend_db | ||||||
|  |     profiles: | ||||||
|  |       - database | ||||||
|  |       - projectsend | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     volumes: | ||||||
|  |       - projectsend_db:/var/lib/mysql:rw | ||||||
|  |     env_file: | ||||||
|  |       - ./projectsend/env/projectsend_db.env | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   projectsend_db: | ||||||
|  |     name: projectsend_db | ||||||
|  |   projectsend_config: | ||||||
|  |     name: projectsend_config | ||||||
|  |   projectsend_share: | ||||||
|  |     name: projectsend_share | ||||||
							
								
								
									
										1
									
								
								infrastructure/projectsend/env/projectsend.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								infrastructure/projectsend/env/projectsend.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | MAX_UPLOAD=50000 | ||||||
							
								
								
									
										4
									
								
								infrastructure/projectsend/env/projectsend_db.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								infrastructure/projectsend/env/projectsend_db.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | MYSQL_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY | ||||||
|  | MYSQL_DATABASE=projectsend | ||||||
							
								
								
									
										32
									
								
								infrastructure/psitransfer/docker-compose.psitransfer.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								infrastructure/psitransfer/docker-compose.psitransfer.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | services: | ||||||
|  |   # psitransfer | ||||||
|  |   psitransfer: | ||||||
|  |     image: psitrax/psitransfer:latest | ||||||
|  |     container_name: psitransfer | ||||||
|  |     profiles: | ||||||
|  |       - psitransfer | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     user: ${PUID:-1000}:${PGID:-1000}  | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./psitransfer/env/psitransfer.env | ||||||
|  |     volumes: | ||||||
|  |       - psitransfer_data:/data | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     read_only: true | ||||||
|  |     deploy: | ||||||
|  |       resources: | ||||||
|  |         limits: | ||||||
|  |           cpus: '0.5' | ||||||
|  |           memory: 512M | ||||||
|  |         reservations: | ||||||
|  |           cpus: '0.001' | ||||||
|  |           memory: 20M | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   psitransfer_data: | ||||||
|  |     name: psitransfer_data | ||||||
							
								
								
									
										2
									
								
								infrastructure/psitransfer/env/psitransfer.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								infrastructure/psitransfer/env/psitransfer.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn | ||||||
|  | #PSITRANSFER_PORT=3000 | ||||||
							
								
								
									
										30
									
								
								infrastructure/qbittorrent/docker-compose.qbittorrent.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								infrastructure/qbittorrent/docker-compose.qbittorrent.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | services: | ||||||
|  |   # qBittorrent | ||||||
|  |   qbittorrent: | ||||||
|  |     image: lscr.io/linuxserver/qbittorrent:latest | ||||||
|  |     container_name: qbittorrent | ||||||
|  |     profiles: | ||||||
|  |       - qbittorrent | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./qbittorrent/env/qbittorrent.env | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     volumes: | ||||||
|  |       - qbittorrent_config:/config | ||||||
|  |       - public_data:/downloads | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   qbittorrent_config: | ||||||
|  |     name: qbittorrent_config | ||||||
|  |   public_data: | ||||||
|  |     name: public_data | ||||||
|  |   private_data: | ||||||
|  |     name: private_data | ||||||
							
								
								
									
										3
									
								
								infrastructure/qbittorrent/env/qbittorrent.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								infrastructure/qbittorrent/env/qbittorrent.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | TZ=Etc/UTC | ||||||
|  | WEBUI_PORT=8080 | ||||||
|  | TORRENTING_PORT=6881 | ||||||
							
								
								
									
										26
									
								
								infrastructure/stirlingpdf/docker-compose.stirlingpdf.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								infrastructure/stirlingpdf/docker-compose.stirlingpdf.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | services: | ||||||
|  |   # stirlingpdf | ||||||
|  |   stirlingpdf: | ||||||
|  |     image: frooodle/s-pdf:latest | ||||||
|  |     container_name: stirlingpdf | ||||||
|  |     profiles: | ||||||
|  |       - stirlingpdf | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./stirlingpdf/env/stirlingpdf.env | ||||||
|  |     volumes: | ||||||
|  |       - stirlingpdf_config:/configs | ||||||
|  |       - stirlingpdf_tessdata:/usr/share/tessdata | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |     read_only: false | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   stirlingpdf_config: | ||||||
|  |     name: stirlingpdf_config | ||||||
|  |   stirlingpdf_tessdata: | ||||||
|  |     name: stirlingpdf_tessdata | ||||||
							
								
								
									
										9
									
								
								infrastructure/stirlingpdf/env/stirlingpdf.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								infrastructure/stirlingpdf/env/stirlingpdf.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | LANGS=en_GB | ||||||
|  | #SYSTEM_ROOTURIPATH=/ | ||||||
|  | # Enable security, optional | ||||||
|  | #DOCKER_ENABLE_SECURITY=true | ||||||
|  | #SECURITY_ENABLE_LOGIN=true | ||||||
|  | # Can be disabled after initial login, optional, | ||||||
|  | # default it admin:stirling | ||||||
|  | #SECURITY_INITIALLOGIN_USERNAME=admin | ||||||
|  | #SECURITY_INITIALLOGIN_PASSWORD=Jw9U039f5xc2mFcacvGvPD9RjwIh4DzO | ||||||
							
								
								
									
										31
									
								
								infrastructure/syncthing/docker-compose.syncthing.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								infrastructure/syncthing/docker-compose.syncthing.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | services: | ||||||
|  |   # syncthing | ||||||
|  |   syncthing: | ||||||
|  |     image: linuxserver/syncthing:latest | ||||||
|  |     container_name: syncthing | ||||||
|  |     profiles: | ||||||
|  |       - syncthing | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     env_file: | ||||||
|  |       - ./syncthing/env/syncthing.env | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     volumes: | ||||||
|  |       - syncthing_config:/config | ||||||
|  |       - public_data:/data1 | ||||||
|  |       - private_data:/data2 | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   syncthing_config: | ||||||
|  |     name: syncthing_config | ||||||
|  |   public_data: | ||||||
|  |     name: public_data | ||||||
|  |   private_data: | ||||||
|  |     name: private_data | ||||||
							
								
								
									
										1
									
								
								infrastructure/syncthing/env/syncthing.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								infrastructure/syncthing/env/syncthing.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | TZ=Etc/UTC | ||||||
							
								
								
									
										33
									
								
								infrastructure/transmission/docker-compose.transmission.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								infrastructure/transmission/docker-compose.transmission.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | services: | ||||||
|  |   # transmission | ||||||
|  |   transmission: | ||||||
|  |     image: lscr.io/linuxserver/transmission:latest | ||||||
|  |     container_name: transmission | ||||||
|  |     profiles: | ||||||
|  |       - transmission | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./transmission/env/transmission.env | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     volumes: | ||||||
|  |       - transmission_config:/config | ||||||
|  |       - public_data:/downloads | ||||||
|  |       - transmission_watch:/watch | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   transmission_config: | ||||||
|  |     name: transmission_config | ||||||
|  |   transmission_watch: | ||||||
|  |     name: transmission_watch | ||||||
|  |   public_data: | ||||||
|  |     name: public_data | ||||||
|  |   private_data: | ||||||
|  |     name: private_data | ||||||
							
								
								
									
										3
									
								
								infrastructure/transmission/env/transmission.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								infrastructure/transmission/env/transmission.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | TZ=Etc/UTC | ||||||
|  | USER=admin | ||||||
|  | PASS=4vqXCNGG09JUBe7rXkuQS8MG7ovE6Vxj | ||||||
							
								
								
									
										20
									
								
								infrastructure/uptime-kuma/docker-compose.uptime-kuma.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								infrastructure/uptime-kuma/docker-compose.uptime-kuma.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | services: | ||||||
|  |   # Uptime Kuma | ||||||
|  |   uptime-kuma: | ||||||
|  |     image: louislam/uptime-kuma:latest | ||||||
|  |     container_name: uptime-kuma | ||||||
|  |     profiles: | ||||||
|  |       - uptime-kuma | ||||||
|  |     volumes: | ||||||
|  |       - uptimekuma_data:/app/data | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   uptimekuma_data: | ||||||
|  |     name: uptimekuma_data | ||||||
							
								
								
									
										3
									
								
								infrastructure/wordpress/config/wordpress/php.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								infrastructure/wordpress/config/wordpress/php.ini
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | memory_limit = 1024M | ||||||
|  | upload_max_filesize = 64M | ||||||
|  | post_max_size = 64M | ||||||
							
								
								
									
										17
									
								
								infrastructure/wordpress/docker-compose.adminer.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								infrastructure/wordpress/docker-compose.adminer.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | services: | ||||||
|  |   # Adminer | ||||||
|  |   adminer: | ||||||
|  |     image: adminer:latest | ||||||
|  |     container_name: adminer | ||||||
|  |     profiles: | ||||||
|  |       - adminer | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     env_file:  | ||||||
|  |       - ./wordpress/env/adminer.env | ||||||
|  |     depends_on: | ||||||
|  |       - wordpress_db | ||||||
|  |       - caddy | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
							
								
								
									
										69
									
								
								infrastructure/wordpress/docker-compose.wordpress.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								infrastructure/wordpress/docker-compose.wordpress.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | |||||||
|  | services: | ||||||
|  |   # Wordpress | ||||||
|  |   wordpress: | ||||||
|  |     image: wordpress:fpm | ||||||
|  |     container_name: wordpress | ||||||
|  |     profiles: | ||||||
|  |       - wordpress | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - wordpress_db | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./wordpress/env/wordpress.env | ||||||
|  |     volumes: | ||||||
|  |       - ./wordpress/config/wordpress/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro | ||||||
|  |       - wordpress:/var/www/html:rw | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  |   # Database wordpress | ||||||
|  |   wordpress_db: | ||||||
|  |     image: lscr.io/linuxserver/mariadb:latest | ||||||
|  |     container_name: wordpress_db | ||||||
|  |     profiles: | ||||||
|  |       - database | ||||||
|  |       - wordpress | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     environment: | ||||||
|  |       - PUID=${PUID:-1000} | ||||||
|  |       - PGID=${PGID:-1000} | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     volumes: | ||||||
|  |       - wordpress_db:/var/lib/mysql:rw | ||||||
|  |     env_file: | ||||||
|  |       - ./wordpress/env/wordpress_db.env | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  |   wordpress_backup: | ||||||
|  |     image: mazzolino/restic:latest | ||||||
|  |     container_name: wordpress_backup | ||||||
|  |     profiles: | ||||||
|  |       - wordpress | ||||||
|  |     depends_on: | ||||||
|  |       - wordpress | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     env_file: | ||||||
|  |       - ./wordpress/env/wordpress_backup.env | ||||||
|  |     volumes: | ||||||
|  |       - wordpress_backup:/mnt/restic | ||||||
|  |       - wordpress_db:/data/wordpress_db:ro | ||||||
|  |       - wordpress:/data/wordpress:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   wordpress_db: | ||||||
|  |     name: wordpress_db | ||||||
|  |   wordpress: | ||||||
|  |     name: wordpress | ||||||
|  |   wordpress_backup: | ||||||
|  |     name: wordpress_backup | ||||||
							
								
								
									
										4
									
								
								infrastructure/wordpress/env/adminer.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								infrastructure/wordpress/env/adminer.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | MYSQL_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | ||||||
|  | ADMINER_DEFAULT_SERVER=wordpress_db | ||||||
							
								
								
									
										4
									
								
								infrastructure/wordpress/env/wordpress.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								infrastructure/wordpress/env/wordpress.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | WORDPRESS_DB_USER=bensuperpc | ||||||
|  | WORDPRESS_DB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | ||||||
|  | WORDPRESS_DB_NAME=wordpress | ||||||
|  | WORDPRESS_DB_HOST=wordpress_db:3306 | ||||||
							
								
								
									
										14
									
								
								infrastructure/wordpress/env/wordpress_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								infrastructure/wordpress/env/wordpress_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | #RUN_ON_STARTUP=true | ||||||
|  | RESTIC_REPOSITORY=/mnt/restic | ||||||
|  | RESTIC_BACKUP_SOURCES=/data | ||||||
|  | RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | # Backup (exuclusive with Check and Prune) | ||||||
|  | BACKUP_CRON=*/30 * * * * | ||||||
|  | RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose | ||||||
|  | RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 4 | ||||||
|  | # Check (exuclusive with Check and Prune) | ||||||
|  | #CHECK_CRON=*/30 * * * * | ||||||
|  | #RESTIC_CHECK_ARGS=--read-data-subset=40% | ||||||
|  | # Prune (exuclusive with Check and Prune) | ||||||
|  | #PRUNE_CRON=*/30 * * * * | ||||||
|  | #RESTIC_PRUNE_ARGS= | ||||||
							
								
								
									
										4
									
								
								infrastructure/wordpress/env/wordpress_db.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								infrastructure/wordpress/env/wordpress_db.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | MYSQL_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | ||||||
|  | MYSQL_DATABASE=wordpress | ||||||
							
								
								
									
										23
									
								
								infrastructure/yacht/docker-compose.yacht.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								infrastructure/yacht/docker-compose.yacht.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | services: | ||||||
|  |   # yacht | ||||||
|  |   yacht: | ||||||
|  |     image: selfhostedpro/yacht:latest | ||||||
|  |     container_name: yacht | ||||||
|  |     profiles: | ||||||
|  |       - yacht | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./yacht/env/yacht.env | ||||||
|  |     volumes: | ||||||
|  |       - /var/run/docker.sock:/var/run/docker.sock | ||||||
|  |       - yacht_config:/config | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   yacht_config: | ||||||
|  |     name: yacht_config | ||||||
							
								
								
									
										3
									
								
								infrastructure/yacht/env/yacht.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								infrastructure/yacht/env/yacht.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ADMIN_EMAIL=bensuperpc@gmail.com | ||||||
|  | SECRET_KEY=UZvg9nbcGIJlPEB3uI39TAEWyFOz9nm8 | ||||||
|  | #DATABASE_URL=postgresql://user:password@postgresserver/db | ||||||
| @@ -1,32 +0,0 @@ | |||||||
| version: "3.9" |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   certbot: |  | ||||||
|     depends_on: |  | ||||||
|       - webserver |  | ||||||
|     image: certbot/certbot:v1.32.0 |  | ||||||
|     container_name: certbot |  | ||||||
|     profiles: |  | ||||||
|       - certbot |  | ||||||
|     volumes: |  | ||||||
|       - certbot-cert:/etc/letsencrypt |  | ||||||
|       - wordpress:/var/www/wordpress |  | ||||||
|       - jellyfin:/var/www/jellyfin |  | ||||||
|     #command: > |  | ||||||
|     #  certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --staging --webroot |  | ||||||
|     #  --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org |  | ||||||
|     #  --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org  |  | ||||||
|  |  | ||||||
|     #command: > |  | ||||||
|     #  certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --force-renewal --webroot |  | ||||||
|     #  --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org |  | ||||||
|     #  --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org  |  | ||||||
|  |  | ||||||
|     command: > |  | ||||||
|       certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --keep-until-expiring --webroot  |  | ||||||
|       --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org |  | ||||||
|       --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   certbot-cert: |  | ||||||
|     name: certbot-cert |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| version: "3.9" |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   qbittorrent: |  | ||||||
|     image: lscr.io/linuxserver/qbittorrent:latest |  | ||||||
|     container_name: qbittorrent |  | ||||||
|     profiles: |  | ||||||
|       - qbittorrent |  | ||||||
|     environment: |  | ||||||
|       - PUID=1000 |  | ||||||
|       - PGID=1000 |  | ||||||
|       - TZ=Europe/London |  | ||||||
|       - WEBUI_PORT=8080 |  | ||||||
|     volumes: |  | ||||||
|       - qbittorrent-conf:/config |  | ||||||
|       - qbittorrent-downloads:/downloads |  | ||||||
|     #ports: |  | ||||||
|     #  - 8080:8080 |  | ||||||
|     #  - 6881:6881 |  | ||||||
|     #  - 6881:6881/udp |  | ||||||
|     restart: unless-stopped |  | ||||||
|     networks: |  | ||||||
|       - app-network |  | ||||||
|   jellyfin: |  | ||||||
|     image: lscr.io/linuxserver/jellyfin:latest |  | ||||||
|     container_name: jellyfin |  | ||||||
|     profiles: |  | ||||||
|       - jellyfin |  | ||||||
|     environment: |  | ||||||
|       - PUID=1000 |  | ||||||
|       - PGID=1000 |  | ||||||
|       - TZ=Europe/London |  | ||||||
|       - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional |  | ||||||
|     volumes: |  | ||||||
|       - jellyfin-config:/config |  | ||||||
|       - jellyfin-tvseries:/data/tvshows |  | ||||||
|       - jellyfin-movies:/data/movies |  | ||||||
|       - jellyfin:/var/www/html |  | ||||||
|     #ports: |  | ||||||
|     #  - 8096:8096 |  | ||||||
|     #  - 8920:8920 #optional |  | ||||||
|     #  - 7359:7359/udp #optional |  | ||||||
|     #  - 1900:1900/udp #optional |  | ||||||
|     restart: unless-stopped |  | ||||||
|     networks: |  | ||||||
|       - app-network |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| version: "3.9" |  | ||||||
|  |  | ||||||
| networks: |  | ||||||
|   app-network: |  | ||||||
|     driver: bridge |  | ||||||
|     name: app-network |  | ||||||
| @@ -1,32 +0,0 @@ | |||||||
| version: "3.9" |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   webserver: |  | ||||||
|     depends_on: |  | ||||||
|       - wordpress |  | ||||||
|     image: nginx:1.23 |  | ||||||
|     container_name: webserver |  | ||||||
|     profiles: |  | ||||||
|       - webserver |  | ||||||
|     restart: unless-stopped |  | ||||||
|     ports: |  | ||||||
|       - "80:80" |  | ||||||
|       - "443:443" |  | ||||||
|     volumes: |  | ||||||
|       - wordpress:/var/www/wordpress |  | ||||||
|       - jellyfin:/var/www/jellyfin |  | ||||||
|       - ./nginx/conf.d:/etc/nginx/conf.d:ro |  | ||||||
|       - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro |  | ||||||
|       - certbot-cert:/etc/letsencrypt:ro |  | ||||||
|     networks: |  | ||||||
|       - app-network |  | ||||||
|     security_opt: |  | ||||||
|       - "no-new-privileges:true" |  | ||||||
|     cap_drop: |  | ||||||
|       - "ALL" |  | ||||||
|     cap_add: |  | ||||||
|       - "NET_RAW" |  | ||||||
|       - "NET_BIND_SERVICE" |  | ||||||
|       - "CAP_CHOWN" |  | ||||||
|       - "SETGID" |  | ||||||
|       - "SETUID" |  | ||||||
| @@ -1,15 +0,0 @@ | |||||||
| version: "3.9" |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   qbittorrent-downloads: |  | ||||||
|     name: qbittorrent-downloads |  | ||||||
|   qbittorrent-conf: |  | ||||||
|     name: qbittorrent-conf |  | ||||||
|   jellyfin-config: |  | ||||||
|     name: jellyfin-config |  | ||||||
|   jellyfin-tvseries: |  | ||||||
|     name: jellyfin-tvseries |  | ||||||
|   jellyfin-movies: |  | ||||||
|     name: jellyfin-movies |  | ||||||
|   jellyfin: |  | ||||||
|     name: jellyfin |  | ||||||
| @@ -1,62 +0,0 @@ | |||||||
| version: "3.9" |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   wp_db: |  | ||||||
|     image: mariadb:10.10.2 |  | ||||||
|     container_name: wp_db |  | ||||||
|     profiles: |  | ||||||
|       - wp_db |  | ||||||
|     restart: unless-stopped |  | ||||||
|     env_file:  |  | ||||||
|       - env/wp_database.env |  | ||||||
|     volumes:  |  | ||||||
|       - dbdata:/var/lib/mysql |  | ||||||
|     networks: |  | ||||||
|       - app-network |  | ||||||
|  |  | ||||||
|   wordpress: |  | ||||||
|     depends_on:  |  | ||||||
|       - wp_db |  | ||||||
|     image: wordpress:6.1.1-php8.1-fpm |  | ||||||
|     container_name: wordpress |  | ||||||
|     profiles: |  | ||||||
|       - wordpress |  | ||||||
|     restart: unless-stopped |  | ||||||
|     env_file:  |  | ||||||
|       - env/wordpress.env |  | ||||||
| #    environment: |  | ||||||
| #      - WORDPRESS_DB_HOST=wp_db:3306 |  | ||||||
|     volumes: |  | ||||||
|       - wordpress:/var/www/html |  | ||||||
|     networks: |  | ||||||
|       - app-network |  | ||||||
|     security_opt: |  | ||||||
|       - "no-new-privileges:true" |  | ||||||
|     cap_drop: |  | ||||||
|       - "ALL" |  | ||||||
|     cap_add: |  | ||||||
|       - "NET_RAW" |  | ||||||
|       - "CAP_CHOWN" |  | ||||||
|       - "SETGID" |  | ||||||
|       - "SETUID" |  | ||||||
|  |  | ||||||
|   phpmyadmin: |  | ||||||
|     image: phpmyadmin:5.2.0 |  | ||||||
|     container_name: phpmyadmin |  | ||||||
|     profiles: |  | ||||||
|       - phpmyadmin |  | ||||||
|     restart: unless-stopped |  | ||||||
|     env_file:  |  | ||||||
|       - env/phpmyadmin.env |  | ||||||
| #    ports: |  | ||||||
| #      - 8080:80 |  | ||||||
|     depends_on: |  | ||||||
|       - wp_db |  | ||||||
|     networks: |  | ||||||
|       - app-network |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   wordpress: |  | ||||||
|     name: wordpress |  | ||||||
|   dbdata: |  | ||||||
|     name: dbdata |  | ||||||
| @@ -1,29 +0,0 @@ | |||||||
| server { |  | ||||||
|         listen 80; |  | ||||||
|         listen [::]:80; |  | ||||||
|  |  | ||||||
|         server_name jellyfin.bensuperpc.org www.jellyfin.bensuperpc.org; |  | ||||||
|  |  | ||||||
|         root /var/www/jellyfin; |  | ||||||
|  |  | ||||||
|         location ~ /.well-known/acme-challenge { |  | ||||||
|                 allow all; |  | ||||||
|                 root /var/www/jellyfin; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location / { |  | ||||||
|                 # Proxy main Jellyfin traffic |  | ||||||
|                 proxy_pass http://jellyfin:8096; |  | ||||||
|                 proxy_set_header Host $host; |  | ||||||
|                 proxy_set_header X-Real-IP $remote_addr; |  | ||||||
|                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |  | ||||||
|                 proxy_set_header X-Forwarded-Proto $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Protocol $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|  |  | ||||||
|                 # Disable buffering when the nginx proxy gets very resource heavy upon streaming |  | ||||||
|                 proxy_buffering off; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         resolver 8.8.8.8; |  | ||||||
| } |  | ||||||
| @@ -1,50 +0,0 @@ | |||||||
| server { |  | ||||||
|         listen 80; |  | ||||||
|         listen [::]:80; |  | ||||||
|  |  | ||||||
|         server_name bensuperpc.org www.bensuperpc.org; |  | ||||||
|  |  | ||||||
|         index index.php index.html index.htm; |  | ||||||
|  |  | ||||||
|         root /var/www/wordpress; |  | ||||||
|  |  | ||||||
|         location ~ /.well-known/acme-challenge { |  | ||||||
|                 allow all; |  | ||||||
|                 root /var/www/wordpress; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location / { |  | ||||||
|                 try_files $uri $uri/ /index.php$is_args$args; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location ~ \.php$ { |  | ||||||
|                 try_files $uri =404; |  | ||||||
|                 fastcgi_split_path_info ^(.+\.php)(/.+)$; |  | ||||||
|                 fastcgi_pass wordpress:9000; |  | ||||||
|                 fastcgi_index index.php; |  | ||||||
|                 include fastcgi_params; |  | ||||||
|  |  | ||||||
|                 # Necessary to avoid 404 error when changing the wordpress path |  | ||||||
|                 #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |  | ||||||
|                 fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; |  | ||||||
|  |  | ||||||
|                 fastcgi_param PATH_INFO $fastcgi_path_info; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location ~ /\.ht { |  | ||||||
|                 deny all; |  | ||||||
|         } |  | ||||||
|          |  | ||||||
|         location = /favicon.ico {  |  | ||||||
|                 log_not_found off; access_log off;  |  | ||||||
|         } |  | ||||||
|         location = /robots.txt {  |  | ||||||
|                 log_not_found off; access_log off; allow all;  |  | ||||||
|         } |  | ||||||
|         location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ { |  | ||||||
|                 expires max; |  | ||||||
|                 log_not_found off; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         resolver 8.8.8.8; |  | ||||||
| } |  | ||||||
| @@ -1,141 +0,0 @@ | |||||||
| proxy_cache_path /var/cache/nginx/jellyfin levels=1:2 keys_zone=jellyfin:100m max_size=3g inactive=30d use_temp_path=off; |  | ||||||
| proxy_cache_path /var/cache/nginx/jellyfin-videos levels=1:2 keys_zone=jellyfin-videos:100m inactive=90d max_size=3g; |  | ||||||
| map $request_uri $h264Level { ~(h264-level=)(.+?)& $2; } |  | ||||||
| map $request_uri $h264Profile { ~(h264-profile=)(.+?)& $2; } |  | ||||||
|  |  | ||||||
| upstream jellyfin_server { |  | ||||||
|         # ip_hash; |  | ||||||
|         server jellyfin:8096; |  | ||||||
|         # server jellyfin:8096 weight=1 max_fails=3 fail_timeout=30s; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # Redirect all http requests to the main server wordpress_server |  | ||||||
| server { |  | ||||||
|         listen 80; |  | ||||||
|         listen [::]:80; |  | ||||||
|  |  | ||||||
|         server_name jellyfin.bensuperpc.org www.jellyfin.bensuperpc.org; |  | ||||||
|  |  | ||||||
|         location ~ /.well-known/acme-challenge { |  | ||||||
|                 allow all; |  | ||||||
|                 root /var/www/jellyfin; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location / { |  | ||||||
|                 return 301 https://$host$request_uri; |  | ||||||
|         } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| server { |  | ||||||
|         listen 443 ssl http2; |  | ||||||
|         listen [::]:443 ssl http2; |  | ||||||
|         server_name jellyfin.bensuperpc.org www.jellyfin.bensuperpc.org; |  | ||||||
|  |  | ||||||
|         #client_max_body_size 20M; |  | ||||||
|         set $jellyfin jellyfin; |  | ||||||
|         resolver 8.8.8.8 valid=30; |  | ||||||
|  |  | ||||||
|         # All things related to SSL |  | ||||||
|         ssl_certificate /etc/letsencrypt/live/bensuperpc.org/fullchain.pem; |  | ||||||
|         ssl_certificate_key /etc/letsencrypt/live/bensuperpc.org/privkey.pem; |  | ||||||
|         ssl_trusted_certificate /etc/letsencrypt/live/bensuperpc.org/chain.pem; |  | ||||||
|         #ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; |  | ||||||
|         #add_header Strict-Transport-Security "max-age=31536000" always; |  | ||||||
|  |  | ||||||
|         include /etc/nginx/conf.d/sub/options-ssl-nginx.conf; |  | ||||||
|  |  | ||||||
|         # Security / XSS Mitigation Headers |  | ||||||
|         # NOTE: X-Frame-Options may cause issues with the webOS app |  | ||||||
|         add_header X-Frame-Options "SAMEORIGIN"; |  | ||||||
|         add_header X-XSS-Protection "1; mode=block"; |  | ||||||
|         add_header X-Content-Type-Options "nosniff"; |  | ||||||
|         #add_header Content-Security-Policy "default-src https: data: blob: http://image.tmdb.org; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com/cv/js/sender/v1/cast_sender.js https://www.gstatic.com/eureka/clank/95/cast_sender.js https://www.gstatic.com/eureka/clank/96/cast_sender.js https://www.gstatic.com/eureka/clank/97/cast_sender.js https://www.youtube.com blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'"; |  | ||||||
|  |  | ||||||
|         location = / { |  | ||||||
|                 return 302 http://$host/web/; |  | ||||||
|                 #return 302 https://$host/web/; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location / { |  | ||||||
|                 # Proxy main Jellyfin traffic |  | ||||||
|                 proxy_pass http://jellyfin_server; |  | ||||||
|                 proxy_set_header Host $host; |  | ||||||
|                 proxy_set_header X-Real-IP $remote_addr; |  | ||||||
|                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |  | ||||||
|                 proxy_set_header X-Forwarded-Proto $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Protocol $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|  |  | ||||||
|                 # Disable buffering when the nginx proxy gets very resource heavy upon streaming |  | ||||||
|                 proxy_buffering off; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location = /web/ { |  | ||||||
|                 # Proxy main Jellyfin traffic |  | ||||||
|                 proxy_pass http://jellyfin_server/web/index.html; |  | ||||||
|                 proxy_set_header Host $host; |  | ||||||
|                 proxy_set_header X-Real-IP $remote_addr; |  | ||||||
|                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |  | ||||||
|                 proxy_set_header X-Forwarded-Proto $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Protocol $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         location /socket { |  | ||||||
|                 # Proxy Jellyfin Websockets traffic |  | ||||||
|                 proxy_pass http://jellyfin_server; |  | ||||||
|                 proxy_http_version 1.1; |  | ||||||
|                 proxy_set_header Upgrade $http_upgrade; |  | ||||||
|                 proxy_set_header Connection "upgrade"; |  | ||||||
|                 proxy_set_header Host $host; |  | ||||||
|                 proxy_set_header X-Real-IP $remote_addr; |  | ||||||
|                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |  | ||||||
|                 proxy_set_header X-Forwarded-Proto $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Protocol $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         # Cache images |  | ||||||
|         location ~ /Items/(.*)/Images { |  | ||||||
|                 #proxy_pass http://127.0.0.1:8096; |  | ||||||
|                 proxy_pass http://jellyfin_server; |  | ||||||
|                 proxy_set_header Host $host; |  | ||||||
|                 proxy_set_header X-Real-IP $remote_addr; |  | ||||||
|                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |  | ||||||
|                 proxy_set_header X-Forwarded-Proto $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Protocol $scheme; |  | ||||||
|                 proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|  |  | ||||||
|                 proxy_cache jellyfin; |  | ||||||
|                 proxy_cache_revalidate on; |  | ||||||
|                 proxy_cache_lock on; |  | ||||||
|                 add_header X-Cache-Status $upstream_cache_status; # This is only to check if cache is working |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         # Cache videos |  | ||||||
|         location ~* ^/Videos/(.*)/(?!live) |  | ||||||
|         { |  | ||||||
|                 slice 2m; |  | ||||||
|  |  | ||||||
|                 proxy_cache jellyfin-videos; |  | ||||||
|                 proxy_cache_valid 200 206 301 302 30d; |  | ||||||
|                 proxy_ignore_headers Expires Cache-Control Set-Cookie X-Accel-Expires; |  | ||||||
|                 proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; |  | ||||||
|                 proxy_connect_timeout 15s; |  | ||||||
|                 proxy_http_version 1.1; |  | ||||||
|                 proxy_set_header Connection ""; |  | ||||||
|                 # Transmit slice range to the backend |  | ||||||
|                 proxy_set_header Range $slice_range; |  | ||||||
|  |  | ||||||
|                 proxy_cache_lock on; |  | ||||||
|                 proxy_cache_lock_age 60s; |  | ||||||
|  |  | ||||||
|                 #proxy_pass http://$jellyfin:8096; |  | ||||||
|                 proxy_pass http://jellyfin_server; |  | ||||||
|                 proxy_cache_key "jellyvideo$uri?MediaSourceId=$arg_MediaSourceId&VideoCodec=$arg_VideoCodec&AudioCodec=$arg_AudioCodec&AudioStreamIndex=$arg_AudioStreamIndex&VideoBitrate=$arg_VideoBitrate&AudioBitrate=$arg_AudioBitrate&SubtitleMethod=$arg_SubtitleMethod&TranscodingMaxAudioChannels=$arg_TranscodingMaxAudioChannels&RequireAvc=$arg_RequireAvc&SegmentContainer=$arg_SegmentContainer&MinSegments=$arg_MinSegments&BreakOnNonKeyFrames=$arg_BreakOnNonKeyFrames&h264-profile=$h264Profile&h264-level=$h264Level&slicerange=$slice_range"; |  | ||||||
|  |  | ||||||
|                 add_header X-Cache-Status $upstream_cache_status; # This is only for debugging cache |  | ||||||
|         } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # All configuration options are documented at https://jellyfin.org/docs/general/networking/nginx/ |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| #upstream minecraft { |  | ||||||
| #    server minecraft:25565; |  | ||||||
| #} |  | ||||||
| # |  | ||||||
| #server { |  | ||||||
| #    listen 25566; |  | ||||||
| #    server_name minecraft.bensuperpc.org www.minecraft.bensuperpc.org; |  | ||||||
| #    location / { |  | ||||||
| #        proxy_pass minecraft; |  | ||||||
| #    } |  | ||||||
| #} |  | ||||||
|  |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| #include /etc/nginx/conf.d/sub/cache-proxy.conf; |  | ||||||
|  |  | ||||||
| upstream phpmyadmin_server { |  | ||||||
|         # ip_hash; |  | ||||||
|         server phpmyadmin:80; |  | ||||||
|         # server phpmyadmin:80 weight=1 max_fails=3 fail_timeout=30s; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # PHPmyadmin |  | ||||||
| server { |  | ||||||
|         listen 80; |  | ||||||
|         listen [::]:80; |  | ||||||
|         #listen 443; |  | ||||||
|         #listen [::]:443; |  | ||||||
|  |  | ||||||
|         server_name phpmyadmin.bensuperpc.org www.phpmyadmin.bensuperpc.org; |  | ||||||
|  |  | ||||||
|         include /etc/nginx/conf.d/sub/gzip.conf; |  | ||||||
|  |  | ||||||
|         location / { |  | ||||||
|                 proxy_pass http://phpmyadmin_server; |  | ||||||
|                 proxy_redirect off; |  | ||||||
|                 proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|                 proxy_set_header X-Forwarded-For  $remote_addr; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         # resolver 8.8.8.8; |  | ||||||
| } |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| upstream qbittorrent_server { |  | ||||||
|         # ip_hash; |  | ||||||
|         server qbittorrent:8080; |  | ||||||
|         # server qbittorrent:8080 weight=1 max_fails=3 fail_timeout=30s; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # PHPmyadmin |  | ||||||
| server { |  | ||||||
|         listen 80; |  | ||||||
|         listen [::]:80; |  | ||||||
|         #listen 443; |  | ||||||
|         #listen [::]:443; |  | ||||||
|  |  | ||||||
|         server_name qbittorrent.bensuperpc.org www.qbittorrent.bensuperpc.org; |  | ||||||
|  |  | ||||||
|         include /etc/nginx/conf.d/sub/gzip.conf; |  | ||||||
|  |  | ||||||
|         location / { |  | ||||||
|                 proxy_pass http://qbittorrent_server; |  | ||||||
|                 proxy_redirect off; |  | ||||||
|                 proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|                 proxy_set_header X-Forwarded-For  $remote_addr; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         # resolver 8.8.8.8; |  | ||||||
| } |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| # The path to store the cache files, limit the folder to 100MB |  | ||||||
| fastcgi_cache_path /var/run/nginx-cache-fastcgi levels=1:2 keys_zone=WORDPRESS:100m inactive=120m max_size=1g use_temp_path=off; |  | ||||||
|  |  | ||||||
| # A unique request is defined by this cache key |  | ||||||
| fastcgi_cache_key "$scheme$request_method$host$request_uri"; |  | ||||||
|  |  | ||||||
| # Show the cached version if upstream gives a timeout or a HTTP 500 error |  | ||||||
| fastcgi_cache_use_stale error timeout invalid_header http_500; |  | ||||||
|  |  | ||||||
| # Revalidate items in the cache if they are update  |  | ||||||
| fastcgi_cache_revalidate on; |  | ||||||
|  |  | ||||||
| # Minimum time to store an item in the cache |  | ||||||
| fastcgi_cache_min_uses 3; |  | ||||||
|  |  | ||||||
| # Cache everything for 1 day |  | ||||||
| fastcgi_cache_valid 1d; |  | ||||||
|  |  | ||||||
| # Don't use the following headers to define the cache variables |  | ||||||
| fastcgi_ignore_headers Cache-Control Expires Set-Cookie; |  | ||||||
|  |  | ||||||
| # Some parts of this file are from |  | ||||||
| # https://gist.github.com/TrafeX/6d582b6d040702088722 |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| # The path to store the cache files, limit the folder to 100MB |  | ||||||
| proxy_cache_path /var/run/nginx-cache-proxy levels=1:2 keys_zone=PROXY:100m inactive=120m max_size=1g use_temp_path=off; |  | ||||||
|  |  | ||||||
| # A unique request is defined by this cache key |  | ||||||
| proxy_cache_key "$scheme$request_method$host$request_uri"; |  | ||||||
|  |  | ||||||
| # Show the cached version if upstream gives a timeout or a HTTP 500 error |  | ||||||
| proxy_cache_use_stale error timeout invalid_header http_500; |  | ||||||
|  |  | ||||||
| # Revalidate items in the cache if they are update  |  | ||||||
| proxy_cache_revalidate on; |  | ||||||
|  |  | ||||||
| # Minimum time to store an item in the cache |  | ||||||
| proxy_cache_min_uses 3; |  | ||||||
|  |  | ||||||
| # Cache everything for 1 day |  | ||||||
| proxy_cache_valid 1d; |  | ||||||
|  |  | ||||||
| # Don't use the following headers to define the cache variables |  | ||||||
| proxy_ignore_headers Cache-Control Expires Set-Cookie; |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| # The path to store the cache files, limit the folder to 100MB |  | ||||||
| uwsgi_cache_path /var/run/nginx-cache-uwsgi levels=1:2 keys_zone=UWSGI:100m inactive=120m max_size=1g use_temp_path=off; |  | ||||||
|  |  | ||||||
| # A unique request is defined by this cache key |  | ||||||
| uwsgi_cache_key "$scheme$request_method$host$request_uri"; |  | ||||||
|  |  | ||||||
| # Show the cached version if upstream gives a timeout or a HTTP 500 error |  | ||||||
| uwsgi_cache_use_stale error timeout invalid_header http_500; |  | ||||||
|  |  | ||||||
| # Revalidate items in the cache if they are update  |  | ||||||
| uwsgi_cache_revalidate on; |  | ||||||
|  |  | ||||||
| # Minimum time to store an item in the cache |  | ||||||
| uwsgi_cache_min_uses 3; |  | ||||||
|  |  | ||||||
| # Cache everything for 1 day |  | ||||||
| uwsgi_cache_valid 1d; |  | ||||||
|  |  | ||||||
| # Don't use the following headers to define the cache variables |  | ||||||
| uwsgi_ignore_headers Cache-Control Expires Set-Cookie; |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| # Compression config |  | ||||||
| gzip on; |  | ||||||
| gunzip on; |  | ||||||
|  |  | ||||||
| gzip_static on; |  | ||||||
| gzip_min_length 1000; |  | ||||||
| gzip_buffers 4 32k; |  | ||||||
| # gzip_http_version 1.1; |  | ||||||
| gzip_proxied any; |  | ||||||
| gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css; |  | ||||||
| gzip_vary on; |  | ||||||
| gzip_comp_level 6; |  | ||||||
| gzip_disable "MSIE [1-6]\.(?!.*SV1)"; |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| # generated 2022-11-23, Mozilla Guideline v5.6, nginx 1.23, OpenSSL 1.1.1k, modern configuration |  | ||||||
| # https://ssl-config.mozilla.org/#server=nginx&version=1.23&config=modern&openssl=1.1.1k&guideline=5.6 |  | ||||||
|  |  | ||||||
| ssl_session_cache shared:le_nginx_SSL:10m; |  | ||||||
| ssl_session_timeout 1440m; |  | ||||||
| ssl_session_tickets off; |  | ||||||
|  |  | ||||||
| ssl_protocols TLSv1.3; |  | ||||||
| ssl_prefer_server_ciphers off; |  | ||||||
|  |  | ||||||
| # OCSP stapling |  | ||||||
| ssl_stapling on; |  | ||||||
| ssl_stapling_verify on; |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user