mirror of
				https://github.com/bensuperpc/infrastructure.git
				synced 2025-10-25 07:16:21 +02:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			ad3fb75871
			...
			mainold
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| cd2862a358 | |||
| 13c2b7df19 | |||
| 20fe33f7d5 | |||
| c2f8075fd7 | |||
| b13654df15 | |||
| 66b014c076 | 
| @@ -1,15 +0,0 @@ | |||||||
| name: Build And Test |  | ||||||
| run-name: ${{ gitea.actor }} is runs ci pipeline |  | ||||||
| on: [ push ] |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   build: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - run: ls |  | ||||||
| publish: |  | ||||||
|     runs-on: cth-ubuntu-latest |  | ||||||
|     needs: build |  | ||||||
|     if: gitea.ref == 'refs/heads/main' |  | ||||||
|     steps: |  | ||||||
|       - run: ls |  | ||||||
							
								
								
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
| github: bensuperpc  |  | ||||||
							
								
								
									
										38
									
								
								.github/ISSUE_TEMPLATE/bug_report.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								.github/ISSUE_TEMPLATE/bug_report.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,38 +0,0 @@ | |||||||
| --- |  | ||||||
| name: Bug report |  | ||||||
| about: Create a report to help us improve |  | ||||||
| title: '' |  | ||||||
| labels: '' |  | ||||||
| assignees: '' |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| **Describe the bug** |  | ||||||
| A clear and concise description of what the bug is. |  | ||||||
|  |  | ||||||
| **To Reproduce** |  | ||||||
| Steps to reproduce the behavior: |  | ||||||
| 1. Go to '...' |  | ||||||
| 2. Click on '....' |  | ||||||
| 3. Scroll down to '....' |  | ||||||
| 4. See error |  | ||||||
|  |  | ||||||
| **Expected behavior** |  | ||||||
| A clear and concise description of what you expected to happen. |  | ||||||
|  |  | ||||||
| **Screenshots** |  | ||||||
| If applicable, add screenshots to help explain your problem. |  | ||||||
|  |  | ||||||
| **Desktop (please complete the following information):** |  | ||||||
|  - OS: [e.g. iOS] |  | ||||||
|  - Browser [e.g. chrome, safari] |  | ||||||
|  - Version [e.g. 22] |  | ||||||
|  |  | ||||||
| **Smartphone (please complete the following information):** |  | ||||||
|  - Device: [e.g. iPhone6] |  | ||||||
|  - OS: [e.g. iOS8.1] |  | ||||||
|  - Browser [e.g. stock browser, safari] |  | ||||||
|  - Version [e.g. 22] |  | ||||||
|  |  | ||||||
| **Additional context** |  | ||||||
| Add any other context about the problem here. |  | ||||||
							
								
								
									
										10
									
								
								.github/ISSUE_TEMPLATE/custom.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/ISSUE_TEMPLATE/custom.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +0,0 @@ | |||||||
| --- |  | ||||||
| name: Custom issue template |  | ||||||
| about: Describe this issue template's purpose here. |  | ||||||
| title: '' |  | ||||||
| labels: '' |  | ||||||
| assignees: '' |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								.github/ISSUE_TEMPLATE/feature_request.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/ISSUE_TEMPLATE/feature_request.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,20 +0,0 @@ | |||||||
| --- |  | ||||||
| name: Feature request |  | ||||||
| about: Suggest an idea for this project |  | ||||||
| title: '' |  | ||||||
| labels: '' |  | ||||||
| assignees: '' |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| **Is your feature request related to a problem? Please describe.** |  | ||||||
| A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] |  | ||||||
|  |  | ||||||
| **Describe the solution you'd like** |  | ||||||
| A clear and concise description of what you want to happen. |  | ||||||
|  |  | ||||||
| **Describe alternatives you've considered** |  | ||||||
| A clear and concise description of any alternative solutions or features you've considered. |  | ||||||
|  |  | ||||||
| **Additional context** |  | ||||||
| Add any other context or screenshots about the feature request here. |  | ||||||
							
								
								
									
										6
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +0,0 @@ | |||||||
| version: 2 |  | ||||||
| updates: |  | ||||||
|   - package-ecosystem: "github-actions" |  | ||||||
|     directory: "/" |  | ||||||
|     schedule: |  | ||||||
|       interval: "daily"  |  | ||||||
							
								
								
									
										48
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,48 +0,0 @@ | |||||||
| name: infrastructure |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - "main" |  | ||||||
|       - "master" |  | ||||||
|       - "dev" |  | ||||||
|     paths-ignore: |  | ||||||
|       - "**/README.md" |  | ||||||
|   pull_request: |  | ||||||
|     branches: |  | ||||||
|       - "*" |  | ||||||
|   schedule: |  | ||||||
|     - cron: "0 9 * * 2" # every tuesday at 9:00 https://crontab.guru/#0_7_*_*_1 |  | ||||||
|   workflow_dispatch: |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   image: |  | ||||||
|     name: infrastructure |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     timeout-minutes: 30 |  | ||||||
|     steps: |  | ||||||
|       - name: "Checkout Code" |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           submodules: "recursive" |  | ||||||
|           fetch-depth: 0 |  | ||||||
|       - name: "Check compose" |  | ||||||
|         run: make check |  | ||||||
|       - name: "Update server image" |  | ||||||
|         run: make image-update |  | ||||||
|       - name: "Build server" |  | ||||||
|         run: make build |  | ||||||
| #      - name: "Start server" |  | ||||||
| #        run: make start |  | ||||||
|       - name: "Logs server" |  | ||||||
|         run: make logs |  | ||||||
|       - name: "State server" |  | ||||||
|         run: make state |  | ||||||
|       - name: "Stop server" |  | ||||||
|         run: make stop |  | ||||||
|       - name: "Down server" |  | ||||||
|         run: make down |  | ||||||
|       - name: "Clean server" |  | ||||||
|         run: make clean |  | ||||||
|       - name: "Purge server" |  | ||||||
|         run: make purge |  | ||||||
							
								
								
									
										31
									
								
								.github/workflows/submodule-update.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								.github/workflows/submodule-update.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,31 +0,0 @@ | |||||||
| name: submodule-update |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   schedule: |  | ||||||
|     - cron: '0 */8 * * *' |  | ||||||
|   workflow_dispatch: |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   image: |  | ||||||
|     name: submodule-update |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - name: "Checkout Code" |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           token: ${{ secrets.CI_TOKEN }} |  | ||||||
|           repository: ${{ github.repository }} |  | ||||||
|           submodules: 'recursive' |  | ||||||
|           fetch-depth: 1 |  | ||||||
|       # Update references |  | ||||||
|       - name: Git Sumbodule Update |  | ||||||
|         run: | |  | ||||||
|           git pull --recurse-submodules |  | ||||||
|           git submodule update --remote --recursive |  | ||||||
|       # Commit and push |  | ||||||
|       - name: Commit update |  | ||||||
|         run: | |  | ||||||
|           git config --global user.name 'Bensuperpc' |  | ||||||
|           git config --global user.email 'bensuperpc@gmail.com' |  | ||||||
|           git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} |  | ||||||
|           git commit -am "Auto updated submodule references" && git push || echo "No changes to commit" |  | ||||||
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1,2 @@ | |||||||
|  | *.env | ||||||
| /*.tar.gz | **/*.env | ||||||
							
								
								
									
										9
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -1,9 +0,0 @@ | |||||||
| [submodule "infrastructure/services/minecraft-server"] |  | ||||||
| 	path = infrastructure/services/minecraft-server |  | ||||||
| 	url = git@github.com:bensuperpc/docker-minecraft-server.git |  | ||||||
| [submodule "infrastructure/services/7daystodie"] |  | ||||||
| 	path = infrastructure/services/7daystodie-server |  | ||||||
| 	url = git@github.com:bensuperpc/docker-7daystodie.git |  | ||||||
| [submodule "infrastructure/services/satisfactory"] |  | ||||||
| 	path = infrastructure/services/satisfactory-server |  | ||||||
| 	url = git@github.com:bensuperpc/docker-satisfactory.git |  | ||||||
|   | |||||||
| @@ -1,96 +0,0 @@ | |||||||
| #////////////////////////////////////////////////////////////// |  | ||||||
| #//                                                          // |  | ||||||
| #//  docker-multimedia, 2024                                 // |  | ||||||
| #//  Created: 30, May, 2021                                  // |  | ||||||
| #//  Modified: 14 November, 2024                             // |  | ||||||
| #//  file: -                                                 // |  | ||||||
| #//  -                                                       // |  | ||||||
| #//  Source:                                                 // |  | ||||||
| #//  OS: ALL                                                 // |  | ||||||
| #//  CPU: ALL                                                // |  | ||||||
| #//                                                          // |  | ||||||
| #////////////////////////////////////////////////////////////// |  | ||||||
|  |  | ||||||
| PROJECT_DIRECTORY ?= infrastructure |  | ||||||
|  |  | ||||||
| DOCKER_EXEC ?= docker |  | ||||||
|  |  | ||||||
| DOCKER_PROFILES ?= main_infrastructure |  | ||||||
|  |  | ||||||
| PROFILE_CMD ?= $(addprefix --profile ,$(DOCKER_PROFILES)) |  | ||||||
|  |  | ||||||
| COMPOSE_FILES ?=  $(shell find ./$(PROJECT_DIRECTORY) -maxdepth 1 -name 'docker-compose*.yml' -type f | sed -e 's/^/--file /') |  | ||||||
| COMPOSE_DIR ?= --project-directory ./$(PROJECT_DIRECTORY) |  | ||||||
|  |  | ||||||
| UID ?= 1000 |  | ||||||
| GID ?= 1000 |  | ||||||
|  |  | ||||||
| ENV_ARG_VAR ?= PUID=$(UID) PGID=$(GID) |  | ||||||
|  |  | ||||||
| DOCKER_COMPOSE_COMMAND ?= $(ENV_ARG_VAR) $(DOCKER_EXEC) compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD) |  | ||||||
|  |  | ||||||
| .PHONY: build all |  | ||||||
| all: start |  | ||||||
|  |  | ||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) build |  | ||||||
|  |  | ||||||
| .PHONY: start |  | ||||||
| start: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) up -d |  | ||||||
|  |  | ||||||
| .PHONY: start-at |  | ||||||
| start-at: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) up |  | ||||||
|  |  | ||||||
| .PHONY: no-start |  | ||||||
| no-start: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) up --no-start |  | ||||||
|  |  | ||||||
| .PHONY: check |  | ||||||
| check: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) config |  | ||||||
|  |  | ||||||
| .PHONY: stop |  | ||||||
| stop: down |  | ||||||
|  |  | ||||||
| .PHONY: down |  | ||||||
| down: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) down |  | ||||||
|  |  | ||||||
| .PHONY: restart |  | ||||||
| restart: stop start |  | ||||||
|  |  | ||||||
| .PHONY: logs |  | ||||||
| logs: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) logs |  | ||||||
|  |  | ||||||
| .PHONY: state |  | ||||||
| state: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) ps |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) top |  | ||||||
|  |  | ||||||
| .PHONY: volumes |  | ||||||
| volumes: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) config --volumes |  | ||||||
|  |  | ||||||
| .PHONY: image-update |  | ||||||
| image-update: |  | ||||||
| 	$(DOCKER_COMPOSE_COMMAND) pull |  | ||||||
|  |  | ||||||
| .PHONY: git-update |  | ||||||
| git-update:  |  | ||||||
| #	git submodule update --init --recursive --remote |  | ||||||
| 	git pull --recurse-submodules --all --progress |  | ||||||
|  |  | ||||||
| .PHONY: update |  | ||||||
| update: image-update git-update |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	docker system prune -f |  | ||||||
|  |  | ||||||
| .PHONY: purge |  | ||||||
| purge: |  | ||||||
| 	$(ENV_ARG_VAR) $(DOCKER_EXEC) compose $(COMPOSE_DIR) $(COMPOSE_FILES) down -v --rmi all |  | ||||||
							
								
								
									
										89
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										89
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,8 +1,15 @@ | |||||||
| #////////////////////////////////////////////////////////////// | #////////////////////////////////////////////////////////////// | ||||||
|  | #//   ____                                                   // | ||||||
|  | #//  | __ )  ___ _ __  ___ _   _ _ __   ___ _ __ _ __   ___  // | ||||||
|  | #//  |  _ \ / _ \ '_ \/ __| | | | '_ \ / _ \ '__| '_ \ / __| // | ||||||
|  | #//  | |_) |  __/ | | \__ \ |_| | |_) |  __/ |  | |_) | (__  // | ||||||
|  | #//  |____/ \___|_| |_|___/\__,_| .__/ \___|_|  | .__/ \___| // | ||||||
|  | #//                             |_|             |_|          // | ||||||
|  | #////////////////////////////////////////////////////////////// | ||||||
| #//                                                          // | #//                                                          // | ||||||
| #//  Script, 2022                                            // | #//  Script, 2022                                            // | ||||||
| #//  Created: 14, April, 2022                                // | #//  Created: 14, April, 2022                                // | ||||||
| #//  Modified: 30, November, 2024                            // | #//  Modified: 17, March, 2023                               // | ||||||
| #//  file: -                                                 // | #//  file: -                                                 // | ||||||
| #//  -                                                       // | #//  -                                                       // | ||||||
| #//  Source:                                                 // | #//  Source:                                                 // | ||||||
| @@ -11,29 +18,63 @@ | |||||||
| #//                                                          // | #//                                                          // | ||||||
| #////////////////////////////////////////////////////////////// | #////////////////////////////////////////////////////////////// | ||||||
|  |  | ||||||
| ADMIN_SERVICES := openssh uptime-kuma | DOCKER := docker | ||||||
| #BLOG_SERVICES := wordpress |  | ||||||
| #7DAYS_TO_DIE_SERVICES := 7daystodie_server 7daystodie_backup |  | ||||||
| #MINECRAFT_SERVICES := minecraft_server minecraft_backup |  | ||||||
| #SATISFACTORY_SERVICES := satisfactory_server satisfactory_backup |  | ||||||
| TEAM_FORTRESS_SERVICES := teamfortress2_server |  | ||||||
| # teamfortress2_backup |  | ||||||
| # gitea gitea-runner |  | ||||||
| #IA_SERVICES := open-webui |  | ||||||
| SHARING_SERVICES := privatebin |  | ||||||
| # jellyfin |  | ||||||
| # psitransfer picoshare projectsend dufs syncthing |  | ||||||
| TORRENTS_SERVICES := qbittorrent |  | ||||||
| # transmission |  | ||||||
| UTILS_SERVICES := it-tools omni-tools cyberchef |  | ||||||
| # stirlingpdf |  | ||||||
| MAIN_SERVICES := main_infrastructure caddy homepage |  | ||||||
|  |  | ||||||
| PROJECT_DIRECTORY := infrastructure | PROFILES := wp_db wordpress webserver certbot phpmyadmin qbittorrent jellyfin | ||||||
|  | PROFILE_CMD := $(addprefix --profile ,$(PROFILES)) | ||||||
|  |  | ||||||
| DOCKER_PROFILES := $(MAIN_SERVICES) $(ADMIN_SERVICES) $(BLOG_SERVICES) \ |  | ||||||
| 	$(7DAYS_TO_DIE_SERVICES) $(MINECRAFT_SERVICES) $(SATISFACTORY_SERVICES) \ |  | ||||||
| 	$(GIT_SERVICES) $(IA_SERVICES) $(SHARING_SERVICES) \ |  | ||||||
| 	$(TORRENTS_SERVICES) $(UTILS_SERVICES) |  | ||||||
|  |  | ||||||
| include DockerCompose.mk | COMPOSE_FILES :=  $(shell find docker-compose* | sed -e 's/^/--file /') | ||||||
|  |  | ||||||
|  | AUTHOR := bensuperpc | ||||||
|  |  | ||||||
|  | .PHONY: build all | ||||||
|  | all: start | ||||||
|  |  | ||||||
|  | .PHONY: build | ||||||
|  | build: | ||||||
|  | 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) build | ||||||
|  |  | ||||||
|  | .PHONY: start | ||||||
|  | start: | ||||||
|  | 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) up -d | ||||||
|  |  | ||||||
|  | .PHONY: start-at | ||||||
|  | start-at: | ||||||
|  | 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) up | ||||||
|  |  | ||||||
|  | .PHONY: docker-check | ||||||
|  | docker-check: | ||||||
|  | 	docker compose $(COMPOSE_FILES) $(PROFILES_CMD) config | ||||||
|  |  | ||||||
|  | .PHONY: stop | ||||||
|  | stop: down | ||||||
|  |  | ||||||
|  | .PHONY: down | ||||||
|  | down: | ||||||
|  | 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) down | ||||||
|  |  | ||||||
|  | .PHONY: restart | ||||||
|  | restart: stop start | ||||||
|  |  | ||||||
|  | .PHONY: logs | ||||||
|  | logs: | ||||||
|  | 	docker compose $(COMPOSE_FILES) logs | ||||||
|  |  | ||||||
|  | .PHONY: state | ||||||
|  | state: | ||||||
|  | 	docker compose $(COMPOSE_FILES) ps | ||||||
|  | 	docker compose $(COMPOSE_FILES) top | ||||||
|  |  | ||||||
|  | .PHONY: update | ||||||
|  | update: | ||||||
|  | 	git pull --recurse-submodules --all --progress | ||||||
|  | 	docker compose $(COMPOSE_FILES) $(PROFILES_CMD) pull | ||||||
|  |  | ||||||
|  | .PHONY: clean | ||||||
|  | clean: | ||||||
|  | 	$(DOCKER) images --filter=reference='bensuperpc/*' --format='{{.Repository}}:{{.Tag}}' | xargs -r $(DOCKER) rmi -f | ||||||
|  |  | ||||||
|  | .PHONY: purge | ||||||
|  | purge: | ||||||
|  | 	docker compose $(COMPOSE_FILES) $(PROFILE_CMD) down -v --rmi all | ||||||
							
								
								
									
										367
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										367
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,42 +1,31 @@ | |||||||
| # Infrastructure | # Infrastructure | ||||||
|  |  | ||||||
| _Open source, decentralized and self-hosted infrastructure for many services._ | _My personal infrastructure for my servers and services._ | ||||||
|  |  | ||||||
| ## About | ## About | ||||||
|  |  | ||||||
| It uses caddy and docker-compose to run my services (And many other things). | This is my infrastructure. It's a collection of scripts and configuration files that I use to manage my servers and services. | ||||||
|  | It uses Nginx 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. | ||||||
|  |  | ||||||
| ## Features | ## Features | ||||||
|  |  | ||||||
| - [x] caddy 2 HTTP/S reverse proxy | - [x] Nginx reverse proxy | ||||||
| - [x] Docker / docker-compose | - [x] Docker / docker-compose | ||||||
| - [x] Wordpress (Via FASTCGI/caddy) | - [x] Letsencrypt / Certbot | ||||||
| - [x] Jellyfin (Media server) | - [x] Wordpress (Via FASTCGI/NGINX) | ||||||
| - [x] Gitea (Git server) | - [x] PHPMyAdmin (MariaDB) | ||||||
| - [x] Forgejo (Git server, fork of Gitea) | - [x] PGAdmin (PostgreSQL) | ||||||
| - [x] Uptime Kuma (Monitoring) | - [x] Qbittorrent | ||||||
| - [x] qbittorrent and transmission (Torrent client/server) | - [x] Jellyfin | ||||||
| - [x] SyncThing (File synchronization) | - [ ] Gitea | ||||||
| - [x] PsiTransfer, ProjectSend, Picoshare (File sharing) | - [ ] Mastodon | ||||||
| - [x] it-tools and omni-tools (Tools for IT) | - [ ] Minecraft server (Hyperworld v2) | ||||||
| - [x] Open-WebUI (Local chatGPT) | - [ ] SSL for all subdomains / Services (Not just the main domain) | ||||||
| - [x] Privatebin (Pastebin) |  | ||||||
| - [X] [Satisfactory](https://github.com/bensuperpc/docker-satisfactory) |  | ||||||
| - [x] [7 days to die](https://github.com/bensuperpc/docker-7daystodie) |  | ||||||
| - [x] [minecraft](https://github.com/bensuperpc/docker-minecraft-server) |  | ||||||
|  |  | ||||||
| ## Architecture |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Screenshots | ## Screenshots | ||||||
|  |  | ||||||
| The homepage is a dashboard with many widgets and services. |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Installation and configuration | ## Installation and configuration | ||||||
|  |  | ||||||
| ### Requirements | ### Requirements | ||||||
| @@ -45,26 +34,7 @@ The homepage is a dashboard with many widgets and services. | |||||||
| - [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, 443, 22, 2222 and 5555 on your router](http://192.168.1.1/) | - [Open port 80 and 443 on your router](http://192.168.0.1/) (I use a Orange box with default IP) | ||||||
| - For games server, you need to open these ports (7777, 25565, 26900, 26901, 26903) |  | ||||||
|  |  | ||||||
| List of ports used by the services in this infrastructure: |  | ||||||
|  |  | ||||||
| | Port number | Service       | Description       | |  | ||||||
| | ----------- | ------------- | ----------------- | |  | ||||||
| | 80          | Caddy         | HTTP traffic      | |  | ||||||
| | 443         | Caddy         | HTTPS traffic     | |  | ||||||
| | 22          | Forgejo       | Git/SSH access    | |  | ||||||
| | 2222        | OpenSSH       | Global SSH access | |  | ||||||
| | 5555        | Gitea         | Git/SSH access    | |  | ||||||
| | 7777        | Satisfactory  | Game server port  | |  | ||||||
| | 25565       | Minecraft     | Game server port  | |  | ||||||
| | 26900       | 7 Days to Die | Game server port  | |  | ||||||
| | 26901       | 7 Days to Die | Game server port  | |  | ||||||
| | 26903       | 7 Days to Die | Game server port  | |  | ||||||
|  |  | ||||||
|  |  | ||||||
| **To avoid get rate limit from letsencrypt (10 certificates per 3 hours), you need to disable some certificates in the caddyfiles and enable them 3h later...** |  | ||||||
|  |  | ||||||
| ### Clone | ### Clone | ||||||
|  |  | ||||||
| @@ -80,177 +50,105 @@ Go to the folder | |||||||
| cd infrastructure | cd infrastructure | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Change services you want to enable in the [Makefile](Makefile) file, by default all services are enabled (games servers included). | ### Get the SSL certificate | ||||||
|  |  | ||||||
| ### Configure the domain | For all **bensuperpc.org**, you need to replace it with your domain, example: **bensuperpc.com** | ||||||
|  |  | ||||||
| For all **bensuperpc.org**, you need to replace it with your domain, example: **mydomain.com**, so the same for **bensuperpc.com** ect... |  | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/bensuperpc.org/mydomain.com/g' | find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/bensuperpc.org/bensuperpc.com/g' | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Check if all bensuperpc.* are replaced by your domain in [Caddyfile](caddy/services/wordpress/Caddyfile) | Keep original config file | ||||||
|  |  | ||||||
| And then, caddy will generate the certificate for you and renew it automatically :D |  | ||||||
|  |  | ||||||
| | Domain name                                                        | Type | Description                                                  | |  | ||||||
| | ------------------------------------------------------------------ | ---- | ------------------------------------------------------------ | |  | ||||||
| | [bensuperpc.org](https://bensuperpc.org)                           | Main | Redirect to [www.bensuperpc.org](https://www.bensuperpc.org) | |  | ||||||
| | [www.bensuperpc.org](https://www.bensuperpc.org)                   | Main | Homepage                                                     | |  | ||||||
| | [open-webui.bensuperpc.org](https://open-webui.bensuperpc.org)     | Sub  | For local chatGPT                                            | |  | ||||||
| | [wordpress.bensuperpc.org](https://wordpress.bensuperpc.org)       | Sub  | Wordpress website                                            | |  | ||||||
| | [uptimekuma.bensuperpc.org](https://uptimekuma.bensuperpc.org)     | Sub  | Uptime Kuma for monitoring                                   | |  | ||||||
| | [qbittorrent.bensuperpc.org](https://qbittorrent.bensuperpc.org)   | Sub  | Torrent client/server                                        | |  | ||||||
| | [transmission.bensuperpc.org](https://transmission.bensuperpc.org) | Sub  | Torrent client/server                                        | |  | ||||||
| | [gitea.bensuperpc.org](https://gitea.bensuperpc.org)               | Sub  | Gitea for git                                                | |  | ||||||
| | [forgejo.bensuperpc.org](https://forgejo.bensuperpc.org/)          | Sub  | Fork of Gitea for git                                        | |  | ||||||
| | [git.bensuperpc.org](https://git.bensuperpc.org)                   | Sub  | Fork of Gitea for git                                        | |  | ||||||
| | [link.bensuperpc.org](https://link.bensuperpc.org)                 | Sub  | For link shortener                                           | |  | ||||||
| | [jellyfin.bensuperpc.org](https://jellyfin.bensuperpc.org)         | Sub  | Jellyfin for media server                                    | |  | ||||||
| | [syncthing.bensuperpc.org](https://syncthing.bensuperpc.org)       | Sub  | SyncThing for file synchronization                           | |  | ||||||
| | [psitransfer.bensuperpc.org](https://psitransfer.bensuperpc.org)   | Sub  | PsiTransfer for file sharing                                 | |  | ||||||
| | [it-tools.bensuperpc.org](https://it-tools.bensuperpc.org)         | Sub  | Tools for IT                                                 | |  | ||||||
| | [omni-tools.bensuperpc.org](https://omni-tools.bensuperpc.org)     | Sub  | Tools for IT                                                 | |  | ||||||
| | [privatebin.bensuperpc.org](https://privatebin.bensuperpc.org)     | Sub  | Pastebin                                                     | |  | ||||||
| | [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                                        | |  | ||||||
| | [memos.bensuperpc.org](https://memos.bensuperpc.org)               | Sub  | Caddy for file sharing                                       | |  | ||||||
| | [stirlingpdf.bensuperpc.org](https://stirlingpdf.bensuperpc.org)   | Sub  | Stirling PDF tools                                           | |  | ||||||
|  |  | ||||||
| ### Configure the infrastructure |  | ||||||
|  |  | ||||||
| You need to configure the infrastructure with your own configuration. |  | ||||||
|  |  | ||||||
| You can generate a password with 32 characters: |  | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| openssl rand -base64 32 | cp -r nginx/conf.d nginx/conf.d-original | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Or online: [passwordsgenerator.net](https://passwordsgenerator.net/) | Remove the old config file | ||||||
|  |  | ||||||
| #### Caddy |  | ||||||
|  |  | ||||||
| For [caddy_backup.env](infrastructure/services/caddy/env/caddy_backup.env) file, you need to change the password(s) for the restic backup. |  | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | rm -fr nginx/nginx-conf | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Wordpress | Copy _nginx-conf-cert_ to _nginx-conf_, for temporary use to get the SSL certificate | ||||||
|  |  | ||||||
| For the [wordpress.env](infrastructure/services/wordpress/env/wordpress.env) file, you need to change the password and user for the database. |  | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| WORDPRESS_DB_USER=bensuperpc | cp -r nginx/conf.d-cert nginx/conf.d | ||||||
| WORDPRESS_DB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [wordpress_db.env](infrastructure/services/wordpress/env/wordpress_db.env) file, you need to change the password(s) and user for the database. | Replace certbot commands in _docker-compose.yml_, and replace _bensuperpc.org_ by your domain | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  |     command: > | ||||||
|  |       certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --keep-until-expiring --webroot  | ||||||
|  |       --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org | ||||||
|  |       --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | With to get the SSL certificate | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  |     command: > | ||||||
|  |       certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --staging --webroot | ||||||
|  |       --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org | ||||||
|  |       --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org  | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Run the docker-compose and exit with CTRL+C and when you have the SSL certificate | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| MARIADB_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ | make start-at | ||||||
| MARIADB_USER=bensuperpc |  | ||||||
| MARIADB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [wordpress_backup.env](infrastructure/services/wordpress/env/wordpress_backup.env) file, you need to change the password(s) for the restic backup. | Replace certbot commands in _docker-compose.yml_ to update and renew the SSL certificate | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ |     command: > | ||||||
|  |       certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --force-renewal --webroot | ||||||
|  |       --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org | ||||||
|  |       --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Gitea | Run the docker-compose to update and renew the SSL certificate and exit with CTRL+C when you have the SSL certificate | ||||||
|  |  | ||||||
| For [gitea.env](infrastructure/services/gitea/env/gitea.env) file, you need to change the password(s) and user for the database. |  | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| GITEA__database__USER=bensuperpc | make start-at | ||||||
| GITEA__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j |  | ||||||
| GITEA__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [gitea_db.env](infrastructure/services/gitea/env/gitea_db.env) file, you need to change the password(s) and user for the database. | Now you can replace the certbot commands in _docker-compose.yml_ with the original one | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  |     command: > | ||||||
|  |       certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --keep-until-expiring --webroot  | ||||||
|  |       --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org | ||||||
|  |       --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Remove the cert config file | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| MARIADB_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X | rm -fr nginx/conf.d | ||||||
| MARIADB_USER=bensuperpc |  | ||||||
| MARIADB_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### PsiTransfer | Copy _nginx-conf-original_ to _nginx-conf_, for definitive use | ||||||
|  |  | ||||||
| For [psitransfer.env](infrastructure/services/psitransfer/env/psitransfer.env) file, you need to change the secret key. |  | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn | cp -r nginx/conf.d-original nginx/conf.d | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| For [projectsend_db.env](infrastructure/services/projectsend/env/projectsend_db.env) file, you need to change the password(s) and user for the database. | Now you start services | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| MARIADB_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt | make start-at | ||||||
| MARIADB_USER=bensuperpc |  | ||||||
| MARIADB_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Picoshare | ### Flask website | ||||||
|  |  | ||||||
| For [picoshare.env](infrastructure/services/picoshare/env/picoshare.env) file, you need to change the secret key. | You can follow the [README.md](bensuperpc_website/README.md) to install the Flask website. | ||||||
|  |  | ||||||
| ```sh | ### Wordpress website | ||||||
| PS_SHARED_SECRET=CBuS4DJLqIe93xF1KGYRrnhxUFBqLD2n |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| #### Dufs | For the Wordpress website, you can configure in GUI when you go to the website. | ||||||
|  |  | ||||||
| For [dufs.env](infrastructure/services/dufs/env/dufs.env) file, you need to change the secret key and if you want the user name. |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| DUFS_AUTH="admin:heqihlOfBmJDESGFlpbPi7P7Mi6F7RkV@/:rw|@/:ro" |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| #### Stirling PDF |  | ||||||
|  |  | ||||||
| For [stirlingpdf.env](infrastructure/services/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 |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| #### OpenSSH |  | ||||||
|  |  | ||||||
| You can need to add/change the public ssh key [id_ed25519.pub](infrastructure/services/openssh/config/authorized_keys/id_ed25519.pub) (its my public key), also change the config/password in [openssh.env](infrastructure/services/openssh/env/openssh.env): |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| SUDO_ACCESS=true |  | ||||||
| #PUBLIC_KEY_URL=https://github.com/bensuperpc.keys |  | ||||||
| PUBLIC_KEY_DIR=/authorized_ssh_keys |  | ||||||
| USER_PASSWORD=rdUwf36C11PLmpU9Lvq7tP5pfFBKAuCh |  | ||||||
|  |  | ||||||
| #PUBLIC_KEY=yourpublickey |  | ||||||
| #PUBLIC_KEY_FILE=/path/to/file |  | ||||||
| #PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys |  | ||||||
| #USER_PASSWORD_FILE=/path/to/file |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| #### Open-WebUI |  | ||||||
|  |  | ||||||
| For [open-webui.env](infrastructure/services/open-webui/env/open-webui.env) file, entirely optional. |  | ||||||
|  |  | ||||||
| To download the model, you can use: |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| docker exec -it ollama ollama run deepseek-r1:8b |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ### Start the infrastructure | ### Start the infrastructure | ||||||
|  |  | ||||||
| @@ -266,93 +164,16 @@ Stop the website with (or CTRL+C with the previous command): | |||||||
| make stop | make stop | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Remove countainers with: | ## URL | ||||||
|  |  | ||||||
| ```sh | You can access to the website with: | ||||||
| make down |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| You can disable some services by removing the service name in PROFILES variable in the [Makefile](Makefile) file. | - [bensuperpc.org](https://bensuperpc.org) and [www.bensuperpc.org](https://www.bensuperpc.org) (Wordpress for now) | ||||||
|  | - [phpmyadmin.bensuperpc.org](http://phpmyadmin.bensuperpc.org) and [www.phpmyadmin.bensuperpc.org](http://www.phpmyadmin.bensuperpc.org) (PHPMyAdmin for MariaDB) | ||||||
|  | - [pgadmin.bensuperpc.org](http://pgadmin.bensuperpc.org) and [www.pgadmin.bensuperpc.org](http://www.pgadmin.bensuperpc.org) (PGAdmin for PostgreSQL) | ||||||
|  | - [qbittorrent.bensuperpc.org](http://qbittorrent.bensuperpc.org) and [www.qbittorrent.bensuperpc.org](http://www.qbittorrent.bensuperpc.org) (Qbittorrent) | ||||||
|  |  | ||||||
| To enable the gitea CI: [how-to-build-docker-containers-using-gitea-runners](https://medium.com/@lokanx/how-to-build-docker-containers-using-gitea-runners-600729555e07) | ## Build with | ||||||
|  |  | ||||||
| ### Homepage |  | ||||||
|  |  | ||||||
| You can change the homepage config in these files: |  | ||||||
|  |  | ||||||
| - [bookmarks.yaml](infrastructure/services/homepage/config/bookmarks.yaml) |  | ||||||
| - [services.yaml](infrastructure/services/homepage/config/services.yaml) |  | ||||||
| - [settings.yaml](infrastructure/services/homepage/config/settings.yaml) |  | ||||||
| - [widgets.yaml](infrastructure/services/homepage/config/widgets.yaml) |  | ||||||
|  |  | ||||||
| ### Forgejo |  | ||||||
|  |  | ||||||
| Once the installation is complete, you need to set the installation lock: |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| FORGEJO__security__INSTALL_LOCK=true |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ### Forgejo Runner |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| docker exec -it forgejo_runner /bin/bash |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| forgejo-runner generate-config > /data/config.yml |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| Now update the config.yml file to support docker-in-docker: |  | ||||||
|  |  | ||||||
| ```yml |  | ||||||
|   envs: |  | ||||||
|     DOCKER_TLS_VERIFY: 1 |  | ||||||
|     DOCKER_CERT_PATH: /certs/client |  | ||||||
|     DOCKER_HOST: tcp://docker:2376 |  | ||||||
|   labels: ["ubuntu-latest:docker://node:20-bookworm", "ubuntu-22.04:docker://node:20-bookworm"] |  | ||||||
|   network: host |  | ||||||
|   options: -v /certs/client:/certs/client |  | ||||||
|   valid_volumes: |  | ||||||
|      - /certs/client |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| Register the runner with your Forgejo instance: |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| forgejo-runner register |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| You will need to provide the following information: |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| https://forgejo.bensuperpc.org/ |  | ||||||
| <Your Registration Token, in https://forgejo.bensuperpc.org/admin/actions/runners> |  | ||||||
| ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 |  | ||||||
| main |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ### Docker volumes |  | ||||||
|  |  | ||||||
| This infrastructure uses docker volumes to store data, all configuration/data for each service are not shared between services for security and maintenance reasons, but **public_data** and **private_data** are shared between all services to store your data. |  | ||||||
|  |  | ||||||
| | Volume name  | Description                                                                                                | |  | ||||||
| | ------------ | ---------------------------------------------------------------------------------------------------------- | |  | ||||||
| | public_data  | Public data reachable on internet via [dufs.bensuperpc.org](https://dufs.bensuperpc.org), can be disabled. | |  | ||||||
| | private_data | Private data                                                                                               | |  | ||||||
|  |  | ||||||
| ### SSH access |  | ||||||
|  |  | ||||||
| The default port for ssh/rsync is is 2222. |  | ||||||
|  |  | ||||||
| You can access to the server with: |  | ||||||
|  |  | ||||||
| ```sh |  | ||||||
| ssh -p 2222 admin@bensuperpc.org |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ## 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/) | ||||||
| @@ -361,33 +182,15 @@ ssh -p 2222 admin@bensuperpc.org | |||||||
| - [Docker](https://www.docker.com/) | - [Docker](https://www.docker.com/) | ||||||
| - [Docker Compose](https://docs.docker.com/compose/) | - [Docker Compose](https://docs.docker.com/compose/) | ||||||
| - [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) | - [Digital Ocean](https://www.digitalocean.com/) | ||||||
| - [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](https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-docker-compose) | ||||||
| - [Imagisphe](https://imagisphe.re/) | - [PGAmin](https://www.pgadmin.org/) | ||||||
| - [Letsencrypt](https://letsencrypt.org/) | - [Qbittorrent](https://www.qbittorrent.org/) | ||||||
| - [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/) | - [Jellyfin](https://jellyfin.org/) | ||||||
| - [SyncThing](https://syncthing.net/) | - [Letsencrypt](https://letsencrypt.org/) | ||||||
| - [PsiTransfer](https://psitransfer.com/) | - [Certbot](https://certbot.eff.org/) | ||||||
| - [It-tools](https://github.com/CorentinTh/it-tools) | - [Nginx](https://www.nginx.com/) | ||||||
| - [Omni-tools](https://github.com/iib0011/omni-tools) | - [UWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) | ||||||
| - [Privatebin](https://github.com/PrivateBin/PrivateBin) |  | ||||||
| - [ghost](https://ghost.org) |  | ||||||
| - [Homepage Tuto](https://belginux.com/installer-homepage-avec-docker/) |  | ||||||
| - [ProjectSend](https://www.projectsend.org/) |  | ||||||
| - [Picoshare](https://github.com/mtlynch/picoshare) |  | ||||||
| - [Dufs](https://github.com/sigoden/dufs) |  | ||||||
| - [demos](https://github.com/usememos/memos) |  | ||||||
| - [Stirling PDF](https://github.com/Stirling-Tools/Stirling-PDF) |  | ||||||
| - [open-webui](https://github.com/open-webui/open-webui) |  | ||||||
| - [Fix docker volume](https://pratikpc.medium.com/use-docker-compose-named-volumes-as-non-root-within-your-containers-1911eb30f731) |  | ||||||
| - [Forgejo-runner](https://code.forgejo.org/forgejo/runner) |  | ||||||
| - [Forgejo-runner](https://huijzer.xyz/posts/55) |  | ||||||
|  |  | ||||||
| ## License | ## License | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										32
									
								
								docker-compose.certbot.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								docker-compose.certbot.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | version: "3.9" | ||||||
|  |  | ||||||
|  | services: | ||||||
|  |   certbot: | ||||||
|  |     depends_on: | ||||||
|  |       - webserver | ||||||
|  |     image: certbot/certbot:v2.5.0 | ||||||
|  |     container_name: certbot | ||||||
|  |     profiles: | ||||||
|  |       - certbot | ||||||
|  |     volumes: | ||||||
|  |       - certbot-cert:/etc/letsencrypt | ||||||
|  |       - wordpress:/var/www/wordpress | ||||||
|  |       - jellyfin:/var/www/jellyfin | ||||||
|  |     #command: > | ||||||
|  |     #  certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --staging --webroot | ||||||
|  |     #  --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org | ||||||
|  |     #  --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org  | ||||||
|  |  | ||||||
|  |     #command: > | ||||||
|  |     #  certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --force-renewal --webroot | ||||||
|  |     #  --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org | ||||||
|  |     #  --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org | ||||||
|  |  | ||||||
|  |     command: > | ||||||
|  |       certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --keep-until-expiring --webroot  | ||||||
|  |       --webroot-path=/var/www/wordpress --domain bensuperpc.org --domain www.bensuperpc.org | ||||||
|  |       --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   certbot-cert: | ||||||
|  |     name: certbot-cert | ||||||
							
								
								
									
										48
									
								
								docker-compose.divers.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								docker-compose.divers.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | version: "3.9" | ||||||
|  |  | ||||||
|  | services: | ||||||
|  |   qbittorrent: | ||||||
|  |     image: lscr.io/linuxserver/qbittorrent:latest | ||||||
|  |     container_name: qbittorrent | ||||||
|  |     profiles: | ||||||
|  |       - qbittorrent | ||||||
|  |     environment: | ||||||
|  |       - PUID=1000 | ||||||
|  |       - PGID=1000 | ||||||
|  |       - TZ=Europe/London | ||||||
|  |       - WEBUI_PORT=8080 | ||||||
|  |     volumes: | ||||||
|  |       - qbittorrent-conf:/config | ||||||
|  |       - qbittorrent-downloads:/downloads | ||||||
|  |     #ports: | ||||||
|  |     #  - 8080:8080 | ||||||
|  |     #  - 6881:6881 | ||||||
|  |     #  - 6881:6881/udp | ||||||
|  |     restart: unless-stopped | ||||||
|  |     networks: | ||||||
|  |       - app-network | ||||||
|  |   jellyfin: | ||||||
|  |     image: lscr.io/linuxserver/jellyfin:latest | ||||||
|  |     container_name: jellyfin | ||||||
|  |     profiles: | ||||||
|  |       - jellyfin | ||||||
|  |     environment: | ||||||
|  |       - PUID=1000 | ||||||
|  |       - PGID=1000 | ||||||
|  |       - TZ=Europe/London | ||||||
|  |       - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional | ||||||
|  |     volumes: | ||||||
|  |       - jellyfin-config:/config | ||||||
|  |       - jellyfin-tvseries:/data/tvshows | ||||||
|  |       - jellyfin-movies:/data/movies | ||||||
|  |       - jellyfin:/var/www/html | ||||||
|  |     #ports: | ||||||
|  |     #  - 8096:8096 | ||||||
|  |     #  - 8920:8920 #optional | ||||||
|  |     #  - 7359:7359/udp #optional | ||||||
|  |     #  - 1900:1900/udp #optional | ||||||
|  |     restart: unless-stopped | ||||||
|  |     networks: | ||||||
|  |       - app-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
							
								
								
									
										6
									
								
								docker-compose.network.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docker-compose.network.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | version: "3.9" | ||||||
|  |  | ||||||
|  | networks: | ||||||
|  |   app-network: | ||||||
|  |     driver: bridge | ||||||
|  |     name: app-network | ||||||
							
								
								
									
										24
									
								
								docker-compose.nginx.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								docker-compose.nginx.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | version: "3.9" | ||||||
|  |  | ||||||
|  | services: | ||||||
|  |   webserver: | ||||||
|  |     depends_on: | ||||||
|  |       - wordpress | ||||||
|  |     image: nginx:1.24.0 | ||||||
|  |     container_name: webserver | ||||||
|  |     profiles: | ||||||
|  |       - webserver | ||||||
|  |     restart: unless-stopped | ||||||
|  |     ports: | ||||||
|  |       - "80:80" | ||||||
|  |       - "443:443" | ||||||
|  |     volumes: | ||||||
|  |       - wordpress:/var/www/wordpress | ||||||
|  |       - jellyfin:/var/www/jellyfin | ||||||
|  |       - ./nginx/conf.d:/etc/nginx/conf.d:ro | ||||||
|  |       - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro | ||||||
|  |       - certbot-cert:/etc/letsencrypt:ro | ||||||
|  |     networks: | ||||||
|  |       - app-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
							
								
								
									
										15
									
								
								docker-compose.volume.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docker-compose.volume.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | version: "3.9" | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   qbittorrent-downloads: | ||||||
|  |     name: qbittorrent-downloads | ||||||
|  |   qbittorrent-conf: | ||||||
|  |     name: qbittorrent-conf | ||||||
|  |   jellyfin-config: | ||||||
|  |     name: jellyfin-config | ||||||
|  |   jellyfin-tvseries: | ||||||
|  |     name: jellyfin-tvseries | ||||||
|  |   jellyfin-movies: | ||||||
|  |     name: jellyfin-movies | ||||||
|  |   jellyfin: | ||||||
|  |     name: jellyfin | ||||||
							
								
								
									
										63
									
								
								docker-compose.wordpress.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								docker-compose.wordpress.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | |||||||
|  | version: "3.9" | ||||||
|  |  | ||||||
|  | services: | ||||||
|  |   wp_db: | ||||||
|  |     image: mariadb:10.10.3 | ||||||
|  |     container_name: wp_db | ||||||
|  |     profiles: | ||||||
|  |       - wp_db | ||||||
|  |     restart: unless-stopped | ||||||
|  |     env_file:  | ||||||
|  |       - env/wp_database.env | ||||||
|  |     volumes:  | ||||||
|  |       - dbdata:/var/lib/mysql | ||||||
|  |     networks: | ||||||
|  |       - app-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  |   wordpress: | ||||||
|  |     depends_on:  | ||||||
|  |       - wp_db | ||||||
|  |     image: wordpress:6.2.0-fpm | ||||||
|  |     container_name: wordpress | ||||||
|  |     profiles: | ||||||
|  |       - wordpress | ||||||
|  |     restart: unless-stopped | ||||||
|  |     env_file:  | ||||||
|  |       - env/wordpress.env | ||||||
|  |     volumes: | ||||||
|  |       - wordpress:/var/www/html | ||||||
|  |     networks: | ||||||
|  |       - app-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  | #    cap_drop: | ||||||
|  | #        - ALL | ||||||
|  | #    cap_add: | ||||||
|  | #      - SETUID | ||||||
|  | #      - SETGID | ||||||
|  | #      - DAC_OVERRIDE | ||||||
|  | #      - NET_BIND_SERVICE | ||||||
|  | #      - NET_RAW | ||||||
|  | #      - CAP_CHOWN | ||||||
|  |   phpmyadmin: | ||||||
|  |     image: phpmyadmin:5.2.0 | ||||||
|  |     container_name: phpmyadmin | ||||||
|  |     profiles: | ||||||
|  |       - phpmyadmin | ||||||
|  |     restart: unless-stopped | ||||||
|  |     env_file:  | ||||||
|  |       - env/phpmyadmin.env | ||||||
|  |     depends_on: | ||||||
|  |       - wp_db | ||||||
|  |     networks: | ||||||
|  |       - app-network | ||||||
|  |     security_opt: | ||||||
|  |       - no-new-privileges:true | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   wordpress: | ||||||
|  |     name: wordpress | ||||||
|  |   dbdata: | ||||||
|  |     name: dbdata | ||||||
							
								
								
									
										4
									
								
								env/flask_database.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								env/flask_database.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | POSTGRES_HOST_AUTH_METHOD=trust | ||||||
|  | POSTGRES_USER=bensuperpc | ||||||
|  | POSTGRES_PASSWORD=nPRh270dKH3hz%6HS2$X%8F3fqoQ*Fex | ||||||
|  | POSTGRES_DB=website | ||||||
							
								
								
									
										7
									
								
								env/flask_website.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								env/flask_website.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | FLASK_DEBUG=1 | ||||||
|  |  | ||||||
|  | # Acces to the database | ||||||
|  | POSTGRES_URL=flask_db:5432 | ||||||
|  | POSTGRES_USER=bensuperpc | ||||||
|  | POSTGRES_PW=nPRh270dKH3hz%6HS2$X%8F3fqoQ*Fex | ||||||
|  | POSTGRES_DB=website | ||||||
							
								
								
									
										3
									
								
								env/pgadmin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								env/pgadmin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | PGADMIN_DEFAULT_EMAIL=bensuperpc@bensuperpc.org | ||||||
|  | PGADMIN_DEFAULT_PASSWORD=LmRVf9DY291ez7B^^%2RntHcsCrJ5fQ! | ||||||
|  | #PGADMIN_ENABLE_TLS | ||||||
							
								
								
									
										4
									
								
								env/phpmyadmin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								env/phpmyadmin.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | MYSQL_ROOT_PASSWORD=g1qQWxTXyFXIKpAfbE0h5bxn&prr4zfd | ||||||
|  | MYSQL_USER=bensuperpc | ||||||
|  | MYSQL_PASSWORD=4Xnc7FB7902%*w9PW4y9&anQ5&hQdTzt | ||||||
|  | PMA_HOST=db | ||||||
							
								
								
									
										4
									
								
								env/wordpress.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								env/wordpress.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | WORDPRESS_DB_USER=bensuperpc | ||||||
|  | WORDPRESS_DB_PASSWORD=4Xnc7FB7902%*w9PW4y9&anQ5&hQdTzt | ||||||
|  | WORDPRESS_DB_NAME=wordpress | ||||||
|  | WORDPRESS_DB_HOST=wp_db:3306 | ||||||
							
								
								
									
										4
									
								
								env/wp_database.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								env/wp_database.env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | MARIADB_ROOT_PASSWORD=g1qQWxTXyFXIKpAfbE0h5bxn&prr4zfd | ||||||
|  | MARIADB_USER=bensuperpc | ||||||
|  | MARIADB_PASSWORD=4Xnc7FB7902%*w9PW4y9&anQ5&hQdTzt | ||||||
|  | MARIADB_DATABASE=wordpress | ||||||
| @@ -1,53 +0,0 @@ | |||||||
| include: |  | ||||||
| # Main |  | ||||||
|   - services/main/docker-compose.main.yml  |  | ||||||
| # WordPress |  | ||||||
|   - services/wordpress/docker-compose.wordpress.yml |  | ||||||
| # Caddy |  | ||||||
|   - services/caddy/docker-compose.caddy.yml |  | ||||||
| # Dufs |  | ||||||
|   - services/dufs/docker-compose.dufs.yml |  | ||||||
| # Gitea |  | ||||||
|   - services/gitea/docker-compose.gitea.yml |  | ||||||
| # Forgejo |  | ||||||
|   - services/forgejo/docker-compose.forgejo.yml |  | ||||||
| # Homepage |  | ||||||
|   - services/homepage/docker-compose.homepage.yml |  | ||||||
| # It-tools |  | ||||||
|   - services/it-tools/docker-compose.it-tools.yml |  | ||||||
| # omni-tools |  | ||||||
|   - services/omni-tools/docker-compose.omni-tools.yml |  | ||||||
| # cyberchef |  | ||||||
|   - services/cyberchef/docker-compose.cyberchef.yml |  | ||||||
| # Jellyfin |  | ||||||
|   - services/jellyfin/docker-compose.jellyfin.yml |  | ||||||
| # Openssh |  | ||||||
|   - services/openssh/docker-compose.openssh.yml |  | ||||||
| # Picoshare |  | ||||||
|   - services/picoshare/docker-compose.picoshare.yml |  | ||||||
| # Privatebin |  | ||||||
|   - services/privatebin/docker-compose.privatebin.yml |  | ||||||
| # Projectsend |  | ||||||
|   - services/projectsend/docker-compose.projectsend.yml |  | ||||||
| # Psitransfer |  | ||||||
|   - services/psitransfer/docker-compose.psitransfer.yml |  | ||||||
| # Qbittorrent |  | ||||||
|   - services/qbittorrent/docker-compose.qbittorrent.yml |  | ||||||
| # Stirlingpdf |  | ||||||
|   - services/stirlingpdf/docker-compose.stirlingpdf.yml |  | ||||||
| # Syncthing |  | ||||||
|   - services/syncthing/docker-compose.syncthing.yml |  | ||||||
| # Transmission |  | ||||||
|   - services/transmission/docker-compose.transmission.yml |  | ||||||
| # Uptime-kuma |  | ||||||
|   - services/uptime-kuma/docker-compose.uptime-kuma.yml |  | ||||||
| # open-webui |  | ||||||
|   - services/open-webui/docker-compose.open-webui.yml |  | ||||||
| # Minecraft |  | ||||||
|   - services/minecraft-server/minecraft-server/docker-compose.yml |  | ||||||
| # 7daystodie |  | ||||||
|   - services/7daystodie-server/7daystodie-server/docker-compose.yml |  | ||||||
| # Satisfactory |  | ||||||
|   - services/satisfactory-server/satisfactory-server/docker-compose.yml |  | ||||||
| # Team Fortress 2 |  | ||||||
|   - services/teamfortress2-server/teamfortress2-server/docker-compose.yml |  | ||||||
 Submodule infrastructure/services/7daystodie-server deleted from 71c33c6b1a
									
								
							| @@ -1,15 +0,0 @@ | |||||||
| { |  | ||||||
| 	email {$MAIL_DOMAIN} |  | ||||||
| 	key_type p384 |  | ||||||
|  |  | ||||||
| 	log { |  | ||||||
| 		output file /data/logs/access.log { |  | ||||||
| 			roll_size 1GiB |  | ||||||
| 			roll_keep 20 |  | ||||||
| 			roll_keep_for 720h |  | ||||||
| 		} |  | ||||||
| 		format json |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| import website/* |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| cyberchef.{$MAIN_DOMAIN} { |  | ||||||
| 	# Load balance between 2 instances |  | ||||||
| 	reverse_proxy { |  | ||||||
| 		to cyberchef0:8000 cyberchef1:8000 |  | ||||||
| 		lb_policy round_robin |  | ||||||
| 		lb_retries 3 |  | ||||||
| 		lb_try_interval 1s |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| dufs.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy dufs:5000 |  | ||||||
| } |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| git.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy forgejo:3000 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| forgejo.{$MAIN_DOMAIN} { |  | ||||||
| 	redir https://git.{$MAIN_DOMAIN}{uri} permanent |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| gitea.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy gitea:3000 |  | ||||||
| } |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| (header_common) { |  | ||||||
| 	Permissions-Policy: geolocation=(), camera=(), microphone=(), clipboard-read=(), usb=() |  | ||||||
| 	Strict-Transport-Security: max-age=31536000; includeSubDomains |  | ||||||
| 	X-Content-Type-Options: nosniff |  | ||||||
| 	X-Frame-Options: DENY |  | ||||||
| 	Referrer-Policy: strict-origin-when-cross-origin |  | ||||||
| 	# Only useful for old browsers |  | ||||||
| 	X-XSS-Protection: "1; mode=block" |  | ||||||
|  |  | ||||||
| 	# Can cause issues with external resources |  | ||||||
| 	#Cross-Origin-Embedder-Policy: require-corp |  | ||||||
| 	Cross-Origin-Opener-Policy: same-origin |  | ||||||
| 	#Cross-Origin-Resource-Policy: same-origin |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| homepage.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy homepage:3000 |  | ||||||
| } |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| it-tools.{$MAIN_DOMAIN} { |  | ||||||
| 	# Load balance between 2 instances |  | ||||||
| 	reverse_proxy { |  | ||||||
| 		to it-tools0:8080 it-tools1:8080 |  | ||||||
| 		lb_policy round_robin |  | ||||||
| 		lb_retries 3 |  | ||||||
| 		lb_try_interval 1s |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| jellyfin.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy jellyfin:8096 |  | ||||||
| } |  | ||||||
| @@ -1,27 +0,0 @@ | |||||||
| www.{$MAIN_DOMAIN} { |  | ||||||
| 	header { |  | ||||||
| 		Cache-Control "public, max-age=10" |  | ||||||
| 		import header_common |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	handle_errors { |  | ||||||
| 		@notFound expression `{http.error.status_code} == 404` |  | ||||||
| 		redir @notFound https://www.{$MAIN_DOMAIN} permanent |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	reverse_proxy homepage:3000 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| {$MAIN_DOMAIN} { |  | ||||||
| 	redir https://www.{host}{uri} permanent |  | ||||||
| } |  | ||||||
|  |  | ||||||
| public.{$MAIN_DOMAIN} { |  | ||||||
| 	root * /public_data |  | ||||||
| 	file_server browse |  | ||||||
|  |  | ||||||
| 	header / { |  | ||||||
| 		Cache-Control "no-store" |  | ||||||
| 		import header_common |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| memos.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy memos:5230 |  | ||||||
| } |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| omni-tools.{$MAIN_DOMAIN} { |  | ||||||
| 	# Load balance between 2 instances |  | ||||||
| 	reverse_proxy { |  | ||||||
| 		to omni-tools0:80 omni-tools1:80 |  | ||||||
| 		lb_policy round_robin |  | ||||||
| 		lb_retries 3 |  | ||||||
| 		lb_try_interval 1s |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| open-webui.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy open-webui:8080 |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| picoshare.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy picoshare:4001 |  | ||||||
| } |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| privatebin.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy privatebin:8080 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pastebin.{$MAIN_DOMAIN} { |  | ||||||
| 	redir https://privatebin.{$MAIN_DOMAIN} permanent |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| projectsend.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy projectsend:80 |  | ||||||
| } |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| transfer.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy psitransfer:3000 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| psitransfer.{$MAIN_DOMAIN} { |  | ||||||
| 	redir https://transfer.{$MAIN_DOMAIN}{uri} permanent |  | ||||||
| } |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| torrent.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy qbittorrent:8080 |  | ||||||
| 	header { |  | ||||||
| 		Cache-Control "no-store" |  | ||||||
| 		import header_common |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| qbittorrent.{$MAIN_DOMAIN} { |  | ||||||
| 	redir https://torrent.{$MAIN_DOMAIN} permanent |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| stirlingpdf.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy stirlingpdf:8080 |  | ||||||
| } |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| syncthing.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy syncthing:8384 { |  | ||||||
| 		header_up Host {upstream_hostport} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| transmission.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy transmission:9091 |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| uptimekuma.{$MAIN_DOMAIN} { |  | ||||||
| 	reverse_proxy uptime-kuma:3001 |  | ||||||
| } |  | ||||||
| @@ -1,34 +0,0 @@ | |||||||
| wordpress.{$MAIN_DOMAIN} { |  | ||||||
| 	root * /var/www/html |  | ||||||
| 	php_fastcgi wordpress:9000 |  | ||||||
|  |  | ||||||
| 	file_server |  | ||||||
| 	encode zstd gzip |  | ||||||
|  |  | ||||||
| 	@disallowed { |  | ||||||
| 		path /xmlrpc.php |  | ||||||
| 		path *.sql |  | ||||||
| 		path /wp-content/uploads/*.php |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	rewrite @disallowed '/index.php' |  | ||||||
|  |  | ||||||
| 	respond /uploads/*.php 404 |  | ||||||
|  |  | ||||||
| 	header { |  | ||||||
| 		# disable FLoC tracking |  | ||||||
| 		Permissions-Policy interest-cohort=() |  | ||||||
|  |  | ||||||
| 		# enable HSTS |  | ||||||
| 		Strict-Transport-Security max-age=31536000; |  | ||||||
|  |  | ||||||
| 		# disable clients from sniffing the media type |  | ||||||
| 		X-Content-Type-Options nosniff |  | ||||||
|  |  | ||||||
| 		# clickjacking protection |  | ||||||
| 		# X-Frame-Options DENY |  | ||||||
|  |  | ||||||
| 		# Disable powerful features we don't need |  | ||||||
| 		Permissions-Policy "geolocation=(), camera=(), microphone=() interest-cohort=()" |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,65 +0,0 @@ | |||||||
| services: |  | ||||||
|   # Caddy |  | ||||||
|   caddy: |  | ||||||
|     image: caddy:latest |  | ||||||
|     container_name: caddy |  | ||||||
|     profiles: |  | ||||||
|       - caddy |  | ||||||
|     depends_on: |  | ||||||
|       main_infrastructure: |  | ||||||
|         condition: service_completed_successfully |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     ports: |  | ||||||
|       - 80:80/tcp |  | ||||||
|       - 80:80/udp |  | ||||||
|       - 443:443/tcp |  | ||||||
|       - 443:443/udp |  | ||||||
|     volumes: |  | ||||||
|       - caddy_data:/data:rw |  | ||||||
|       - caddy_config:/config:rw |  | ||||||
|       - ./config:/etc/caddy:ro |  | ||||||
|       - wordpress:/var/www/html:rw |  | ||||||
|       - public_data:/public_data:ro |  | ||||||
|  |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     env_file: |  | ||||||
|       - ./env/caddy.env |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     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: |  | ||||||
|       - ./env/caddy_backup.env |  | ||||||
|     volumes: |  | ||||||
|       - caddy_backup:/mnt/restic |  | ||||||
|       - caddy_data:/data:ro |  | ||||||
|     network_mode: none |  | ||||||
|     cap_drop: |  | ||||||
|       - NET_ADMIN |  | ||||||
|       - NET_RAW |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   caddy_data: |  | ||||||
|     name: caddy_data |  | ||||||
|   caddy_config: |  | ||||||
|     name: caddy_config |  | ||||||
|   caddy_backup: |  | ||||||
|     name: caddy_backup |  | ||||||
|   wordpress: |  | ||||||
|     name: wordpress |  | ||||||
|   public_data: |  | ||||||
|     name: public_data |  | ||||||
							
								
								
									
										2
									
								
								infrastructure/services/caddy/env/caddy.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								infrastructure/services/caddy/env/caddy.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +0,0 @@ | |||||||
| MAIN_DOMAIN=bensuperpc.org |  | ||||||
| MAIL_DOMAIN=bensuperpc@gmail.com |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| #RUN_ON_STARTUP=true |  | ||||||
| RESTIC_REPOSITORY=/mnt/restic |  | ||||||
| RESTIC_BACKUP_SOURCES=/data |  | ||||||
| RESTIC_PASSWORD=YFQh8v3Wi95v0p6h88D4u8C8z4gLfdMw |  | ||||||
| # Backup (exuclusive with Check and Prune) |  | ||||||
| BACKUP_CRON=*/30 * * * * |  | ||||||
| RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose |  | ||||||
| #RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 4 |  | ||||||
| # Check (exuclusive with Check and Prune) |  | ||||||
| #CHECK_CRON=*/30 * * * * |  | ||||||
| #RESTIC_CHECK_ARGS=--read-data-subset=40% |  | ||||||
| # Prune (exuclusive with Check and Prune) |  | ||||||
| #PRUNE_CRON=*/30 * * * * |  | ||||||
| #RESTIC_PRUNE_ARGS= |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| services: |  | ||||||
|   # cyberchef |  | ||||||
|   cyberchef0: |  | ||||||
|     image: mpepping/cyberchef:latest |  | ||||||
|     container_name: cyberchef0 |  | ||||||
|     profiles: |  | ||||||
|       - cyberchef |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     read_only: false |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
|     deploy: |  | ||||||
|       resources: |  | ||||||
|         limits: |  | ||||||
|           cpus: '0.5' |  | ||||||
|           memory: 512M |  | ||||||
|         reservations: |  | ||||||
|           cpus: '0.001' |  | ||||||
|           memory: 20M |  | ||||||
|  |  | ||||||
|   cyberchef1: |  | ||||||
|     image: mpepping/cyberchef:latest |  | ||||||
|     container_name: cyberchef1 |  | ||||||
|     profiles: |  | ||||||
|       - cyberchef |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     read_only: false |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
|     deploy: |  | ||||||
|       resources: |  | ||||||
|         limits: |  | ||||||
|           cpus: '0.5' |  | ||||||
|           memory: 512M |  | ||||||
|         reservations: |  | ||||||
|           cpus: '0.001' |  | ||||||
|           memory: 20M |  | ||||||
| @@ -1,25 +0,0 @@ | |||||||
| services: |  | ||||||
|   # dufs |  | ||||||
|   dufs: |  | ||||||
|     image: sigoden/dufs:latest |  | ||||||
|     container_name: dufs |  | ||||||
|     profiles: |  | ||||||
|       - dufs |  | ||||||
|     user: ${PUID:-1000}:${PGID:-1000}  |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./env/dufs.env |  | ||||||
|     volumes: |  | ||||||
|       - public_data:/data |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   public_data: |  | ||||||
|     name: public_data |  | ||||||
|   private_data: |  | ||||||
|     name: private_data |  | ||||||
							
								
								
									
										7
									
								
								infrastructure/services/dufs/env/dufs.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								infrastructure/services/dufs/env/dufs.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +0,0 @@ | |||||||
| DUFS_BIND=0.0.0.0 |  | ||||||
| DUFS_PORT=5000 |  | ||||||
| DUFS_SERVE_PATH=/data |  | ||||||
| DUFS_HIDDEN=tmp,*.log,*.lock |  | ||||||
| DUFS_ALLOW_ALL=true |  | ||||||
| DUFS_COMPRESS=medium |  | ||||||
| DUFS_AUTH="admin:heqihlOfBmJDESGFlpbPi7P7Mi6F7RkV@/:rw|@/:ro" |  | ||||||
| @@ -1,96 +0,0 @@ | |||||||
| services: |  | ||||||
|   # forgejo |  | ||||||
|   forgejo: |  | ||||||
|     image: codeberg.org/forgejo/forgejo:12-rootless |  | ||||||
|     container_name: forgejo |  | ||||||
|     profiles: |  | ||||||
|       - forgejo |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - database_forgejo |  | ||||||
|       - caddy |  | ||||||
|     ports: |  | ||||||
|       - "22:2222" |  | ||||||
|     env_file: |  | ||||||
|       - ./env/forgejo.env |  | ||||||
|     volumes: |  | ||||||
|       - forgejo_data:/var/lib/gitea |  | ||||||
|       - forgejo_config:/etc/gitea |  | ||||||
|       - /etc/timezone:/etc/timezone:ro |  | ||||||
|       - /etc/localtime:/etc/localtime:ro |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     user: ${PUID:-1000}:${PGID:-1000}  |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|    |  | ||||||
|   # Database forgejo |  | ||||||
|   database_forgejo: |  | ||||||
|     image: mariadb:latest |  | ||||||
|     container_name: database_forgejo |  | ||||||
|     profiles: |  | ||||||
|       - forgejo |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     volumes: |  | ||||||
|       - forgejo_db:/var/lib/mysql:rw |  | ||||||
|     env_file: |  | ||||||
|       - ./env/forgejo_db.env |  | ||||||
|     command: '--default-authentication-plugin=mysql_native_password' |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
|   # forgejo-runner |  | ||||||
|   docker-in-docker: |  | ||||||
|     image: code.forgejo.org/oci/docker:dind |  | ||||||
|     container_name: 'docker_dind' |  | ||||||
|     hostname: docker |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     profiles: |  | ||||||
|       - forgejo-runner |  | ||||||
|     privileged: true |  | ||||||
|     environment: |  | ||||||
|       DOCKER_TLS_CERTDIR: /certs |  | ||||||
|       DOCKER_HOST: docker-in-docker |  | ||||||
|     volumes: |  | ||||||
|       - forgejo_certs:/certs |  | ||||||
|  |  | ||||||
|   forgejo_runner: |  | ||||||
|     image: data.forgejo.org/forgejo/runner:9 |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     profiles: |  | ||||||
|       - forgejo-runner |  | ||||||
|     links: |  | ||||||
|       - docker-in-docker |  | ||||||
|     depends_on: |  | ||||||
|       docker-in-docker: |  | ||||||
|         condition: service_started |  | ||||||
|     container_name: 'forgejo_runner' |  | ||||||
|     env_file: |  | ||||||
|       - ./env/forgejo_runner.env |  | ||||||
|     user: ${PUID:-1000}:${PGID:-1000}  |  | ||||||
|     volumes: |  | ||||||
| #      - ./config/forgejo_runner/config.yaml:/config.yaml:ro |  | ||||||
|       - forgejo_runner:/data |  | ||||||
|       - forgejo_certs:/certs |  | ||||||
|     restart: 'unless-stopped' |  | ||||||
|  |  | ||||||
| #    command: '/bin/sh -c "while : ; do sleep 1 ; done ;"' |  | ||||||
|     command: '/bin/sh -c "sleep 5; forgejo-runner -c /data/config.yml daemon"' |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   forgejo_data: |  | ||||||
|     name: forgejo_data |  | ||||||
|   forgejo_config: |  | ||||||
|     name: forgejo_config |  | ||||||
|   forgejo_db: |  | ||||||
|     name: forgejo_db |  | ||||||
|   forgejo_certs: |  | ||||||
|     name: forgejo_certs |  | ||||||
|   forgejo_runner: |  | ||||||
|     name: forgejo_runner |  | ||||||
							
								
								
									
										25
									
								
								infrastructure/services/forgejo/env/forgejo.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								infrastructure/services/forgejo/env/forgejo.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,25 +0,0 @@ | |||||||
| USER_UID=1000 |  | ||||||
| USER_GID=1000 |  | ||||||
| FORGEJO__database__DB_TYPE=mysql |  | ||||||
| FORGEJO__database__HOST=database_forgejo:3306 |  | ||||||
| FORGEJO__database__NAME=forgejo |  | ||||||
| FORGEJO__database__USER=bensuperpc |  | ||||||
| FORGEJO__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j |  | ||||||
| FORGEJO__APP_NAME=Bensuperpc's Forgejo |  | ||||||
| FORGEJO__APP_SLOGAN=Personal Code, Mirrors, and More |  | ||||||
| FORGEJO__server__DOMAIN=git.bensuperpc.org |  | ||||||
| FORGEJO__server__SSH_DOMAIN=git.bensuperpc.org |  | ||||||
| FORGEJO__server__HTTP_PORT=3000 |  | ||||||
| FORGEJO__server__SSH_LISTEN_PORT=2222 |  | ||||||
| FORGEJO__server__SSH_PORT=22 |  | ||||||
| FORGEJO__server__ROOT_URL=https://git.bensuperpc.org |  | ||||||
| FORGEJO__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c |  | ||||||
| #FORGEJO__security__INTERNAL_TOKEN= |  | ||||||
| #FORGEJO__security__INSTALL_LOCK=true |  | ||||||
| FORGEJO__security__MIN_PASSWORD_LENGTH=8 |  | ||||||
| FORGEJO__actions__ENABLED=true |  | ||||||
| FORGEJO__actions__DEFAULT_ACTIONS_URL="https://git.bensuperpc.org" |  | ||||||
| #FORGEJO__log__LEVEL: "debug" |  | ||||||
| FORGEJO__repository__ENABLE_PUSH_CREATE_USER=true |  | ||||||
| FORGEJO__repository__DEFAULT_PUSH_CREATE_PRIVATE=false |  | ||||||
| FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code,repo.actions |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| MARIADB_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X |  | ||||||
| MARIADB_USER=bensuperpc |  | ||||||
| MARIADB_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j |  | ||||||
| MARIADB_DATABASE=forgejo |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| DOCKER_HOST=tcp://docker:2376 |  | ||||||
| DOCKER_CERT_PATH=/certs/client |  | ||||||
| DOCKER_TLS_VERIFY=1 |  | ||||||
| @@ -1,98 +0,0 @@ | |||||||
| # 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,73 +0,0 @@ | |||||||
| services: |  | ||||||
|   # Gitea |  | ||||||
|   gitea: |  | ||||||
|     image: gitea/gitea:latest-rootless |  | ||||||
|     container_name: gitea |  | ||||||
|     profiles: |  | ||||||
|       - gitea |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - database_gitea |  | ||||||
|       - caddy |  | ||||||
|     ports: |  | ||||||
|       - "5555:5555" |  | ||||||
|     env_file: |  | ||||||
|       - ./env/gitea.env |  | ||||||
|     volumes: |  | ||||||
|       - gitea_data:/var/lib/gitea |  | ||||||
|       - gitea_config:/etc/gitea |  | ||||||
|       - /etc/timezone:/etc/timezone:ro |  | ||||||
|       - /etc/localtime:/etc/localtime:ro |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|    |  | ||||||
|   # Database gitea |  | ||||||
|   database_gitea: |  | ||||||
|     image: mariadb:latest |  | ||||||
|     container_name: database_gitea |  | ||||||
|     profiles: |  | ||||||
|       - gitea |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     volumes: |  | ||||||
|       - gitea_db:/var/lib/mysql:rw |  | ||||||
|     env_file: |  | ||||||
|       - ./env/gitea_db.env |  | ||||||
|     command: '--default-authentication-plugin=mysql_native_password' |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
|   # Gitea-runner |  | ||||||
|   gitea-runner: |  | ||||||
|     image: gitea/act_runner:latest |  | ||||||
|     container_name: gitea-runner |  | ||||||
|     profiles: |  | ||||||
|       - gitea-runner |  | ||||||
|     depends_on: |  | ||||||
|       - gitea |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     env_file: |  | ||||||
|       - ./env/gitea-runner.env |  | ||||||
|     volumes: |  | ||||||
|       - /var/run/docker.sock:/var/run/docker.sock |  | ||||||
|       - gitea_runner:/data |  | ||||||
|       - ./config/gitea_runner/config.yaml:/config.yaml:ro |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   gitea_data: |  | ||||||
|     name: gitea_data |  | ||||||
|   gitea_config: |  | ||||||
|     name: gitea_config |  | ||||||
|   gitea_db: |  | ||||||
|     name: gitea_db |  | ||||||
|   gitea_runner: |  | ||||||
|     name: gitea_runner |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| 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/services/gitea/env/gitea.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								infrastructure/services/gitea/env/gitea.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,15 +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 |  | ||||||
| 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=5555 |  | ||||||
| GITEA__server__SSH_PORT=5555 |  | ||||||
| GITEA__server__ROOT_URL=https://git.bensuperpc.org |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| MARIADB_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X |  | ||||||
| MARIADB_USER=bensuperpc |  | ||||||
| MARIADB_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j |  | ||||||
| MARIADB_DATABASE=gitea |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| --- |  | ||||||
| # For configuration options and examples, please see: |  | ||||||
| # https://gethomepage.dev/configs/bookmarks |  | ||||||
|  |  | ||||||
| - Developer: |  | ||||||
|     - Github: |  | ||||||
|         - abbr: GH |  | ||||||
|           href: https://github.com/bensuperpc |  | ||||||
|           description: github.com |  | ||||||
|  |  | ||||||
| - Social: |  | ||||||
|     - Reddit: |  | ||||||
|         - abbr: RE |  | ||||||
|           href: https://reddit.com/u/bensuperpc |  | ||||||
|           description: reddit.com |  | ||||||
|     - Twitter: |  | ||||||
|         - abbr: TW |  | ||||||
|           href: https://twitter.com/bensuperpc |  | ||||||
|           description: twitter.com |  | ||||||
|     - Bluesky: |  | ||||||
|         - abbr: BS |  | ||||||
|           href: https://bsky.app/profile/bensuperpc.bsky.social |  | ||||||
|           description: bsky.app |  | ||||||
|     - Mastodon: |  | ||||||
|         - abbr: MA |  | ||||||
|           href: https://mastodon.social/@bensuperpc |  | ||||||
|           description: mastodon.social |  | ||||||
|  |  | ||||||
| - Entertainment: |  | ||||||
|     - YouTube: |  | ||||||
|         - abbr: YT |  | ||||||
|           href: https://youtube.com/c/bensuperpc |  | ||||||
|           description: youtube.com |  | ||||||
|     - Twitch: |  | ||||||
|         - abbr: TW |  | ||||||
|           href: https://twitch.tv/bensuperpc |  | ||||||
|           description: twitch.tv |  | ||||||
|  |  | ||||||
| - Friends: |  | ||||||
|     - Gnous: |  | ||||||
|         - abbr: Gn |  | ||||||
|           href: https://gnous.eu/ |  | ||||||
|           description: gnous.eu |  | ||||||
|     - Imagisphe: |  | ||||||
|         - abbr: IM |  | ||||||
|           href: https://imagisphe.re/ |  | ||||||
|           description: imagisphe.re |  | ||||||
|     - Greep: |  | ||||||
|         - abbr: GP |  | ||||||
|           href: https://greep.fr/#/ |  | ||||||
|           description: greep.fr |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| --- |  | ||||||
| # For configuration options and examples, please see: |  | ||||||
| # https://gethomepage.dev/configs/docker |  | ||||||
|  |  | ||||||
| #jellyfin: |  | ||||||
| #  host: jellyfin |  | ||||||
| #  port: 8096 |  | ||||||
|  |  | ||||||
| #my-docker: |  | ||||||
| #   socket: /var/run/docker.sock |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| --- |  | ||||||
| # sample kubernetes config |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| --- |  | ||||||
| # url: https://proxmox.host.or.ip:8006 |  | ||||||
| # token: username@pam!Token ID |  | ||||||
| # secret: secret |  | ||||||
| @@ -1,145 +0,0 @@ | |||||||
| --- |  | ||||||
| # For configuration options and examples, please see: |  | ||||||
| # https://gethomepage.dev/configs/services/ |  | ||||||
|  |  | ||||||
| - Personal: |  | ||||||
|     - wordpress: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/wordpress.png |  | ||||||
|         href: https://wordpress.bensuperpc.org/ |  | ||||||
|         description: Wordpress |  | ||||||
|         ping: wordpress.bensuperpc.org |  | ||||||
|         container: wordpress |  | ||||||
|     - jellyfin: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/jellyfin.png |  | ||||||
|         href: https://jellyfin.bensuperpc.org/ |  | ||||||
|         description: Jellyfin |  | ||||||
|         ping: jellyfin.bensuperpc.org |  | ||||||
|         container: jellyfin |  | ||||||
|     - projectsend: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/projectsend.png |  | ||||||
|         href: https://projectsend.bensuperpc.org/ |  | ||||||
|         description: ProjectSend |  | ||||||
|         ping: projectsend.bensuperpc.org |  | ||||||
|         container: projectsend |  | ||||||
| - Sharing: |  | ||||||
|     - psitransfer: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/psitransfer.png |  | ||||||
|         href: https://psitransfer.bensuperpc.org/ |  | ||||||
|         description: PsiTransfer |  | ||||||
|         ping: psitransfer.bensuperpc.org |  | ||||||
|         container: psitransfer |  | ||||||
|     - picoshare: |  | ||||||
| #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/picoshare.png |  | ||||||
|         href: https://picoshare.bensuperpc.org/ |  | ||||||
|         description: PicoShare |  | ||||||
|         ping: picoshare.bensuperpc.org |  | ||||||
|         container: picoshare |  | ||||||
|     - privatebin: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/privatebin.png |  | ||||||
|         href: https://privatebin.bensuperpc.org/ |  | ||||||
|         description: PrivateBin |  | ||||||
|         ping: privatebin.bensuperpc.org |  | ||||||
|         container: privatebin |  | ||||||
|     - qbittorrent: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/qbittorrent.png |  | ||||||
|         href: https://qbittorrent.bensuperpc.org/ |  | ||||||
|         description: qBittorrent |  | ||||||
|         ping: qbittorrent.bensuperpc.org |  | ||||||
|         container: qbittorrent |  | ||||||
|     - syncthing: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/syncthing.png |  | ||||||
|         href: https://syncthing.bensuperpc.org/ |  | ||||||
|         description: Syncthing |  | ||||||
|         ping: syncthing.bensuperpc.org |  | ||||||
|         container: syncthing |  | ||||||
|     - transmission: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/transmission.png |  | ||||||
|         href: https://transmission.bensuperpc.org/ |  | ||||||
|         description: Transmission |  | ||||||
|         ping: transmission.bensuperpc.org |  | ||||||
|         container: transmission |  | ||||||
|     - dufs: |  | ||||||
| #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/dufs.png |  | ||||||
|         href: https://dufs.bensuperpc.org/ |  | ||||||
|         description: Dufs |  | ||||||
|         ping: dufs.bensuperpc.org |  | ||||||
|         container: dufs |  | ||||||
| #    - caddy: |  | ||||||
| #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/caddy.png |  | ||||||
| #        href: https://public.bensuperpc.org/ |  | ||||||
| #        description: File browser |  | ||||||
| #        ping: public.bensuperpc.org |  | ||||||
| #        container: caddy |  | ||||||
|  |  | ||||||
| - 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 |  | ||||||
|     - omni-tools: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/it-tools.png |  | ||||||
|         href: https://omni-tools.bensuperpc.org/ |  | ||||||
|         description: Omni Tools |  | ||||||
|         ping: omni-tools.bensuperpc.org |  | ||||||
|         container: omni-tools0 |  | ||||||
|     - cyberchef: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/cyberchef.png |  | ||||||
|         href: https://cyberchef.bensuperpc.org/ |  | ||||||
|         description: CyberChef |  | ||||||
|         ping: cyberchef.bensuperpc.org |  | ||||||
|         container: cyberchef0 |  | ||||||
|     - 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 |  | ||||||
|     - forgejo: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/forgejo.png |  | ||||||
|         href: https://forgejo.bensuperpc.org/ |  | ||||||
|         description: Forgejo |  | ||||||
|         ping: forgejo.bensuperpc.org |  | ||||||
|         container: forgejo |  | ||||||
|     - open-webui: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/open-webui.png |  | ||||||
|         href: https://open-webui.bensuperpc.org/ |  | ||||||
|         description: ChatGPT local |  | ||||||
|         ping: open-webui.bensuperpc.org |  | ||||||
|         container: open-webui |  | ||||||
|  |  | ||||||
| - 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: 7daystodie_server |  | ||||||
|     - satisfactory: |  | ||||||
| #        icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/7dtd.png |  | ||||||
| #        href: https://7dtd.bensuperpc.org/ |  | ||||||
|         description: Satisfactory server |  | ||||||
| #        ping: 7dtd.bensuperpc.org |  | ||||||
|         container: satisfactory_server |  | ||||||
|  |  | ||||||
| - Admin: |  | ||||||
|     - uptime-kuma: |  | ||||||
|         icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/uptime-kuma.png |  | ||||||
|         href: https://uptimekuma.bensuperpc.org/ |  | ||||||
|         description: Uptime Kuma |  | ||||||
|         ping: uptimekuma.bensuperpc.org |  | ||||||
|         container: uptime-kuma |  | ||||||
|  |  | ||||||
| @@ -1,58 +0,0 @@ | |||||||
| --- |  | ||||||
| # For configuration options and examples, please see: |  | ||||||
| # https://gethomepage.dev/configs/settings/ |  | ||||||
|  |  | ||||||
| title: Bensuperpc |  | ||||||
|  |  | ||||||
| description: Bensuperpc's homepage |  | ||||||
|  |  | ||||||
| base: https://www.bensuperpc.org |  | ||||||
|  |  | ||||||
| favicon: /image/favicon.ico |  | ||||||
|  |  | ||||||
| logpath: /app/logs |  | ||||||
|  |  | ||||||
| background:  |  | ||||||
|   image: /image/background.jpg |  | ||||||
|   blur: md |  | ||||||
|   opacity: 50 |  | ||||||
|   brightness: 50 |  | ||||||
|  |  | ||||||
| theme: dark |  | ||||||
| color: slate |  | ||||||
|  |  | ||||||
| language: en |  | ||||||
|  |  | ||||||
| layout: |  | ||||||
|   Personal: |  | ||||||
|     style: row |  | ||||||
|     columns: 6 |  | ||||||
|   Sharing: |  | ||||||
|     style: row |  | ||||||
|     columns: 6 |  | ||||||
|   Admin: |  | ||||||
|     style: row |  | ||||||
|     columns: 6 |  | ||||||
|   Utils: |  | ||||||
|     style: row |  | ||||||
|     columns: 6 |  | ||||||
|     initiallyCollapsed: false |  | ||||||
|   Games: |  | ||||||
|     style: row |  | ||||||
|     columns: 6 |  | ||||||
|     initiallyCollapsed: false |  | ||||||
|  |  | ||||||
| quicklaunch: |  | ||||||
|   searchDescriptions: true |  | ||||||
|   hideInternetSearch: false |  | ||||||
|   hideVisitURL: false |  | ||||||
|  |  | ||||||
| hideVersion: true |  | ||||||
|  |  | ||||||
| headerStyle: boxed |  | ||||||
|  |  | ||||||
| useEqualHeights: true |  | ||||||
|  |  | ||||||
| #providers: |  | ||||||
| #  openweathermap: openweathermapapikey |  | ||||||
| #  weatherapi: weatherapiapikey |  | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| --- |  | ||||||
| # For configuration options and examples, please see: |  | ||||||
| # https://gethomepage.dev/widgets/services/ |  | ||||||
| # https://gethomepage.dev/widgets/services/qbittorrent/ |  | ||||||
|  |  | ||||||
| #- logo: |  | ||||||
| #    icon: /image/daisy.jpg |  | ||||||
|  |  | ||||||
| - resources: |  | ||||||
|     cpu: true |  | ||||||
|     cputemp: true |  | ||||||
|     memory: true |  | ||||||
|     disk: / |  | ||||||
|     uptime: true |  | ||||||
|     refresh: 3000 |  | ||||||
|  |  | ||||||
| #- search: |  | ||||||
| #    provider: duckduckgo |  | ||||||
| #    target: _blank |  | ||||||
| #    showSearchSuggestions: true |  | ||||||
|  |  | ||||||
| - datetime: |  | ||||||
|     text_size: xl |  | ||||||
|     locale: fr |  | ||||||
|     format: |  | ||||||
|         timeStyle: short |  | ||||||
|         dateStyle: short |  | ||||||
|  |  | ||||||
| - openmeteo: |  | ||||||
|     label: Nantes # optional |  | ||||||
|     latitude: 47.216671 |  | ||||||
|     longitude: -1.55 |  | ||||||
|     timezone: Europe/Paris # optional |  | ||||||
|     units: metric # or imperial |  | ||||||
|     cache: 5 # Time in minutes to cache API responses, to stay within limits |  | ||||||
|     format: # optional, Intl.NumberFormat options |  | ||||||
|       maximumFractionDigits: 1 |  | ||||||
| @@ -1,33 +0,0 @@ | |||||||
| services: |  | ||||||
|   # homepage |  | ||||||
|   homepage: |  | ||||||
|     image: ghcr.io/gethomepage/homepage:latest |  | ||||||
|     container_name: homepage |  | ||||||
|     profiles: |  | ||||||
|       - homepage |  | ||||||
|     restart: on-failure:5 |  | ||||||
| #    environment: |  | ||||||
| #      - PUID=${PUID:-1000} |  | ||||||
| #      - PGID=${PGID:-1000} |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./env/homepage.env |  | ||||||
|     volumes: |  | ||||||
|       - homepage_log:/app/logs |  | ||||||
|       - ./config:/app/config |  | ||||||
|       - ./image:/app/public/image:ro |  | ||||||
|       - /var/run/docker.sock:/var/run/docker.sock:ro |  | ||||||
| #    develop: |  | ||||||
| #      watch: |  | ||||||
| #        - action: sync+restart |  | ||||||
| #          path: ./homepage/image |  | ||||||
| #          target: /app/public/image |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   homepage_log: |  | ||||||
|     name: homepage_log |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn |  | ||||||
| #PSITRANSFER_PORT=3000 |  | ||||||
| HOMEPAGE_ALLOWED_HOSTS=www.bensuperpc.org |  | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 569 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 51 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 295 KiB | 
| @@ -1,51 +0,0 @@ | |||||||
| services: |  | ||||||
|   # it-tools |  | ||||||
|   it-tools0: |  | ||||||
|     image: ghcr.io/sharevb/it-tools:latest |  | ||||||
|     container_name: it-tools0 |  | ||||||
|     profiles: |  | ||||||
|       - it-tools |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     read_only: false |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
|     deploy: |  | ||||||
|       resources: |  | ||||||
|         limits: |  | ||||||
|           cpus: '0.5' |  | ||||||
|           memory: 512M |  | ||||||
|         reservations: |  | ||||||
|           cpus: '0.001' |  | ||||||
|           memory: 20M |  | ||||||
|  |  | ||||||
|   it-tools1: |  | ||||||
|     image: ghcr.io/sharevb/it-tools:latest |  | ||||||
|     container_name: it-tools1 |  | ||||||
|     profiles: |  | ||||||
|       - it-tools |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     read_only: false |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
|     deploy: |  | ||||||
|       resources: |  | ||||||
|         limits: |  | ||||||
|           cpus: '0.5' |  | ||||||
|           memory: 512M |  | ||||||
|         reservations: |  | ||||||
|           cpus: '0.001' |  | ||||||
|           memory: 20M |  | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| services: |  | ||||||
|   # Jellyfin |  | ||||||
|   jellyfin: |  | ||||||
|     image: lscr.io/linuxserver/jellyfin:latest |  | ||||||
|     container_name: jellyfin |  | ||||||
|     profiles: |  | ||||||
|       - jellyfin |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     environment: |  | ||||||
|       - PUID=${PUID:-1000} |  | ||||||
|       - PGID=${PGID:-1000} |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./env/jellyfin.env |  | ||||||
|     volumes: |  | ||||||
|       - jellyfin_config:/config |  | ||||||
|       - jellyfin_cache:/cache |  | ||||||
|       - public_data:/public |  | ||||||
|       - private_data:/private |  | ||||||
|     # Hardware acceleration (For Intel and AMD GPUs) |  | ||||||
|     devices: |  | ||||||
|       - /dev/dri:/dev/dri |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   jellyfin_config: |  | ||||||
|     name: jellyfin_config |  | ||||||
|   jellyfin_cache: |  | ||||||
|     name: jellyfin_cache |  | ||||||
|   public_data: |  | ||||||
|     name: public_data |  | ||||||
|   private_data: |  | ||||||
|     name: private_data |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| TZ=Etc/UTC |  | ||||||
| DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel |  | ||||||
| @@ -1,34 +0,0 @@ | |||||||
| services: |  | ||||||
|   main_infrastructure: |  | ||||||
|     container_name: main_infrastructure |  | ||||||
|     image: alpine:latest |  | ||||||
|     profiles: |  | ||||||
|       - main_infrastructure |  | ||||||
|     volumes: |  | ||||||
|       - public_data:/public_data:rw |  | ||||||
|       - private_data:/private_data:rw |  | ||||||
|     read_only: true |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     cap_drop: |  | ||||||
|       - ALL |  | ||||||
|     cap_add: |  | ||||||
|       - CHOWN |  | ||||||
|       - DAC_OVERRIDE |  | ||||||
|     # Fix root permissions on mounted volumes |  | ||||||
|     command: chown -R ${PUID:-1000}:${PGID:-1000} /public_data /private_data |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   public_data: |  | ||||||
|     name: public_data |  | ||||||
|   private_data: |  | ||||||
|     name: private_data |  | ||||||
|  |  | ||||||
| networks: |  | ||||||
|   infra-network: |  | ||||||
|     driver: bridge |  | ||||||
|     name: infra-network |  | ||||||
|   intern-network: |  | ||||||
|     driver: bridge |  | ||||||
|     internal: true |  | ||||||
|     name: intern-network |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| services: |  | ||||||
|   # memos |  | ||||||
|   memos: |  | ||||||
|     image: neosmemo/memos:latest |  | ||||||
|     container_name: memos |  | ||||||
|     profiles: |  | ||||||
|       - memos |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./env/memos.env |  | ||||||
|     volumes: |  | ||||||
|       - memos_config:/var/opt/memos |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   memos_config: |  | ||||||
|     name: memos_config |  | ||||||
							
								
								
									
										1
									
								
								infrastructure/services/memos/env/memos.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								infrastructure/services/memos/env/memos.env
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
|  |  | ||||||
 Submodule infrastructure/services/minecraft-server deleted from d9509579ca
									
								
							| @@ -1,51 +0,0 @@ | |||||||
| services: |  | ||||||
|   # omni-tools |  | ||||||
|   omni-tools0: |  | ||||||
|     image: iib0011/omni-tools:latest |  | ||||||
|     container_name: omni-tools0 |  | ||||||
|     profiles: |  | ||||||
|       - omni-tools |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     read_only: false |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
|     deploy: |  | ||||||
|       resources: |  | ||||||
|         limits: |  | ||||||
|           cpus: '0.5' |  | ||||||
|           memory: 512M |  | ||||||
|         reservations: |  | ||||||
|           cpus: '0.001' |  | ||||||
|           memory: 20M |  | ||||||
|  |  | ||||||
|   omni-tools1: |  | ||||||
|     image: iib0011/omni-tools:latest |  | ||||||
|     container_name: omni-tools1 |  | ||||||
|     profiles: |  | ||||||
|       - omni-tools |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     read_only: false |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
|     deploy: |  | ||||||
|       resources: |  | ||||||
|         limits: |  | ||||||
|           cpus: '0.5' |  | ||||||
|           memory: 512M |  | ||||||
|         reservations: |  | ||||||
|           cpus: '0.001' |  | ||||||
|           memory: 20M |  | ||||||
| @@ -1,42 +0,0 @@ | |||||||
| services: |  | ||||||
|   ollama: |  | ||||||
|     image: ollama/ollama:latest |  | ||||||
|     #platform: linux/amd64 |  | ||||||
|     container_name: ollama |  | ||||||
|     profiles: |  | ||||||
|       - open-webui |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     tty: true |  | ||||||
|     volumes: |  | ||||||
|       - ollama:/root/.ollama |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|  |  | ||||||
|   open-webui: |  | ||||||
|     image: ghcr.io/open-webui/open-webui:main |  | ||||||
|     container_name: open-webui |  | ||||||
|     profiles: |  | ||||||
|       - open-webui |  | ||||||
|     volumes: |  | ||||||
|       - open-webui:/app/backend/data |  | ||||||
|     depends_on: |  | ||||||
|       - ollama |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./env/open-webui.env |  | ||||||
|     #environment: |  | ||||||
|     #  - UID=${PUID:-1000} |  | ||||||
|     #  - GID=${PGID:-1000} |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   ollama: {} |  | ||||||
|   open-webui: {} |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| OLLAMA_BASE_URL=http://ollama:11434 |  | ||||||
| #WEBUI_SECRET_KEY= |  | ||||||
| #HF_HUB_OFFLINE=1 |  | ||||||
| # Disable analytics |  | ||||||
| SCARF_NO_ANALYTICS=true |  | ||||||
| DO_NOT_TRACK=true |  | ||||||
| ANONYMIZED_TELEMETRY=false |  | ||||||
|  |  | ||||||
| #OPENAI_API_BASE_URL= |  | ||||||
| #OPENAI_API_KEY= |  | ||||||
|  |  | ||||||
| # Only with stable-diffusion-webui |  | ||||||
| #ENABLE_IMAGE_GENERATION=true |  | ||||||
| #AUTOMATIC1111_BASE_URL=http://stable-diffusion-webui:7860 |  | ||||||
| #IMAGE_SIZE=64x64 |  | ||||||
| #IMAGE_STEPS=3 |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVtzpnPr0Boy+bUbL+viOYfqeetDZF6Hu40EwNLXNb0 bensuperpc@gmail.com |  | ||||||
| @@ -1,104 +0,0 @@ | |||||||
| services: |  | ||||||
|   # openssh |  | ||||||
|   openssh: |  | ||||||
|     image: linuxserver/openssh-server:latest |  | ||||||
|     container_name: openssh |  | ||||||
|     profiles: |  | ||||||
|       - openssh |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     env_file: |  | ||||||
|       - ./env/openssh.env |  | ||||||
|     environment: |  | ||||||
|       - PUID=${PUID:-1000} |  | ||||||
|       - PGID=${PGID:-1000} |  | ||||||
|     volumes: |  | ||||||
|       - openssh_config:/config:rw |  | ||||||
|       - ./config/authorized_keys:/authorized_ssh_keys:ro |  | ||||||
|       - public_data:/public_data:rw |  | ||||||
|       - private_data:/private_data:rw |  | ||||||
|       - caddy_data:/caddy_data:rw |  | ||||||
|       - caddy_config:/caddy_config:rw |  | ||||||
|       - caddy_backup:/caddy_backup:rw |  | ||||||
|       - 7daystodie_backup:/7daystodie_backup:rw |  | ||||||
|       - 7daystodie_server_save:/7daystodie_server_save:rw |  | ||||||
|       - 7daystodie_server_config_lgsm:/7daystodie_server_config_lgsm:rw |  | ||||||
|       - 7daystodie_server_file:/7daystodie_server_file:rw |  | ||||||
|       - 7daystodie_server_log:/7daystodie_server_log:rw |  | ||||||
|       - satisfactory_backup:/satisfactory_backup:rw |  | ||||||
|       - satisfactory_server_config:/satisfactory_server_config:rw |  | ||||||
|       - minecraft_server_backup:/minecraft_server_backup:rw |  | ||||||
|       - minecraft_server_data:/minecraft_server_data:rw |  | ||||||
|       - minecraft_proxy_data:/minecraft_proxy_data:rw |  | ||||||
|       - minecraft_rcon_data:/minecraft_rcon_data:rw |  | ||||||
|       - forgejo_data:/forgejo_data:rw |  | ||||||
|       - forgejo_config:/forgejo_config:rw |  | ||||||
|       - forgejo_db:/forgejo_db:rw |  | ||||||
|       - gitea_data:/gitea_data:rw |  | ||||||
|       - gitea_config:/gitea_config:rw |  | ||||||
|       - gitea_db:/gitea_db:rw |  | ||||||
|       - teamfortress2_backup:/teamfortress2_backup:rw |  | ||||||
|       - teamfortress2_data:/teamfortress2_data:rw |  | ||||||
|  |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:false |  | ||||||
|     ports: |  | ||||||
|       - 2222:2222 |  | ||||||
| volumes: |  | ||||||
|   openssh_config: |  | ||||||
|     name: openssh_config |  | ||||||
|   public_data: |  | ||||||
|     name: public_data |  | ||||||
|   private_data: |  | ||||||
|     name: private_data |  | ||||||
|   caddy_data: |  | ||||||
|     name: caddy_data |  | ||||||
|   caddy_config: |  | ||||||
|     name: caddy_config |  | ||||||
|   caddy_backup: |  | ||||||
|     name: caddy_backup |  | ||||||
| # 7daystodie-server |  | ||||||
|   7daystodie_backup: |  | ||||||
|     name: 7daystodie_backup |  | ||||||
|   7daystodie_server_save: |  | ||||||
|     name: 7daystodie_server_save |  | ||||||
|   7daystodie_server_config_lgsm: |  | ||||||
|     name: 7daystodie_server_config_lgsm |  | ||||||
|   7daystodie_server_file: |  | ||||||
|     name: 7daystodie_server_file |  | ||||||
|   7daystodie_server_log: |  | ||||||
|     name: 7daystodie_server_log |  | ||||||
| # satisfactory-server |  | ||||||
|   satisfactory_backup: |  | ||||||
|     name: satisfactory_backup |  | ||||||
|   satisfactory_server_config: |  | ||||||
|     name: satisfactory_server_config |  | ||||||
| # minecraft-server |  | ||||||
|   minecraft_server_backup: |  | ||||||
|     name: minecraft_server_backup |  | ||||||
|   minecraft_server_data: |  | ||||||
|     name: minecraft_server_data |  | ||||||
|   minecraft_proxy_data: |  | ||||||
|     name: minecraft_proxy_data |  | ||||||
|   minecraft_rcon_data: |  | ||||||
|     name: minecraft_rcon_data |  | ||||||
| # teamfortress2 |  | ||||||
|   teamfortress2_backup: |  | ||||||
|     name: teamfortress2_backup |  | ||||||
|   teamfortress2_data: |  | ||||||
|     name: teamfortress2_data |  | ||||||
| # forgejo |  | ||||||
|   forgejo_data: |  | ||||||
|     name: forgejo_data |  | ||||||
|   forgejo_config: |  | ||||||
|     name: forgejo_config |  | ||||||
|   forgejo_db: |  | ||||||
|     name: forgejo_db |  | ||||||
| # gitea |  | ||||||
|   gitea_data: |  | ||||||
|     name: gitea_data |  | ||||||
|   gitea_config: |  | ||||||
|     name: gitea_config |  | ||||||
|   gitea_db: |  | ||||||
|     name: gitea_db |  | ||||||
							
								
								
									
										15
									
								
								infrastructure/services/openssh/env/openssh.env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								infrastructure/services/openssh/env/openssh.env
									
									
									
									
										vendored
									
									
								
							| @@ -1,15 +0,0 @@ | |||||||
| TZ=Etc/UTC |  | ||||||
| SUDO_ACCESS=true |  | ||||||
| PASSWORD_ACCESS=false |  | ||||||
| DOCKER_MODS=linuxserver/mods:openssh-server-rsync |  | ||||||
| #PUBLIC_KEY_URL=https://github.com/bensuperpc.keys |  | ||||||
| PUBLIC_KEY_DIR=/authorized_ssh_keys |  | ||||||
| USER_NAME=admin |  | ||||||
| USER_PASSWORD=rdUwf36C11PLmpU9Lvq7tP5pfFBKAuCh |  | ||||||
|  |  | ||||||
| #PUBLIC_KEY=yourpublickey |  | ||||||
| #PUBLIC_KEY_FILE=/path/to/file |  | ||||||
| #PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys |  | ||||||
| #PUBLIC_KEY_URL=https://github.com/username.keys |  | ||||||
| #USER_PASSWORD_FILE=/path/to/file |  | ||||||
| #LOG_STDOUT= |  | ||||||
| @@ -1,35 +0,0 @@ | |||||||
| services: |  | ||||||
|   # picoshare |  | ||||||
|   picoshare: |  | ||||||
|     image: mtlynch/picoshare:latest |  | ||||||
|     container_name: picoshare |  | ||||||
|     profiles: |  | ||||||
|       - picoshare |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./env/picoshare.env |  | ||||||
|     volumes: |  | ||||||
|       - picoshare_data:/data |  | ||||||
|     networks: |  | ||||||
|       - infra-network |  | ||||||
|     security_opt: |  | ||||||
|       - no-new-privileges:true |  | ||||||
|     read_only: false |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
| #    tmpfs: |  | ||||||
| #      - /tmp |  | ||||||
|     deploy: |  | ||||||
|       resources: |  | ||||||
|         limits: |  | ||||||
|           cpus: '0.5' |  | ||||||
|           memory: 512M |  | ||||||
|         reservations: |  | ||||||
|           cpus: '0.001' |  | ||||||
|           memory: 20M |  | ||||||
|  |  | ||||||
| volumes: |  | ||||||
|   picoshare_data: |  | ||||||
|     name: picoshare_data |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| PS_SHARED_SECRET=CBuS4DJLqIe93xF1KGYRrnhxUFBqLD2n |  | ||||||
| PORT=4001 |  | ||||||
| PS_BEHIND_PROXY=true |  | ||||||
| @@ -1,298 +0,0 @@ | |||||||
| ;<?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 document or comment in bytes, defaults to 10 Megabytes |  | ||||||
| sizelimit = 10000000 |  | ||||||
|  |  | ||||||
| ; by default PrivateBin use "bootstrap5" template (tpl/bootstrap5.php). |  | ||||||
| ; Optionally you can enable the template selection menu, which uses |  | ||||||
| ; a session cookie to store the choice until the browser is closed. |  | ||||||
| templateselection = false |  | ||||||
|  |  | ||||||
| ; List of available for selection templates when "templateselection" option is enabled |  | ||||||
| availabletemplates[] = "bootstrap5" |  | ||||||
| availabletemplates[] = "bootstrap" |  | ||||||
| availabletemplates[] = "bootstrap-page" |  | ||||||
| availabletemplates[] = "bootstrap-dark" |  | ||||||
| availabletemplates[] = "bootstrap-dark-page" |  | ||||||
| availabletemplates[] = "bootstrap-compact" |  | ||||||
| availabletemplates[] = "bootstrap-compact-page" |  | ||||||
|  |  | ||||||
| ; set the template your installs defaults to, defaults to "bootstrap5" (tpl/bootstrap5.php), also |  | ||||||
| ; bootstrap template (tpl/bootstrap.php) and it's variants: "bootstrap-dark", "bootstrap-compact", "bootstrap-page", |  | ||||||
| ; which can be combined with "-dark" and "-compact" for "bootstrap-dark-page", |  | ||||||
| ; "bootstrap-compact-page" - previews at: |  | ||||||
| ; https://privatebin.info/screenshots.html |  | ||||||
| ; template = "bootstrap5" |  | ||||||
|  |  | ||||||
| ; (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 document is created. |  | ||||||
| ; It is suggested to only use this with self-hosted shorteners as this will leak |  | ||||||
| ; the documents encryption key. |  | ||||||
| ; urlshortener = "https://shortener.example.com/api?link=" |  | ||||||
|  |  | ||||||
| ; (optional) Whether to shorten the URL by default when a new document is created. |  | ||||||
| ; If set to true, the "Shorten URL" functionality will be automatically called. |  | ||||||
| ; This only works if the "urlshortener" option is set. |  | ||||||
| ; shortenbydefault = false |  | ||||||
|  |  | ||||||
| ; (optional) Let users create a QR code for sharing the document URL with one click. |  | ||||||
| ; It works both when a new document is created and when you view a document. |  | ||||||
| ; qrcode = true |  | ||||||
|  |  | ||||||
| ; (optional) Let users send an email sharing the document URL with one click. |  | ||||||
| ; It works both when a new document is created and when you view a document. |  | ||||||
| ; 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" / "jdenticon" (default) / "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: |  | ||||||
| ; - By default this disallows to load images from third-party servers, e.g. when |  | ||||||
| ;   they are embedded in documents. 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 'wasm-unsafe-eval' is used to enable webassembly support (used for zlib |  | ||||||
| ;   compression). You can remove it if compression doesn't need to be supported. |  | ||||||
| ; - The 'unsafe-inline' style-src is used by Chrome when displaying PDF previews |  | ||||||
| ;   and can be omitted if attachment upload is disabled (which is the default). |  | ||||||
| ;   See https://issues.chromium.org/issues/343754409 |  | ||||||
| ; - To allow displaying PDF previews in Firefox or Chrome, sandboxing must also |  | ||||||
| ;   get turned off. The following CSP allows PDF previews: |  | ||||||
| ; cspheader = "default-src 'none'; base-uri 'self'; form-action 'none'; manifest-src 'self'; connect-src * blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; font-src 'self'; frame-ancestors 'none'; frame-src blob:; img-src 'self' data: blob:; media-src blob:; object-src blob:" |  | ||||||
| ; |  | ||||||
| ; The recommended and default used CSP is: |  | ||||||
| ; cspheader = "default-src 'none'; base-uri 'self'; form-action 'none'; manifest-src 'self'; connect-src * blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self'; font-src 'self'; frame-ancestors 'none'; frame-src blob:; img-src 'self' data: blob:; media-src blob:; object-src blob:; sandbox allow-same-origin allow-scripts allow-forms allow-modals allow-downloads" |  | ||||||
|  |  | ||||||
| ; 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 documents & 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 documents, 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 documents. |  | ||||||
| ; 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 documents, it is only |  | ||||||
| ; checked when documents get created |  | ||||||
| ; Set this to 0 to run a purge every time a document is created. |  | ||||||
| limit = 300 |  | ||||||
|  |  | ||||||
| ; maximum amount of expired documents 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 |  | ||||||
| ;js/privatebin.js = "sha512-[…]" |  | ||||||
| @@ -1,30 +0,0 @@ | |||||||
| 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 |  | ||||||
|       - ./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 |  | ||||||
| @@ -1,50 +0,0 @@ | |||||||
| services: |  | ||||||
|   # projectsend |  | ||||||
|   projectsend: |  | ||||||
|     image: linuxserver/projectsend:latest |  | ||||||
|     container_name: projectsend |  | ||||||
|     profiles: |  | ||||||
|       - projectsend |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./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 |  | ||||||
|     cap_drop: |  | ||||||
|       - SYS_ADMIN |  | ||||||
|  |  | ||||||
|   # 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: |  | ||||||
|       - ./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 +0,0 @@ | |||||||
| MAX_UPLOAD=50000 |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| MARIADB_ROOT_PASSWORD=8O34297GrBfT3Ld34Lfg9mpotmZwbJtt |  | ||||||
| MARIADB_USER=bensuperpc |  | ||||||
| MARIADB_PASSWORD=wdSUa1JEZhXie5AJ5NcX1w73xmpO12EY |  | ||||||
| MARIADB_DATABASE=projectsend |  | ||||||
| @@ -1,32 +0,0 @@ | |||||||
| services: |  | ||||||
|   # psitransfer |  | ||||||
|   psitransfer: |  | ||||||
|     image: psitrax/psitransfer:latest |  | ||||||
|     container_name: psitransfer |  | ||||||
|     profiles: |  | ||||||
|       - psitransfer |  | ||||||
|     restart: on-failure:5 |  | ||||||
|     user: ${PUID:-1000}:${PGID:-1000}  |  | ||||||
|     depends_on: |  | ||||||
|       - caddy |  | ||||||
|     env_file: |  | ||||||
|       - ./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 |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user