mirror of
				https://github.com/bensuperpc/infrastructure.git
				synced 2025-10-27 07:16:20 +01:00 
			
		
		
		
	Compare commits
	
		
			70 Commits
		
	
	
		
			dns
			...
			31220657c8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | 
							
								
								
									
										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 | ||||||
							
								
								
									
										18
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							| @@ -26,7 +26,21 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           submodules: "recursive" |           submodules: "recursive" | ||||||
|           fetch-depth: 0 |           fetch-depth: 0 | ||||||
|       - name: "Update server" |       - name: "Update server image" | ||||||
|         run: make update |         run: make update-docker | ||||||
|       - name: "Build server" |       - name: "Build server" | ||||||
|         run: make build |         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 | ||||||
							
								
								
									
										37
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								Makefile
									
									
									
									
									
								
							| @@ -13,57 +13,66 @@ | |||||||
|  |  | ||||||
| DOCKER := docker | DOCKER := docker | ||||||
|  |  | ||||||
| PROFILES := caddy wordpress adminer uptime-kuma qbittorrent gitea jellyfin watchtower backup openssh dns-server syncthing | TORRENTS_SERVICES := qbittorrent transmission | ||||||
|  | SHARING_SERVICES := psitransfer picoshare privatebin projectsend jellyfin dufs | ||||||
|  | ADMIN_SERVICES := yacht uptime-kuma adminer | ||||||
|  | UTILS_SERVICES := it-tools stirlingpdf | ||||||
|  |  | ||||||
|  | PROFILES := caddy wordpress syncthing gitea homepage $(SHARING_SERVICES) $(TORRENTS_SERVICES) $(ADMIN_SERVICES) $(UTILS_SERVICES) | ||||||
| PROFILE_CMD := $(addprefix --profile ,$(PROFILES)) | PROFILE_CMD := $(addprefix --profile ,$(PROFILES)) | ||||||
|  |  | ||||||
| COMPOSE_FILES :=  $(shell find docker-compose*.yml | sed -e 's/^/--file /') | # gitea-runner | ||||||
|  |  | ||||||
|  | COMPOSE_FILES :=  $(shell find . -name 'docker-compose*.yml' -type f | sed -e 's/^/--file /') | ||||||
|  |  | ||||||
|  | COMPOSE_DIR := --project-directory ./infrastructure | ||||||
|  |  | ||||||
| .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 $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) build | ||||||
|  |  | ||||||
| .PHONY: start | .PHONY: start | ||||||
| start: | start: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) up -d | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) up -d | ||||||
|  |  | ||||||
| .PHONY: start-at | .PHONY: start-at | ||||||
| start-at: | start-at: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) up | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) up | ||||||
|  |  | ||||||
| .PHONY: docker-check | .PHONY: docker-check | ||||||
| docker-check: | docker-check: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) config | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) config | ||||||
|  |  | ||||||
| .PHONY: stop | .PHONY: stop | ||||||
| stop: down | stop: down | ||||||
|  |  | ||||||
| .PHONY: down | .PHONY: down | ||||||
| down: | down: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) down | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) down | ||||||
|  |  | ||||||
| .PHONY: restart | .PHONY: restart | ||||||
| restart: stop start | restart: stop start | ||||||
|  |  | ||||||
| .PHONY: logs | .PHONY: logs | ||||||
| logs: | logs: | ||||||
| 	docker compose $(COMPOSE_FILES) logs | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) logs | ||||||
|  |  | ||||||
| .PHONY: state | .PHONY: state | ||||||
| state: | state: | ||||||
| 	docker compose $(COMPOSE_FILES) ps | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) ps | ||||||
| 	docker compose $(COMPOSE_FILES) top | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) top | ||||||
|  |  | ||||||
| .PHONY: update-docker | .PHONY: update-docker | ||||||
| update-docker: | update-docker: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) pull | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) pull | ||||||
|  |  | ||||||
| .PHONY: update | .PHONY: update | ||||||
| update: update-docker | 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 | ||||||
|  |  | ||||||
| .PHONY: clean | .PHONY: clean | ||||||
| clean: | clean: | ||||||
| @@ -71,4 +80,4 @@ clean: | |||||||
|  |  | ||||||
| .PHONY: purge | .PHONY: purge | ||||||
| purge: | purge: | ||||||
| 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) down -v --rmi all | 	docker compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) down -v --rmi all | ||||||
							
								
								
									
										125
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										125
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,10 +1,9 @@ | |||||||
| # Infrastructure | # Infrastructure | ||||||
|  |  | ||||||
| _My personal infrastructure for my servers and services._ | _Open source, decentralized and self-hosted infrastructure for many services._ | ||||||
|  |  | ||||||
| ## 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 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. | ||||||
| @@ -19,7 +18,12 @@ If you have any **questions** or **suggestions**, feel free to open an issue or | |||||||
| - [x] Jellyfin (Media server) | - [x] Jellyfin (Media server) | ||||||
| - [x] Gitea (Git server) | - [x] Gitea (Git server) | ||||||
| - [x] Uptime Kuma (Monitoring) | - [x] Uptime Kuma (Monitoring) | ||||||
| - [x] Torrent server | - [x] qbittorrent and transmission (Torrent client/server) | ||||||
|  | - [x] SyncThing (File synchronization) | ||||||
|  | - [x] PsiTransfer (File sharing) | ||||||
|  | - [x] it-tools (Tools for IT) | ||||||
|  | - [x] Privatebin (Pastebin) | ||||||
|  | - [x] Yacht (Web interface for managing docker containers) | ||||||
|  |  | ||||||
| ## Screenshots | ## Screenshots | ||||||
|  |  | ||||||
| @@ -31,7 +35,7 @@ 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 SFR box with default IP) | - [Open port 80, 443, 22 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...*** | ***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...*** | ||||||
|  |  | ||||||
| @@ -63,15 +67,23 @@ And then, caddy will generate the certificate for you and renew it automatically | |||||||
|  |  | ||||||
| | Domain name | Type | Description | | | Domain name | Type | Description | | ||||||
| | --- | --- | --- | | | --- | --- | --- | | ||||||
| | [bensuperpc.org](https://bensuperpc.org) | Main | Main domain | | | [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 | | | [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 | | | [uptimekuma.bensuperpc.org](https://uptimekuma.bensuperpc.org) | Sub | Uptime Kuma for monitoring | | ||||||
| | [torrent.bensuperpc.org](https://torrent.bensuperpc.org) | Sub | Torrent server | | | [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 | | | [git.bensuperpc.org](https://git.bensuperpc.org) | Sub | Gitea for git | | ||||||
| | [link.bensuperpc.org](https://link.bensuperpc.org) | Sub | For link shortener | | | [link.bensuperpc.org](https://link.bensuperpc.org) | Sub | For link shortener | | ||||||
| | [jellyfin.bensuperpc.org](https://jellyfin.bensuperpc.org) | Sub | Jellyfin for media server | | | [jellyfin.bensuperpc.org](https://jellyfin.bensuperpc.org) | Sub | Jellyfin for media server | | ||||||
| | [syncthing.bensuperpc.org](https://syncthing.bensuperpc.org) | Sub | SyncThing for file synchronization | | | [syncthing.bensuperpc.org](https://syncthing.bensuperpc.org) | Sub | SyncThing for file synchronization | | ||||||
| | [ssh.bensuperpc.org](https://ssh.bensuperpc.org) | Sub | Openssh for ssh | | | [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 bensuperpc.org | | | bensuperpc.com | Main | Redirect to bensuperpc.org | | ||||||
| | bensuperpc.fr | Main | Redirect to bensuperpc.org | | | bensuperpc.fr | Main | Redirect to bensuperpc.org | | ||||||
| | bensuperpc.net | Main | Redirect to bensuperpc.org | | | bensuperpc.net | Main | Redirect to bensuperpc.org | | ||||||
| @@ -87,7 +99,7 @@ You can generate a password with 32 characters: | |||||||
| openssl rand -base64 32 | openssl rand -base64 32 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For the [wordpress.env](env/wordpress.env) file, you need to change the password and user for the database. | For the [wordpress.env](infrastructure/wordpress/env/wordpress.env) file, you need to change the password and user for the database. | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| WORDPRESS_DB_USER=bensuperpc | WORDPRESS_DB_USER=bensuperpc | ||||||
| @@ -96,7 +108,7 @@ WORDPRESS_DB_NAME=wordpress | |||||||
| WORDPRESS_DB_HOST=wordpress_db:3306 | WORDPRESS_DB_HOST=wordpress_db:3306 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [wordpress_db.env](env/wordpress_db.env) file, you need to change the password(s) and user for the database. | For [wordpress_db.env](infrastructure/wordpress/env/wordpress_db.env) file, you need to change the password(s) and user for the database. | ||||||
|      |      | ||||||
| ```sh | ```sh | ||||||
| MARIADB_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | MARIADB_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
| @@ -105,7 +117,12 @@ MARIADB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | |||||||
| MARIADB_DATABASE=wordpress | MARIADB_DATABASE=wordpress | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [adminer.env](env/adminer.env) file, you need to change the password(s) and user for the database. | 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 | ```sh | ||||||
| MYSQL_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | MYSQL_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
| @@ -114,7 +131,7 @@ MYSQL_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw | |||||||
| ADMINER_DEFAULT_SERVER=wordpress_db | ADMINER_DEFAULT_SERVER=wordpress_db | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [gitea.env](env/gitea.env) file, you need to change the password(s) and user for the database. | For [gitea.env](infrastructure/gitea/env/gitea.env) file, you need to change the password(s) and user for the database. | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| GITEA__database__DB_TYPE=mysql | GITEA__database__DB_TYPE=mysql | ||||||
| @@ -122,9 +139,10 @@ GITEA__database__HOST=database_gitea:3306 | |||||||
| GITEA__database__NAME=gitea | GITEA__database__NAME=gitea | ||||||
| GITEA__database__USER=bensuperpc | GITEA__database__USER=bensuperpc | ||||||
| GITEA__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j | GITEA__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j | ||||||
|  | GITEA__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [gitea_db.env](env/gitea_db.env) file, you need to change the password(s) and user for the database. | For [gitea_db.env](infrastructure/gitea/env/gitea_db.env) file, you need to change the password(s) and user for the database. | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| MYSQL_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X | MYSQL_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X | ||||||
| @@ -133,6 +151,52 @@ MYSQL_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j | |||||||
| MYSQL_DATABASE=gitea | MYSQL_DATABASE=gitea | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | 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 | ||||||
|  | MARIADB_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt | ||||||
|  | MARIADB_USER=bensuperpc | ||||||
|  | MARIADB_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY | ||||||
|  | MARIADB_DATABASE=projectsend | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | 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|@/" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 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 | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ### Start the infrastructure | ### Start the infrastructure | ||||||
|  |  | ||||||
| Start the website with: | Start the website with: | ||||||
| @@ -155,22 +219,32 @@ make down | |||||||
|  |  | ||||||
| ### All services | ### All services | ||||||
|  |  | ||||||
| You can find all services on the [docker-compose.yml](docker-compose.yml) file or on this table: | You can find all service on this table: | ||||||
|  |  | ||||||
| | Service | Description | URL | | | Service | Description | URL | | ||||||
| | --- | --- | --- | | | --- | --- | --- | | ||||||
| | Wordpress | Wordpress website | [bensuperpc.org](https://bensuperpc.org) and [www.bensuperpc.org](https://www.bensuperpc.org) | | | Homepage | Homepage | [www.bensuperpc.org](https://www.bensuperpc.org) | | ||||||
|  | | Wordpress | Wordpress website | [wordpress.bensuperpc.org](https://bensuperpc.org) | | ||||||
| | Adminer | Adminer for MariaDB | [adminer.bensuperpc.org](https://adminer.bensuperpc.org) | | | Adminer | Adminer for MariaDB | [adminer.bensuperpc.org](https://adminer.bensuperpc.org) | | ||||||
| | Uptime Kuma | Uptime Kuma for monitoring | [uptimekuma.bensuperpc.org](https://uptimekuma.bensuperpc.org) | | | Uptime Kuma | Uptime Kuma for monitoring | [uptimekuma.bensuperpc.org](https://uptimekuma.bensuperpc.org) | | ||||||
| | Torrent | Torrent server | [torrent.bensuperpc.org](https://torrent.bensuperpc.org) | | | qbittorrent | qbittorrent server | [qbittorrent.bensuperpc.org](https://qbittorrent.bensuperpc.org) | | ||||||
|  | | transmission | transmission server | [transmission.bensuperpc.org](https://transmission.bensuperpc.org) | | ||||||
| | Gitea | Gitea for git | [git.bensuperpc.org](https://git.bensuperpc.org) | | | Gitea | Gitea for git | [git.bensuperpc.org](https://git.bensuperpc.org) | | ||||||
| | Jellyfin | Jellyfin for media server | [jellyfin.bensuperpc.org](https://jellyfin.bensuperpc.org) | | | Jellyfin | Jellyfin for media server | [jellyfin.bensuperpc.org](https://jellyfin.bensuperpc.org) | | ||||||
| | SyncThing | SyncThing for file synchronization | [syncthing.bensuperpc.org](https://syncthing.bensuperpc.org) | | | SyncThing | SyncThing for file synchronization | [syncthing.bensuperpc.org](https://syncthing.bensuperpc.org) | | ||||||
| | Openssh | Openssh for ssh | [ssh.bensuperpc.org](https://ssh.bensuperpc.org) | | | PsiTransfer | PsiTransfer for file sharing | [psitransfer.bensuperpc.org](https://psitransfer.bensuperpc.org) | | ||||||
|  | | it-tools | Tools for IT | [it-tools.bensuperpc.org](https://it-tools.bensuperpc.org) | | ||||||
|  | | Privatebin | Pastebin | [privatebin.bensuperpc.org](https://privatebin.bensuperpc.org) | | ||||||
|  | | Yacht | Web interface for managing docker containers | [yacht.bensuperpc.org](https://yacht.bensuperpc.org) | | ||||||
|  | | ProjectSend | ProjectSend for file sharing | [projectsend.bensuperpc.org](https://projectsend.bensuperpc.org) | | ||||||
|  | | Picoshare | Picoshare for file sharing | [picoshare.bensuperpc.org](https://picoshare.bensuperpc.org) | | ||||||
|  | | Dufs | Dufs for file sharing | [dufs.bensuperpc.org](https://dufs.bensuperpc.org) | | ||||||
|  |  | ||||||
| You can disable some services by removing the service name in PROFILES variable in the [Makefile](Makefile) file. | 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 | ||||||
|  |  | ||||||
|  | ## 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/) | ||||||
| @@ -181,8 +255,25 @@ You can disable some services by removing the service name in PROFILES variable | |||||||
| - [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) | ||||||
|  | - [Imagisphe](https://imagisphe.re/) | ||||||
| - [Letsencrypt](https://letsencrypt.org/) | - [Letsencrypt](https://letsencrypt.org/) | ||||||
| - [Caddy](https://caddyserver.com/) | - [Caddy](https://caddyserver.com/) | ||||||
|  | - [Adminer](https://www.adminer.org/) | ||||||
|  | - [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) | ||||||
|  |  | ||||||
| ## License | ## License | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,15 +0,0 @@ | |||||||
| { |  | ||||||
| 	email bensuperpc@gmail.com |  | ||||||
| 	key_type p384 |  | ||||||
|  |  | ||||||
| 	log { |  | ||||||
| 		output file /data/logs/access.log |  | ||||||
| 		format console |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| import bensuperpc.org/Caddyfile |  | ||||||
| import bensuperpc.com/Caddyfile |  | ||||||
| import bensuperpc.net/Caddyfile |  | ||||||
| import bensuperpc.ovh/Caddyfile |  | ||||||
| import bensuperpc.fr/Caddyfile |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| bensuperpc.net { |  | ||||||
| 	redir https://www.bensuperpc.org{uri} permanent |  | ||||||
| } |  | ||||||
|  |  | ||||||
| www.bensuperpc.net { |  | ||||||
| 	redir https://www.bensuperpc.org{uri} permanent |  | ||||||
| } |  | ||||||
| @@ -1,35 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   # Backup |  | ||||||
|   backup: |  | ||||||
|     image: offen/docker-volume-backup:latest |  | ||||||
|     container_name: backup |  | ||||||
|     profiles: |  | ||||||
|       - backup |  | ||||||
|     restart: on-failure |  | ||||||
|     env_file: |  | ||||||
|       - env/backup.env |  | ||||||
|     volumes: |  | ||||||
|       - /var/run/docker.sock:/var/run/docker.sock:ro |  | ||||||
|       - backup:/archive |  | ||||||
|       - caddy_data:/backup/caddy_data:ro |  | ||||||
|       - caddy_config:/backup/caddy_config:ro |  | ||||||
| #      - gitea_data:/backup/gitea_data:ro |  | ||||||
| #      - gitea_config:/backup/gitea_config:ro |  | ||||||
| #      - wordpress_db:/backup/wordpress_db:ro |  | ||||||
| #      - wordpress:/backup/wordpress:ro |  | ||||||
| #      - jellyfin_config:/backup/jellyfin_config:ro |  | ||||||
| #      - jellyfin_data:/backup/jellyfin_data:ro |  | ||||||
| #      - jellyfin_cache:/backup/jellyfin_cache:ro |  | ||||||
| #      - qbittorrent_config:/backup/qbittorrent_config:ro |  | ||||||
| #      - qbittorrent_data:/backup/qbittorrent_data:ro |  | ||||||
| #      - uptimekuma_data:/backup/uptimekuma_data:ro |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   backup: |  | ||||||
|     name: backup |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   # Caddy |  | ||||||
|   caddy: |  | ||||||
|     image: caddy:latest |  | ||||||
|     container_name: caddy |  | ||||||
|     profiles: |  | ||||||
|       - caddy |  | ||||||
|     restart: on-failure |  | ||||||
|     ports: |  | ||||||
|       - 80:80 |  | ||||||
|       - 443:443 |  | ||||||
|     volumes: |  | ||||||
|       - wordpress:/var/www/html:rw |  | ||||||
|       - caddy_data:/data:rw |  | ||||||
|       - caddy_config:/config:rw |  | ||||||
|       - ./caddy:/etc/caddy:ro |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     env_file: |  | ||||||
|       - env/caddy.env |  | ||||||
|     cap_add: |  | ||||||
|       - NET_ADMIN |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     #    cap_drop: |  | ||||||
|     #      - ALL |  | ||||||
|     #    cap_add: |  | ||||||
|     #      - CHOWN |  | ||||||
|     #      - FOWNER |  | ||||||
|     #      - DAC_OVERRIDE |  | ||||||
|     #      - SETGID |  | ||||||
|     #      - SETUID |  | ||||||
|     #      - NET_BIND_SERVICE |  | ||||||
|     healthcheck: |  | ||||||
|       test: pidof caddy || exit 1 |  | ||||||
|       interval: 120s |  | ||||||
|       timeout: 10s |  | ||||||
|       retries: 3 |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   caddy_data: |  | ||||||
|     name: caddy_data |  | ||||||
|   caddy_config: |  | ||||||
|     name: caddy_config |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   dns-server: |  | ||||||
|     container_name: dns-server |  | ||||||
|     hostname: dns-server |  | ||||||
|     profiles: |  | ||||||
|       - dns-server |  | ||||||
|     image: technitium/dns-server:latest |  | ||||||
|     restart: on-failure |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     volumes: |  | ||||||
|       - dns-config:/etc/dns |  | ||||||
|     env_file: |  | ||||||
|       - env/technitium.env |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   dns-config: |  | ||||||
|     name: dns-config |  | ||||||
|  |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   # Jellyfin |  | ||||||
|   jellyfin: |  | ||||||
|     image: jellyfin/jellyfin:latest |  | ||||||
|     container_name: jellyfin |  | ||||||
|     profiles: |  | ||||||
|       - jellyfin |  | ||||||
|     restart: on-failure |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     volumes: |  | ||||||
|       - jellyfin_config:/config |  | ||||||
|       - jellyfin_data:/movies:ro |  | ||||||
|       - jellyfin_cache:/cache |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   jellyfin_config: |  | ||||||
|     name: jellyfin_config |  | ||||||
|   jellyfin_data: |  | ||||||
|     name: jellyfin_data |  | ||||||
|   jellyfin_cache: |  | ||||||
|     name: jellyfin_cache |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| networks: |  | ||||||
|   infra-network: |  | ||||||
|     driver: bridge |  | ||||||
|     name: infra-network |  | ||||||
| @@ -1,25 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   # Openssh |  | ||||||
|   openssh: |  | ||||||
|     image: linuxserver/openssh-server:latest |  | ||||||
|     container_name: openssh |  | ||||||
|     profiles: |  | ||||||
|       - openssh |  | ||||||
|     restart: on-failure |  | ||||||
|     env_file: |  | ||||||
|       - env/openssh.env |  | ||||||
|     volumes: |  | ||||||
|       - openssh_config:/config |  | ||||||
|       - openssh_data:/data |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   openssh_config: |  | ||||||
|     name: openssh_config |  | ||||||
|   openssh_data: |  | ||||||
|     name: openssh_data |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   uptimekuma_data: |  | ||||||
|     name: uptimekuma_data |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| version: '3.9' |  | ||||||
|  |  | ||||||
| services: |  | ||||||
|   # Watchtower |  | ||||||
|   watchtower: |  | ||||||
|     image: containrrr/watchtower |  | ||||||
|     container_name: watchtower |  | ||||||
|     profiles: |  | ||||||
|       - watchtower |  | ||||||
|     restart: on-failure |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     volumes: |  | ||||||
|       - /var/run/docker.sock:/var/run/docker.sock:rw |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
							
								
								
									
										4
									
								
								env/backup.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								env/backup.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | |||||||
| BACKUP_COMPRESSION="zst" |  | ||||||
| BACKUP_CRON_EXPRESSION="0 2 * * *" |  | ||||||
| # BACKUP_RETENTION_DAYS: '7' |  | ||||||
| # BACKUP_FILENAME="backup-%Y-%m-%dT%H-%M-%S.{{ .Extension }}" |  | ||||||
							
								
								
									
										7
									
								
								env/gitea.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								env/gitea.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +0,0 @@ | |||||||
| 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 |  | ||||||
							
								
								
									
										11
									
								
								env/openssh.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								env/openssh.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,11 +0,0 @@ | |||||||
| PUID=1000 |  | ||||||
| PGID=1000 |  | ||||||
| PUBLIC_KEY= |  | ||||||
| # PUBLIC_KEY_FILE= |  | ||||||
| # PUBLIC_KEY_DIR= |  | ||||||
| # PUBLIC_KEY_URL= |  | ||||||
| SUDO_ACCESS=false |  | ||||||
| PASSWORD_ACCESS=false |  | ||||||
| # USER_PASSWORD= |  | ||||||
| # USER_PASSWORD_FILE= |  | ||||||
| # USER_NAME= |  | ||||||
							
								
								
									
										18
									
								
								env/technitium.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								env/technitium.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +0,0 @@ | |||||||
| DNS_SERVER_DOMAIN=dns-server |  | ||||||
| DNS_SERVER_ADMIN_PASSWORD=fddsdfF548TjSNbi490fzZspmLSDf |  | ||||||
| # DNS_SERVER_ADMIN_PASSWORD_FILE=password.txt |  | ||||||
| # DNS_SERVER_PREFER_IPV6=false |  | ||||||
| # DNS_SERVER_WEB_SERVICE_HTTP_PORT=5380 |  | ||||||
| # DNS_SERVER_WEB_SERVICE_HTTPS_PORT=53443 |  | ||||||
| # DNS_SERVER_WEB_SERVICE_ENABLE_HTTPS=true |  | ||||||
| # DNS_SERVER_WEB_SERVICE_USE_SELF_SIGNED_CERT=false |  | ||||||
| # DNS_SERVER_OPTIONAL_PROTOCOL_DNS_OVER_HTTP=true |  | ||||||
| # DNS_SERVER_RECURSION=AllowOnlyForPrivateNetworks |  | ||||||
| # DNS_SERVER_RECURSION_DENIED_NETWORKS=1.1.1.0/24 |  | ||||||
| # DNS_SERVER_RECURSION_ALLOWED_NETWORKS=127.0.0.1, 192.168.1.0/24 |  | ||||||
| # DNS_SERVER_ENABLE_BLOCKING=false |  | ||||||
| # DNS_SERVER_ALLOW_TXT_BLOCKING_REPORT=false |  | ||||||
| # DNS_SERVER_BLOCK_LIST_URLS= |  | ||||||
| # DNS_SERVER_FORWARDERS=1.1.1.1, 8.8.8.8 |  | ||||||
| # DNS_SERVER_FORWARDER_PROTOCOL=Tcp |  | ||||||
| # DNS_SERVER_LOG_USING_LOCAL_TIME=true |  | ||||||
							
								
								
									
										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/* | ||||||
							
								
								
									
										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 | ||||||
|  | } | ||||||
| @@ -1,12 +1,22 @@ | |||||||
| www.bensuperpc.org { | www.bensuperpc.org { | ||||||
|  | 	reverse_proxy homepage:3000 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bensuperpc.org { | ||||||
|  | 	redir https://www.bensuperpc.org permanent | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | homepage.bensuperpc.org { | ||||||
|  | 	redir https://www.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | wordpress.bensuperpc.org { | ||||||
| 	root * /var/www/html | 	root * /var/www/html | ||||||
| 	php_fastcgi wordpress:9000 | 	php_fastcgi wordpress:9000 | ||||||
| 
 | 
 | ||||||
| 	file_server | 	file_server | ||||||
| 	encode zstd gzip | 	encode zstd gzip | ||||||
| 
 | 
 | ||||||
| 	# metrics /metrics |  | ||||||
| 
 |  | ||||||
| 	@disallowed { | 	@disallowed { | ||||||
| 		path /xmlrpc.php | 		path /xmlrpc.php | ||||||
| 		path *.sql | 		path *.sql | ||||||
| @@ -28,15 +38,21 @@ www.bensuperpc.org { | |||||||
| 		X-Content-Type-Options nosniff | 		X-Content-Type-Options nosniff | ||||||
| 
 | 
 | ||||||
| 		# clickjacking protection | 		# clickjacking protection | ||||||
| 		X-Frame-Options DENY | 		# X-Frame-Options DENY | ||||||
| 
 | 
 | ||||||
| 		# Disable powerful features we don't need | 		# Disable powerful features we don't need | ||||||
|         Permissions-Policy "geolocation=(), camera=(), microphone=() interest-cohort=()" |         Permissions-Policy "geolocation=(), camera=(), microphone=() interest-cohort=()" | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bensuperpc.org { | it-tools.bensuperpc.org { | ||||||
| 	redir https://www.bensuperpc.org{uri} permanent | 	# 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 { | adminer.bensuperpc.org { | ||||||
| @@ -51,6 +67,18 @@ torrent.bensuperpc.org { | |||||||
| 	reverse_proxy qbittorrent:8080 | 	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 { | git.bensuperpc.org { | ||||||
| 	reverse_proxy gitea:3000 | 	reverse_proxy gitea:3000 | ||||||
| } | } | ||||||
| @@ -59,8 +87,16 @@ jellyfin.bensuperpc.org { | |||||||
| 	reverse_proxy jellyfin:8096 | 	reverse_proxy jellyfin:8096 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ssh.bensuperpc.org { | transfer.bensuperpc.org { | ||||||
| 	reverse_proxy openssh:2222 | 	reverse_proxy psitransfer:3000 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | psitransfer.bensuperpc.org { | ||||||
|  | 	redir https://transfer.bensuperpc.org{uri} permanent | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | picoshare.bensuperpc.org { | ||||||
|  | 	reverse_proxy picoshare:4001 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| syncthing.bensuperpc.org { | syncthing.bensuperpc.org { | ||||||
| @@ -69,8 +105,32 @@ syncthing.bensuperpc.org { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| dns.bensuperpc.org { | tools.bensuperpc.org { | ||||||
| 	reverse_proxy dns-server:5380 | 	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 { | link.bensuperpc.org { | ||||||
| @@ -93,9 +153,13 @@ link.bensuperpc.org { | |||||||
| 	redir /scpfb https://youtu.be/9zrKk-1E8zM?si=8R_ZBVG3GzMUYOe8&t=36 permanent | 	redir /scpfb https://youtu.be/9zrKk-1E8zM?si=8R_ZBVG3GzMUYOe8&t=36 permanent | ||||||
| 	redir /mother https://youtu.be/w3NyycHR3fE?si=rNNSW9zYv0bcO2Eu permanent | 	redir /mother https://youtu.be/w3NyycHR3fE?si=rNNSW9zYv0bcO2Eu permanent | ||||||
| 	redir /cpu https://www.youtube.com/watch?v=y39D4529FM4 permanent | 	redir /cpu https://www.youtube.com/watch?v=y39D4529FM4 permanent | ||||||
| 	redir /chanteur https://youtu.be/HXdP15Ubu6M?si=N0qvhqo--3pmSGmb 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 /bna https://youtu.be/3T3ofoKfEoY?si=_7HkGQXMC7rBng8O permanent | ||||||
| 	redir /jojo https://youtu.be/U0TXIXTzJEY?si=2acWJWX06ju2w4uj permanent | 	redir /jojo https://youtu.be/U0TXIXTzJEY?si=2acWJWX06ju2w4uj permanent | ||||||
| 	redir /patapon https://youtu.be/H6CbNHLHkmk?si=ZvU8SzrOK-oCUXT5 permanent | 	redir /patapon https://youtu.be/H6CbNHLHkmk?si=ZvU8SzrOK-oCUXT5 permanent | ||||||
| 	redir /darkwater https://youtu.be/Tr8ZgF4Dc0E?si=CEOmm2J6Jp5rdbbt 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 | ||||||
| } | } | ||||||
							
								
								
									
										62
									
								
								infrastructure/caddy/docker-compose.caddy.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								infrastructure/caddy/docker-compose.caddy.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  | services: | ||||||
|  |   # Caddy | ||||||
|  |   caddy: | ||||||
|  |     image: caddy:latest | ||||||
|  |     container_name: caddy | ||||||
|  |     profiles: | ||||||
|  |       - caddy | ||||||
|  |     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 | ||||||
|  |  | ||||||
|  | networks: | ||||||
|  |   infra-network: | ||||||
|  |     driver: bridge | ||||||
|  |     name: infra-network | ||||||
							
								
								
									
										9
									
								
								infrastructure/caddy/env/caddy_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								infrastructure/caddy/env/caddy_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | #RUN_ON_STARTUP=true | ||||||
|  | BACKUP_CRON=*/30 * * * * | ||||||
|  | RESTIC_REPOSITORY=/mnt/restic | ||||||
|  | RESTIC_BACKUP_SOURCES=/data | ||||||
|  | RESTIC_PASSWORD=YFQh8v3Wi95v0p6h88D4u8C8z4gLfdMw | ||||||
|  | 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 | ||||||
|  | #RESTIC_PRUNE_ARGS= | ||||||
|  | RESTIC_CHECK_ARGS=--read-data-subset=20% | ||||||
							
								
								
									
										31
									
								
								infrastructure/dufs/docker-compose.dufs.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								infrastructure/dufs/docker-compose.dufs.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | services: | ||||||
|  |   # dufs | ||||||
|  |   dufs: | ||||||
|  |     image: sigoden/dufs:latest | ||||||
|  |     container_name: dufs | ||||||
|  |     profiles: | ||||||
|  |       - dufs | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./dufs/env/dufs.env | ||||||
|  |     volumes: | ||||||
|  |       - dufs_data:/data | ||||||
|  |       - qbittorrent_data:/data/torrent1:ro | ||||||
|  |       - transmission_data:/data/torrent2:ro | ||||||
|  |       - jellyfin_data_public:/data/jellyfin:ro | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   dufs_data: | ||||||
|  |     name: dufs_data | ||||||
|  |   transmission_data: | ||||||
|  |     name: transmission_data | ||||||
|  |   qbittorrent_data: | ||||||
|  |     name: qbittorrent_data | ||||||
|  |   jellyfin_data_public: | ||||||
|  |     name: jellyfin_data_public | ||||||
							
								
								
									
										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|@/" | ||||||
							
								
								
									
										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: | ||||||
| @@ -1,5 +1,3 @@ | |||||||
| version: '3.9' |  | ||||||
| 
 |  | ||||||
| services: | services: | ||||||
|   # Gitea |   # Gitea | ||||||
|   gitea: |   gitea: | ||||||
| @@ -7,11 +5,14 @@ services: | |||||||
|     container_name: gitea |     container_name: gitea | ||||||
|     profiles: |     profiles: | ||||||
|       - gitea |       - gitea | ||||||
|     restart: on-failure |     restart: on-failure:5 | ||||||
|     depends_on: |     depends_on: | ||||||
|  |       - database_gitea | ||||||
|       - caddy |       - caddy | ||||||
|  |     ports: | ||||||
|  |       - "22:22" | ||||||
|     env_file: |     env_file: | ||||||
|       - env/gitea.env |       - ./gitea/env/gitea.env | ||||||
|     volumes: |     volumes: | ||||||
|       - gitea_data:/var/lib/gitea |       - gitea_data:/var/lib/gitea | ||||||
|       - gitea_config:/etc/gitea |       - gitea_config:/etc/gitea | ||||||
| @@ -29,19 +30,37 @@ services: | |||||||
|     profiles: |     profiles: | ||||||
|       - database |       - database | ||||||
|       - gitea |       - gitea | ||||||
|     depends_on: |     restart: on-failure:5 | ||||||
|       - gitea |  | ||||||
|     restart: on-failure |  | ||||||
|     volumes: |     volumes: | ||||||
|       - gitea_db:/var/lib/mysql:rw |       - gitea_db:/var/lib/mysql:rw | ||||||
|     env_file: |     env_file: | ||||||
|       - env/gitea_db.env |       - ./gitea/env/gitea_db.env | ||||||
|     command: '--default-authentication-plugin=mysql_native_password' |     command: '--default-authentication-plugin=mysql_native_password' | ||||||
|     networks: |     networks: | ||||||
|       - infra-network |       - infra-network | ||||||
|     security_opt: |     security_opt: | ||||||
|       - no-new-privileges:true |       - 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: | volumes: | ||||||
|   gitea_data: |   gitea_data: | ||||||
|     name: gitea_data |     name: gitea_data | ||||||
| @@ -49,3 +68,5 @@ volumes: | |||||||
|     name: gitea_config |     name: gitea_config | ||||||
|   gitea_db: |   gitea_db: | ||||||
|     name: 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 | ||||||
							
								
								
									
										47
									
								
								infrastructure/homepage/config/bookmarks.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								infrastructure/homepage/config/bookmarks.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | --- | ||||||
|  | # 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 | ||||||
|  |  | ||||||
|  | - 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 | ||||||
|  |     - 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 | ||||||
|  | - Sharing: | ||||||
|  |     - 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 | ||||||
|  |     - 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 | ||||||
|  |     - 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 | ||||||
|  |     - 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 | ||||||
|  |  | ||||||
|  | - 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 | ||||||
|  | - Others: | ||||||
|  |     - gitea-runner: | ||||||
|  |         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/gitea.png | ||||||
|  | #        href: https://gitea.bensuperpc.org/ | ||||||
|  |         description: Gitea Runner | ||||||
|  |         ping: gitea.bensuperpc.org | ||||||
|  |         container: gitea-runner | ||||||
|  |  | ||||||
							
								
								
									
										60
									
								
								infrastructure/homepage/config/settings.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								infrastructure/homepage/config/settings.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  | --- | ||||||
|  | # For configuration options and examples, please see: | ||||||
|  | # https://gethomepage.dev/latest/configs/settings | ||||||
|  |  | ||||||
|  | title: Bensuperpc | ||||||
|  |  | ||||||
|  | base: https://www.bensuperpc.org | ||||||
|  |  | ||||||
|  | favicon: /images/favicon.ico | ||||||
|  |  | ||||||
|  | logpath: /app/logs | ||||||
|  |  | ||||||
|  | background:  | ||||||
|  |   image: /images/electronic.jpg | ||||||
|  |   blur: md | ||||||
|  |   opacity: 50 | ||||||
|  |   brightness: 50 | ||||||
|  |  | ||||||
|  | theme: dark | ||||||
|  | color: slate | ||||||
|  |  | ||||||
|  | language: en | ||||||
|  |  | ||||||
|  | layout: | ||||||
|  |   Personal: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |   Media: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |   Sharing: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |   Utils: | ||||||
|  |     style: row | ||||||
|  |     columns: 6 | ||||||
|  |     initiallyCollapsed: false | ||||||
|  |   Others: | ||||||
|  |     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 | ||||||
							
								
								
									
										19
									
								
								infrastructure/homepage/config/widgets.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								infrastructure/homepage/config/widgets.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | --- | ||||||
|  | # For configuration options and examples, please see: | ||||||
|  | # https://gethomepage.dev/latest/configs/service-widgets | ||||||
|  |  | ||||||
|  | - resources: | ||||||
|  |     cpu: true | ||||||
|  |     memory: true | ||||||
|  |     disk: / | ||||||
|  |  | ||||||
|  | - search: | ||||||
|  |     provider: duckduckgo | ||||||
|  |     target: _blank | ||||||
|  |  | ||||||
|  | - datetime: | ||||||
|  |     text_size: xl | ||||||
|  |     locale: fr | ||||||
|  |     format: | ||||||
|  |         timeStyle: long | ||||||
|  |         dateStyle: long | ||||||
							
								
								
									
										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/images: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/electronic.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								infrastructure/homepage/image/electronic.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 569 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 | ||||||
							
								
								
									
										43
									
								
								infrastructure/jellyfin/docker-compose.jellyfin.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								infrastructure/jellyfin/docker-compose.jellyfin.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | services: | ||||||
|  |   # Jellyfin | ||||||
|  |   jellyfin: | ||||||
|  |     image: jellyfin/jellyfin:latest | ||||||
|  |     container_name: jellyfin | ||||||
|  |     profiles: | ||||||
|  |       - jellyfin | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     env_file: | ||||||
|  |       - ./jellyfin/env/jellyfin.env | ||||||
|  |     volumes: | ||||||
|  |       - jellyfin_config:/config | ||||||
|  |       - jellyfin_data_movies:/movies:rw | ||||||
|  |       - jellyfin_data_series:/series:rw | ||||||
|  |       - jellyfin_data_documentaries:/documentaries:rw | ||||||
|  |       - jellyfin_data_musics:/musics:rw | ||||||
|  |       - jellyfin_data_public:/public:rw | ||||||
|  |       - jellyfin_cache:/cache | ||||||
|  |     # 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_data_movies: | ||||||
|  |     name: jellyfin_data_movies | ||||||
|  |   jellyfin_data_series: | ||||||
|  |     name: jellyfin_data_series | ||||||
|  |   jellyfin_data_documentaries: | ||||||
|  |     name: jellyfin_data_documentaries | ||||||
|  |   jellyfin_data_musics: | ||||||
|  |     name: jellyfin_data_musics | ||||||
|  |   jellyfin_data_public: | ||||||
|  |     name: jellyfin_data_public | ||||||
|  |   jellyfin_cache: | ||||||
|  |     name: jellyfin_cache | ||||||
							
								
								
									
										0
									
								
								infrastructure/jellyfin/env/jellyfin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								infrastructure/jellyfin/env/jellyfin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										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 | ||||||
							
								
								
									
										47
									
								
								infrastructure/projectsend/docker-compose.projectsend.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								infrastructure/projectsend/docker-compose.projectsend.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | 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: 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 | ||||||
|  |     command: '--default-authentication-plugin=mysql_native_password' | ||||||
|  |     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 @@ | |||||||
|  | MARIADB_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt | ||||||
|  | MARIADB_USER=bensuperpc | ||||||
|  | MARIADB_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY | ||||||
|  | MARIADB_DATABASE=projectsend | ||||||
							
								
								
									
										31
									
								
								infrastructure/psitransfer/docker-compose.psitransfer.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								infrastructure/psitransfer/docker-compose.psitransfer.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | services: | ||||||
|  |   # psitransfer | ||||||
|  |   psitransfer: | ||||||
|  |     image: psitrax/psitransfer:latest | ||||||
|  |     container_name: psitransfer | ||||||
|  |     profiles: | ||||||
|  |       - psitransfer | ||||||
|  |     restart: on-failure:5 | ||||||
|  |     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 | ||||||
| @@ -1,5 +1,3 @@ | |||||||
| version: '3.9' |  | ||||||
| 
 |  | ||||||
| services: | services: | ||||||
|   # qBittorrent |   # qBittorrent | ||||||
|   qbittorrent: |   qbittorrent: | ||||||
| @@ -7,11 +5,11 @@ services: | |||||||
|     container_name: qbittorrent |     container_name: qbittorrent | ||||||
|     profiles: |     profiles: | ||||||
|       - qbittorrent |       - qbittorrent | ||||||
|     restart: on-failure |     restart: on-failure:5 | ||||||
|     depends_on: |     depends_on: | ||||||
|       - caddy |       - caddy | ||||||
|     env_file: |     env_file: | ||||||
|       - env/qbittorrent.env |       - ./qbittorrent/env/qbittorrent.env | ||||||
|     volumes: |     volumes: | ||||||
|       - qbittorrent_config:/config |       - qbittorrent_config:/config | ||||||
|       - qbittorrent_data:/downloads |       - qbittorrent_data:/downloads | ||||||
							
								
								
									
										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 | ||||||
| @@ -1,5 +1,3 @@ | |||||||
| version: '3.9' |  | ||||||
| 
 |  | ||||||
| services: | services: | ||||||
|   # syncthing |   # syncthing | ||||||
|   syncthing: |   syncthing: | ||||||
| @@ -7,9 +5,11 @@ services: | |||||||
|     container_name: syncthing |     container_name: syncthing | ||||||
|     profiles: |     profiles: | ||||||
|       - syncthing |       - syncthing | ||||||
|     restart: on-failure |     depends_on: | ||||||
|  |       - caddy | ||||||
|  |     restart: on-failure:5 | ||||||
|     env_file: |     env_file: | ||||||
|       - env/syncthing.env |       - ./syncthing/env/syncthing.env | ||||||
|     volumes: |     volumes: | ||||||
|       - syncthing_config:/config |       - syncthing_config:/config | ||||||
|       - syncthing_data:/data1 |       - syncthing_data:/data1 | ||||||
							
								
								
									
										28
									
								
								infrastructure/transmission/docker-compose.transmission.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								infrastructure/transmission/docker-compose.transmission.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | 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 | ||||||
|  |     volumes: | ||||||
|  |       - transmission_config:/config | ||||||
|  |       - transmission_data:/downloads | ||||||
|  |       - transmission_watch:/watch | ||||||
|  |     networks: | ||||||
|  |       - infra-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   transmission_config: | ||||||
|  |     name: transmission_config | ||||||
|  |   transmission_data: | ||||||
|  |     name: transmission_data | ||||||
|  |   transmission_watch: | ||||||
|  |     name: transmission_watch | ||||||
							
								
								
									
										5
									
								
								infrastructure/transmission/env/transmission.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								infrastructure/transmission/env/transmission.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | PUID=1000 | ||||||
|  | PGID=1000 | ||||||
|  | TZ=Etc/UTC | ||||||
|  | USER=admin | ||||||
|  | PASS=4vqXCNGG09JUBe7rXkuQS8MG7ovE6Vxj | ||||||
| @@ -1,5 +1,3 @@ | |||||||
| version: '3.9' |  | ||||||
| 
 |  | ||||||
| services: | services: | ||||||
|   # Uptime Kuma |   # Uptime Kuma | ||||||
|   uptime-kuma: |   uptime-kuma: | ||||||
| @@ -9,8 +7,14 @@ services: | |||||||
|       - uptime-kuma |       - uptime-kuma | ||||||
|     volumes: |     volumes: | ||||||
|       - uptimekuma_data:/app/data |       - uptimekuma_data:/app/data | ||||||
|     restart: on-failure |     restart: on-failure:5 | ||||||
|  |     depends_on: | ||||||
|  |       - caddy | ||||||
|     networks: |     networks: | ||||||
|       - infra-network |       - infra-network | ||||||
|     security_opt: |     security_opt: | ||||||
|       - no-new-privileges:true |       - no-new-privileges:true | ||||||
|  | 
 | ||||||
|  | volumes: | ||||||
|  |   uptimekuma_data: | ||||||
|  |     name: uptimekuma_data | ||||||
| @@ -1,5 +1,3 @@ | |||||||
| version: '3.9' |  | ||||||
| 
 |  | ||||||
| services: | services: | ||||||
|   # Adminer |   # Adminer | ||||||
|   adminer: |   adminer: | ||||||
| @@ -7,9 +5,9 @@ services: | |||||||
|     container_name: adminer |     container_name: adminer | ||||||
|     profiles: |     profiles: | ||||||
|       - adminer |       - adminer | ||||||
|     restart: on-failure |     restart: on-failure:5 | ||||||
|     env_file:  |     env_file:  | ||||||
|       - env/adminer.env |       - ./wordpress/env/adminer.env | ||||||
|     depends_on: |     depends_on: | ||||||
|       - wordpress_db |       - wordpress_db | ||||||
|       - caddy |       - caddy | ||||||
| @@ -1,5 +1,3 @@ | |||||||
| version: '3.9' |  | ||||||
| 
 |  | ||||||
| services: | services: | ||||||
|   # Wordpress |   # Wordpress | ||||||
|   wordpress: |   wordpress: | ||||||
| @@ -7,14 +5,14 @@ services: | |||||||
|     container_name: wordpress |     container_name: wordpress | ||||||
|     profiles: |     profiles: | ||||||
|       - wordpress |       - wordpress | ||||||
|     restart: on-failure |     restart: on-failure:5 | ||||||
|     depends_on: |     depends_on: | ||||||
|       - wordpress_db |       - wordpress_db | ||||||
|       - caddy |       - caddy | ||||||
|     env_file: |     env_file: | ||||||
|       - env/wordpress.env |       - ./wordpress/env/wordpress.env | ||||||
|     volumes: |     volumes: | ||||||
|       - ./config/wordpress/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro |       - ./wordpress/config/wordpress/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro | ||||||
|       - wordpress:/var/www/html:rw |       - wordpress:/var/www/html:rw | ||||||
|     networks: |     networks: | ||||||
|       - infra-network |       - infra-network | ||||||
| @@ -30,19 +28,40 @@ services: | |||||||
|       - wordpress |       - wordpress | ||||||
|     depends_on: |     depends_on: | ||||||
|       - caddy |       - caddy | ||||||
|     restart: on-failure |     restart: on-failure:5 | ||||||
|     volumes: |     volumes: | ||||||
|       - wordpress_db:/var/lib/mysql:rw |       - wordpress_db:/var/lib/mysql:rw | ||||||
|     env_file: |     env_file: | ||||||
|       - env/wordpress_db.env |       - ./wordpress/env/wordpress_db.env | ||||||
|     command: '--default-authentication-plugin=mysql_native_password' |     command: '--default-authentication-plugin=mysql_native_password' | ||||||
|     networks: |     networks: | ||||||
|       - infra-network |       - infra-network | ||||||
|     security_opt: |     security_opt: | ||||||
|       - no-new-privileges:true |       - 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: | volumes: | ||||||
|   wordpress_db: |   wordpress_db: | ||||||
|     name: wordpress_db |     name: wordpress_db | ||||||
|   wordpress: |   wordpress: | ||||||
|     name: wordpress |     name: wordpress | ||||||
|  |   wordpress_backup: | ||||||
|  |     name: wordpress_backup | ||||||
							
								
								
									
										9
									
								
								infrastructure/wordpress/env/wordpress_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								infrastructure/wordpress/env/wordpress_backup.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | #RUN_ON_STARTUP=true | ||||||
|  | BACKUP_CRON=*/30 * * * * | ||||||
|  | RESTIC_REPOSITORY=/mnt/restic | ||||||
|  | RESTIC_BACKUP_SOURCES=/data | ||||||
|  | RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | ||||||
|  | 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 | ||||||
|  | #RESTIC_PRUNE_ARGS= | ||||||
|  | RESTIC_CHECK_ARGS=--read-data-subset=20% | ||||||
							
								
								
									
										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 | ||||||
		Reference in New Issue
	
	Block a user