mirror of
https://github.com/bensuperpc/infrastructure.git
synced 2025-10-25 23:36:20 +02:00
Compare commits
12 Commits
36e57c4a47
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| bf80b3a405 | |||
| 5dea9bf9cf | |||
| 91ed7ef60f | |||
| 876e35b736 | |||
| dcdf02e3ce | |||
| ad3fb75871 | |||
| 6e447b865b | |||
| 897be921a6 | |||
| d8d00cbd24 | |||
| 6b39245125 | |||
| f48cbcc522 | |||
|
|
183c181c8f |
@@ -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
|
|
||||||
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
|||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout Code"
|
- name: "Checkout Code"
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
submodules: "recursive"
|
submodules: "recursive"
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|||||||
2
.github/workflows/submodule-update.yml
vendored
2
.github/workflows/submodule-update.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout Code"
|
- name: "Checkout Code"
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CI_TOKEN }}
|
token: ${{ secrets.CI_TOKEN }}
|
||||||
repository: ${{ github.repository }}
|
repository: ${{ github.repository }}
|
||||||
|
|||||||
@@ -15,9 +15,14 @@ PROJECT_DIRECTORY ?= infrastructure
|
|||||||
|
|
||||||
DOCKER_EXEC ?= docker
|
DOCKER_EXEC ?= docker
|
||||||
|
|
||||||
DOCKER_PROFILES ?= main_infrastructure
|
CONFIG_DIRECTORY ?= presets
|
||||||
|
CONFIG_FILES ?= $(addprefix $(CONFIG_DIRECTORY)/,$(addsuffix .conf,$(CONFIGS)))
|
||||||
|
include $(CONFIG_FILES)
|
||||||
|
|
||||||
PROFILE_CMD ?= $(addprefix --profile ,$(DOCKER_PROFILES))
|
DOCKER_PROFILES ?=
|
||||||
|
EXTRA_PROFILES ?=
|
||||||
|
|
||||||
|
PROFILE_CMD ?= $(addprefix --profile ,$(DOCKER_PROFILES) $(EXTRA_PROFILES))
|
||||||
|
|
||||||
COMPOSE_FILES ?= $(shell find ./$(PROJECT_DIRECTORY) -maxdepth 1 -name 'docker-compose*.yml' -type f | sed -e 's/^/--file /')
|
COMPOSE_FILES ?= $(shell find ./$(PROJECT_DIRECTORY) -maxdepth 1 -name 'docker-compose*.yml' -type f | sed -e 's/^/--file /')
|
||||||
COMPOSE_DIR ?= --project-directory ./$(PROJECT_DIRECTORY)
|
COMPOSE_DIR ?= --project-directory ./$(PROJECT_DIRECTORY)
|
||||||
@@ -32,40 +37,20 @@ DOCKER_COMPOSE_COMMAND ?= $(ENV_ARG_VAR) $(DOCKER_EXEC) compose $(COMPOSE_DIR) $
|
|||||||
.PHONY: build all
|
.PHONY: build all
|
||||||
all: start
|
all: start
|
||||||
|
|
||||||
.PHONY: build
|
GENERIC_TARGETS := build down up run config logs pull images start restart stop
|
||||||
build:
|
|
||||||
$(DOCKER_COMPOSE_COMMAND) build
|
|
||||||
|
|
||||||
.PHONY: start
|
.PHONY: $(GENERIC_TARGETS)
|
||||||
start:
|
$(GENERIC_TARGETS):
|
||||||
|
$(DOCKER_COMPOSE_COMMAND) $@
|
||||||
|
|
||||||
|
.PHONY: start-detached
|
||||||
|
start-detached:
|
||||||
$(DOCKER_COMPOSE_COMMAND) up -d
|
$(DOCKER_COMPOSE_COMMAND) up -d
|
||||||
|
|
||||||
.PHONY: start-at
|
|
||||||
start-at:
|
|
||||||
$(DOCKER_COMPOSE_COMMAND) up
|
|
||||||
|
|
||||||
.PHONY: no-start
|
.PHONY: no-start
|
||||||
no-start:
|
no-start:
|
||||||
$(DOCKER_COMPOSE_COMMAND) up --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
|
.PHONY: state
|
||||||
state:
|
state:
|
||||||
$(DOCKER_COMPOSE_COMMAND) ps
|
$(DOCKER_COMPOSE_COMMAND) ps
|
||||||
@@ -75,10 +60,6 @@ state:
|
|||||||
volumes:
|
volumes:
|
||||||
$(DOCKER_COMPOSE_COMMAND) config --volumes
|
$(DOCKER_COMPOSE_COMMAND) config --volumes
|
||||||
|
|
||||||
.PHONY: image-update
|
|
||||||
image-update:
|
|
||||||
$(DOCKER_COMPOSE_COMMAND) pull
|
|
||||||
|
|
||||||
.PHONY: git-update
|
.PHONY: git-update
|
||||||
git-update:
|
git-update:
|
||||||
# git submodule update --init --recursive --remote
|
# git submodule update --init --recursive --remote
|
||||||
|
|||||||
30
Makefile
30
Makefile
@@ -11,25 +11,21 @@
|
|||||||
#// //
|
#// //
|
||||||
#//////////////////////////////////////////////////////////////
|
#//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
ADMIN_SERVICES := openssh uptime-kuma yacht
|
#ADMIN_SERVICES := openssh
|
||||||
BLOG_SERVICES := wordpress
|
# uptime-kuma
|
||||||
#7DAYS_TO_DIE_SERVICES := 7daystodie_server 7daystodie_backup
|
#BLOG_SERVICES := wordpress
|
||||||
#MINECRAFT_SERVICES := minecraft_server minecraft_backup
|
#IA_SERVICES := open-webui
|
||||||
#SATISFACTORY_SERVICES := satisfactory_server satisfactory_backup
|
#SHARING_SERVICES := privatebin
|
||||||
GIT_SERVICES := forgejo
|
# jellyfin
|
||||||
# forgejo-runner
|
# psitransfer picoshare projectsend dufs syncthing
|
||||||
# gitea gitea-runner
|
#UTILS_SERVICES := it-tools omni-tools cyberchef
|
||||||
IA_SERVICES := open-webui
|
# homepage
|
||||||
SHARING_SERVICES := psitransfer picoshare privatebin projectsend jellyfin dufs syncthing
|
# stirlingpdf
|
||||||
TORRENTS_SERVICES := qbittorrent transmission
|
|
||||||
UTILS_SERVICES := it-tools stirlingpdf omni-tools
|
|
||||||
MAIN_SERVICES := main_infrastructure caddy homepage
|
|
||||||
|
|
||||||
PROJECT_DIRECTORY := infrastructure
|
PROJECT_DIRECTORY := infrastructure
|
||||||
|
CONFIG_DIRECTORY := presets
|
||||||
|
|
||||||
DOCKER_PROFILES := $(MAIN_SERVICES) $(ADMIN_SERVICES) $(BLOG_SERVICES) \
|
CONFIGS := torrent
|
||||||
$(7DAYS_TO_DIE_SERVICES) $(MINECRAFT_SERVICES) $(SATISFACTORY_SERVICES) \
|
#DOCKER_PROFILES :=
|
||||||
$(GIT_SERVICES) $(IA_SERVICES) $(SHARING_SERVICES) \
|
|
||||||
$(TORRENTS_SERVICES) $(UTILS_SERVICES)
|
|
||||||
|
|
||||||
include DockerCompose.mk
|
include DockerCompose.mk
|
||||||
|
|||||||
39
README.md
39
README.md
@@ -14,7 +14,6 @@ If you have any **questions** or **suggestions**, feel free to open an issue or
|
|||||||
- [x] Docker / docker-compose
|
- [x] Docker / docker-compose
|
||||||
- [x] Wordpress (Via FASTCGI/caddy)
|
- [x] Wordpress (Via FASTCGI/caddy)
|
||||||
- [x] Jellyfin (Media server)
|
- [x] Jellyfin (Media server)
|
||||||
- [x] Gitea (Git server)
|
|
||||||
- [x] Forgejo (Git server, fork of Gitea)
|
- [x] Forgejo (Git server, fork of Gitea)
|
||||||
- [x] Uptime Kuma (Monitoring)
|
- [x] Uptime Kuma (Monitoring)
|
||||||
- [x] qbittorrent and transmission (Torrent client/server)
|
- [x] qbittorrent and transmission (Torrent client/server)
|
||||||
@@ -23,7 +22,6 @@ If you have any **questions** or **suggestions**, feel free to open an issue or
|
|||||||
- [x] it-tools and omni-tools (Tools for IT)
|
- [x] it-tools and omni-tools (Tools for IT)
|
||||||
- [x] Open-WebUI (Local chatGPT)
|
- [x] Open-WebUI (Local chatGPT)
|
||||||
- [x] Privatebin (Pastebin)
|
- [x] Privatebin (Pastebin)
|
||||||
- [x] Yacht (Web interface for managing docker containers)
|
|
||||||
- [X] [Satisfactory](https://github.com/bensuperpc/docker-satisfactory)
|
- [X] [Satisfactory](https://github.com/bensuperpc/docker-satisfactory)
|
||||||
- [x] [7 days to die](https://github.com/bensuperpc/docker-7daystodie)
|
- [x] [7 days to die](https://github.com/bensuperpc/docker-7daystodie)
|
||||||
- [x] [minecraft](https://github.com/bensuperpc/docker-minecraft-server)
|
- [x] [minecraft](https://github.com/bensuperpc/docker-minecraft-server)
|
||||||
@@ -57,7 +55,6 @@ List of ports used by the services in this infrastructure:
|
|||||||
| 443 | Caddy | HTTPS traffic |
|
| 443 | Caddy | HTTPS traffic |
|
||||||
| 22 | Forgejo | Git/SSH access |
|
| 22 | Forgejo | Git/SSH access |
|
||||||
| 2222 | OpenSSH | Global SSH access |
|
| 2222 | OpenSSH | Global SSH access |
|
||||||
| 5555 | Gitea | Git/SSH access |
|
|
||||||
| 7777 | Satisfactory | Game server port |
|
| 7777 | Satisfactory | Game server port |
|
||||||
| 25565 | Minecraft | Game server port |
|
| 25565 | Minecraft | Game server port |
|
||||||
| 26900 | 7 Days to Die | Game server port |
|
| 26900 | 7 Days to Die | Game server port |
|
||||||
@@ -104,7 +101,6 @@ And then, caddy will generate the certificate for you and renew it automatically
|
|||||||
| [uptimekuma.bensuperpc.org](https://uptimekuma.bensuperpc.org) | Sub | Uptime Kuma for monitoring |
|
| [uptimekuma.bensuperpc.org](https://uptimekuma.bensuperpc.org) | Sub | Uptime Kuma for monitoring |
|
||||||
| [qbittorrent.bensuperpc.org](https://qbittorrent.bensuperpc.org) | Sub | Torrent client/server |
|
| [qbittorrent.bensuperpc.org](https://qbittorrent.bensuperpc.org) | Sub | Torrent client/server |
|
||||||
| [transmission.bensuperpc.org](https://transmission.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 |
|
| [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 |
|
| [git.bensuperpc.org](https://git.bensuperpc.org) | Sub | Fork of Gitea for git |
|
||||||
| [link.bensuperpc.org](https://link.bensuperpc.org) | Sub | For link shortener |
|
| [link.bensuperpc.org](https://link.bensuperpc.org) | Sub | For link shortener |
|
||||||
@@ -114,11 +110,9 @@ And then, caddy will generate the certificate for you and renew it automatically
|
|||||||
| [it-tools.bensuperpc.org](https://it-tools.bensuperpc.org) | Sub | Tools for IT |
|
| [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 |
|
| [omni-tools.bensuperpc.org](https://omni-tools.bensuperpc.org) | Sub | Tools for IT |
|
||||||
| [privatebin.bensuperpc.org](https://privatebin.bensuperpc.org) | Sub | Pastebin |
|
| [privatebin.bensuperpc.org](https://privatebin.bensuperpc.org) | Sub | Pastebin |
|
||||||
| [yacht.bensuperpc.org](https://yacht.bensuperpc.org) | Sub | Web interface for managing docker containers |
|
|
||||||
| [projectsend.bensuperpc.org](https://projectsend.bensuperpc.org) | Sub | ProjectSend for file sharing |
|
| [projectsend.bensuperpc.org](https://projectsend.bensuperpc.org) | Sub | ProjectSend for file sharing |
|
||||||
| [picoshare.bensuperpc.org](https://picoshare.bensuperpc.org) | Sub | Picoshare 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 |
|
| [dufs.bensuperpc.org](https://dufs.bensuperpc.org) | Sub | Dufs for file sharing |
|
||||||
| [public.bensuperpc.org](https://public.bensuperpc.org) | Sub | Caddy for file sharing |
|
|
||||||
| [memos.bensuperpc.org](https://memos.bensuperpc.org) | Sub | Caddy 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 |
|
| [stirlingpdf.bensuperpc.org](https://stirlingpdf.bensuperpc.org) | Sub | Stirling PDF tools |
|
||||||
|
|
||||||
@@ -165,24 +159,6 @@ For [wordpress_backup.env](infrastructure/services/wordpress/env/wordpress_backu
|
|||||||
RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ
|
RESTIC_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Gitea
|
|
||||||
|
|
||||||
For [gitea.env](infrastructure/services/gitea/env/gitea.env) file, you need to change the password(s) and user for the database.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
GITEA__database__USER=bensuperpc
|
|
||||||
GITEA__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j
|
|
||||||
GITEA__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c
|
|
||||||
```
|
|
||||||
|
|
||||||
For [gitea_db.env](infrastructure/services/gitea/env/gitea_db.env) file, you need to change the password(s) and user for the database.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
MARIADB_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X
|
|
||||||
MARIADB_USER=bensuperpc
|
|
||||||
MARIADB_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j
|
|
||||||
```
|
|
||||||
|
|
||||||
#### PsiTransfer
|
#### PsiTransfer
|
||||||
|
|
||||||
For [psitransfer.env](infrastructure/services/psitransfer/env/psitransfer.env) file, you need to change the secret key.
|
For [psitransfer.env](infrastructure/services/psitransfer/env/psitransfer.env) file, you need to change the secret key.
|
||||||
@@ -191,12 +167,6 @@ For [psitransfer.env](infrastructure/services/psitransfer/env/psitransfer.env) f
|
|||||||
PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn
|
PSITRANSFER_ADMIN_PASS=n9jLVNT9QUotTJTT91JqH4GyBTg9pvEn
|
||||||
```
|
```
|
||||||
|
|
||||||
For [yacht.env](infrastructure/services/yacht/env/yacht.env) file, you need to change the secret key.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
SECRET_KEY=UZvg9nbcGIJlPEB3uI39TAEWyFOz9nm8
|
|
||||||
```
|
|
||||||
|
|
||||||
For [projectsend_db.env](infrastructure/services/projectsend/env/projectsend_db.env) file, you need to change the password(s) and user for the database.
|
For [projectsend_db.env](infrastructure/services/projectsend/env/projectsend_db.env) file, you need to change the password(s) and user for the database.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -296,6 +266,14 @@ You can change the homepage config in these files:
|
|||||||
|
|
||||||
### Forgejo
|
### Forgejo
|
||||||
|
|
||||||
|
Once the installation is complete, you need to set the installation lock:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
FORGEJO__security__INSTALL_LOCK=true
|
||||||
|
```
|
||||||
|
|
||||||
|
### Forgejo Runner
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker exec -it forgejo_runner /bin/bash
|
docker exec -it forgejo_runner /bin/bash
|
||||||
```
|
```
|
||||||
@@ -380,7 +358,6 @@ ssh -p 2222 admin@bensuperpc.org
|
|||||||
- [Privatebin](https://github.com/PrivateBin/PrivateBin)
|
- [Privatebin](https://github.com/PrivateBin/PrivateBin)
|
||||||
- [ghost](https://ghost.org)
|
- [ghost](https://ghost.org)
|
||||||
- [Homepage Tuto](https://belginux.com/installer-homepage-avec-docker/)
|
- [Homepage Tuto](https://belginux.com/installer-homepage-avec-docker/)
|
||||||
- [Yacht](https://yacht.sh/)
|
|
||||||
- [ProjectSend](https://www.projectsend.org/)
|
- [ProjectSend](https://www.projectsend.org/)
|
||||||
- [Picoshare](https://github.com/mtlynch/picoshare)
|
- [Picoshare](https://github.com/mtlynch/picoshare)
|
||||||
- [Dufs](https://github.com/sigoden/dufs)
|
- [Dufs](https://github.com/sigoden/dufs)
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ include:
|
|||||||
- services/caddy/docker-compose.caddy.yml
|
- services/caddy/docker-compose.caddy.yml
|
||||||
# Dufs
|
# Dufs
|
||||||
- services/dufs/docker-compose.dufs.yml
|
- services/dufs/docker-compose.dufs.yml
|
||||||
# Gitea
|
|
||||||
- services/gitea/docker-compose.gitea.yml
|
|
||||||
# Forgejo
|
# Forgejo
|
||||||
- services/forgejo/docker-compose.forgejo.yml
|
- services/forgejo/docker-compose.forgejo.yml
|
||||||
# Homepage
|
# Homepage
|
||||||
@@ -17,6 +15,8 @@ include:
|
|||||||
- services/it-tools/docker-compose.it-tools.yml
|
- services/it-tools/docker-compose.it-tools.yml
|
||||||
# omni-tools
|
# omni-tools
|
||||||
- services/omni-tools/docker-compose.omni-tools.yml
|
- services/omni-tools/docker-compose.omni-tools.yml
|
||||||
|
# cyberchef
|
||||||
|
- services/cyberchef/docker-compose.cyberchef.yml
|
||||||
# Jellyfin
|
# Jellyfin
|
||||||
- services/jellyfin/docker-compose.jellyfin.yml
|
- services/jellyfin/docker-compose.jellyfin.yml
|
||||||
# Openssh
|
# Openssh
|
||||||
@@ -39,8 +39,6 @@ include:
|
|||||||
- services/transmission/docker-compose.transmission.yml
|
- services/transmission/docker-compose.transmission.yml
|
||||||
# Uptime-kuma
|
# Uptime-kuma
|
||||||
- services/uptime-kuma/docker-compose.uptime-kuma.yml
|
- services/uptime-kuma/docker-compose.uptime-kuma.yml
|
||||||
# Yacht
|
|
||||||
- services/yacht/docker-compose.yacht.yml
|
|
||||||
# open-webui
|
# open-webui
|
||||||
- services/open-webui/docker-compose.open-webui.yml
|
- services/open-webui/docker-compose.open-webui.yml
|
||||||
# Minecraft
|
# Minecraft
|
||||||
@@ -49,3 +47,5 @@ include:
|
|||||||
- services/7daystodie-server/7daystodie-server/docker-compose.yml
|
- services/7daystodie-server/7daystodie-server/docker-compose.yml
|
||||||
# Satisfactory
|
# Satisfactory
|
||||||
- services/satisfactory-server/satisfactory-server/docker-compose.yml
|
- services/satisfactory-server/satisfactory-server/docker-compose.yml
|
||||||
|
# Team Fortress 2
|
||||||
|
- services/teamfortress2-server/teamfortress2-server/docker-compose.yml
|
||||||
|
|||||||
Submodule infrastructure/services/7daystodie-server updated: 9e81da5eea...71c33c6b1a
@@ -0,0 +1,9 @@
|
|||||||
|
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 @@
|
|||||||
gitea.{$MAIN_DOMAIN} {
|
|
||||||
reverse_proxy gitea:3000
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
it-tools.{$MAIN_DOMAIN} {
|
it-tools.{$MAIN_DOMAIN} {
|
||||||
# Load balance between 2 instances
|
# Load balance between 2 instances
|
||||||
reverse_proxy {
|
reverse_proxy {
|
||||||
to it-tools0:80 it-tools1:80
|
to it-tools0:8080 it-tools1:8080
|
||||||
lb_policy round_robin
|
lb_policy round_robin
|
||||||
lb_retries 3
|
lb_retries 3
|
||||||
lb_try_interval 1s
|
lb_try_interval 1s
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
torrent.{$MAIN_DOMAIN} {
|
torrent.{$MAIN_DOMAIN} {
|
||||||
reverse_proxy qbittorrent:8080
|
reverse_proxy qbittorrent:8080
|
||||||
|
header {
|
||||||
|
Cache-Control "no-store"
|
||||||
|
import header_common
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qbittorrent.{$MAIN_DOMAIN} {
|
qbittorrent.{$MAIN_DOMAIN} {
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
yacht.{$MAIN_DOMAIN} {
|
|
||||||
reverse_proxy yacht:8000
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
# Caddy
|
# Caddy
|
||||||
caddy:
|
caddy:
|
||||||
image: caddy:latest
|
image: bensuperpc/caddy-l4:latest
|
||||||
container_name: caddy
|
container_name: caddy
|
||||||
profiles:
|
profiles:
|
||||||
- caddy
|
- caddy
|
||||||
@@ -10,8 +10,10 @@ services:
|
|||||||
condition: service_completed_successfully
|
condition: service_completed_successfully
|
||||||
restart: on-failure:5
|
restart: on-failure:5
|
||||||
ports:
|
ports:
|
||||||
- 80:80
|
- 80:80/tcp
|
||||||
- 443:443
|
- 80:80/udp
|
||||||
|
- 443:443/tcp
|
||||||
|
- 443:443/udp
|
||||||
volumes:
|
volumes:
|
||||||
- caddy_data:/data:rw
|
- caddy_data:/data:rw
|
||||||
- caddy_config:/config:rw
|
- caddy_config:/config:rw
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
# forgejo
|
# forgejo
|
||||||
forgejo:
|
forgejo:
|
||||||
image: codeberg.org/forgejo/forgejo:11-rootless
|
image: codeberg.org/forgejo/forgejo:13-rootless
|
||||||
container_name: forgejo
|
container_name: forgejo
|
||||||
profiles:
|
profiles:
|
||||||
- forgejo
|
- forgejo
|
||||||
@@ -10,7 +10,7 @@ services:
|
|||||||
- database_forgejo
|
- database_forgejo
|
||||||
- caddy
|
- caddy
|
||||||
ports:
|
ports:
|
||||||
- "22:22"
|
- "22:2222"
|
||||||
env_file:
|
env_file:
|
||||||
- ./env/forgejo.env
|
- ./env/forgejo.env
|
||||||
volumes:
|
volumes:
|
||||||
@@ -20,6 +20,7 @@ services:
|
|||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
networks:
|
networks:
|
||||||
- infra-network
|
- infra-network
|
||||||
|
user: ${PUID:-1000}:${PGID:-1000}
|
||||||
security_opt:
|
security_opt:
|
||||||
- no-new-privileges:true
|
- no-new-privileges:true
|
||||||
|
|
||||||
@@ -50,7 +51,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- infra-network
|
- infra-network
|
||||||
profiles:
|
profiles:
|
||||||
- forgejo
|
- forgejo-runner
|
||||||
privileged: true
|
privileged: true
|
||||||
environment:
|
environment:
|
||||||
DOCKER_TLS_CERTDIR: /certs
|
DOCKER_TLS_CERTDIR: /certs
|
||||||
@@ -59,7 +60,7 @@ services:
|
|||||||
- forgejo_certs:/certs
|
- forgejo_certs:/certs
|
||||||
|
|
||||||
forgejo_runner:
|
forgejo_runner:
|
||||||
image: 'code.forgejo.org/forgejo/runner:6.3.1'
|
image: data.forgejo.org/forgejo/runner:9
|
||||||
networks:
|
networks:
|
||||||
- infra-network
|
- infra-network
|
||||||
profiles:
|
profiles:
|
||||||
@@ -72,7 +73,7 @@ services:
|
|||||||
container_name: 'forgejo_runner'
|
container_name: 'forgejo_runner'
|
||||||
env_file:
|
env_file:
|
||||||
- ./env/forgejo_runner.env
|
- ./env/forgejo_runner.env
|
||||||
# user: 1001:1001
|
user: ${PUID:-1000}:${PGID:-1000}
|
||||||
volumes:
|
volumes:
|
||||||
# - ./config/forgejo_runner/config.yaml:/config.yaml:ro
|
# - ./config/forgejo_runner/config.yaml:/config.yaml:ro
|
||||||
- forgejo_runner:/data
|
- forgejo_runner:/data
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ FORGEJO__database__HOST=database_forgejo:3306
|
|||||||
FORGEJO__database__NAME=forgejo
|
FORGEJO__database__NAME=forgejo
|
||||||
FORGEJO__database__USER=bensuperpc
|
FORGEJO__database__USER=bensuperpc
|
||||||
FORGEJO__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j
|
FORGEJO__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j
|
||||||
FORGEJO__APP_NAME=The Homelab Git
|
FORGEJO__APP_NAME=Bensuperpc's Forgejo
|
||||||
FORGEJO__APP_SLOGAN=Personal Code, Mirrors, and More
|
FORGEJO__APP_SLOGAN=Personal Code, Mirrors, and More
|
||||||
FORGEJO__server__DOMAIN=git.bensuperpc.org
|
FORGEJO__server__DOMAIN=git.bensuperpc.org
|
||||||
FORGEJO__server__SSH_DOMAIN=git.bensuperpc.org
|
FORGEJO__server__SSH_DOMAIN=git.bensuperpc.org
|
||||||
FORGEJO__server__HTTP_PORT=3000
|
FORGEJO__server__HTTP_PORT=3000
|
||||||
FORGEJO__server__SSH_LISTEN_PORT=22
|
FORGEJO__server__SSH_LISTEN_PORT=2222
|
||||||
FORGEJO__server__SSH_PORT=22
|
FORGEJO__server__SSH_PORT=22
|
||||||
FORGEJO__server__ROOT_URL=https://git.bensuperpc.org
|
FORGEJO__server__ROOT_URL=https://git.bensuperpc.org
|
||||||
FORGEJO__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c
|
FORGEJO__security__SECRET_KEY=ykcZt23an1E4lFHWvrCKdAyt16WAiK9c
|
||||||
|
|||||||
@@ -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
|
|
||||||
4
infrastructure/services/homepage/config/proxmox.yaml
Normal file
4
infrastructure/services/homepage/config/proxmox.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
# url: https://proxmox.host.or.ip:8006
|
||||||
|
# token: username@pam!Token ID
|
||||||
|
# secret: secret
|
||||||
@@ -64,12 +64,12 @@
|
|||||||
description: Dufs
|
description: Dufs
|
||||||
ping: dufs.bensuperpc.org
|
ping: dufs.bensuperpc.org
|
||||||
container: dufs
|
container: dufs
|
||||||
- caddy:
|
# - caddy:
|
||||||
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/caddy.png
|
# icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/caddy.png
|
||||||
href: https://public.bensuperpc.org/
|
# href: https://public.bensuperpc.org/
|
||||||
description: File browser
|
# description: File browser
|
||||||
ping: public.bensuperpc.org
|
# ping: public.bensuperpc.org
|
||||||
container: caddy
|
# container: caddy
|
||||||
|
|
||||||
- Utils:
|
- Utils:
|
||||||
- it-tools:
|
- it-tools:
|
||||||
@@ -84,18 +84,18 @@
|
|||||||
description: Omni Tools
|
description: Omni Tools
|
||||||
ping: omni-tools.bensuperpc.org
|
ping: omni-tools.bensuperpc.org
|
||||||
container: omni-tools0
|
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:
|
- stirlingpdf:
|
||||||
#icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/stirlingpdf.png
|
#icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/stirlingpdf.png
|
||||||
href: https://stirlingpdf.bensuperpc.org/
|
href: https://stirlingpdf.bensuperpc.org/
|
||||||
description: StirlingPDF
|
description: StirlingPDF
|
||||||
ping: stirlingpdf.bensuperpc.org
|
ping: stirlingpdf.bensuperpc.org
|
||||||
container: stirlingpdf
|
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:
|
- forgejo:
|
||||||
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/forgejo.png
|
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/forgejo.png
|
||||||
href: https://forgejo.bensuperpc.org/
|
href: https://forgejo.bensuperpc.org/
|
||||||
@@ -136,10 +136,4 @@
|
|||||||
description: Uptime Kuma
|
description: Uptime Kuma
|
||||||
ping: uptimekuma.bensuperpc.org
|
ping: uptimekuma.bensuperpc.org
|
||||||
container: uptime-kuma
|
container: uptime-kuma
|
||||||
- yacht:
|
|
||||||
# icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/yacht.png
|
|
||||||
href: https://yacht.bensuperpc.org/
|
|
||||||
description: Yacht
|
|
||||||
ping: yacht.bensuperpc.org
|
|
||||||
container: yacht
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ services:
|
|||||||
- ./env/homepage.env
|
- ./env/homepage.env
|
||||||
volumes:
|
volumes:
|
||||||
- homepage_log:/app/logs
|
- homepage_log:/app/logs
|
||||||
- ./config:/app/config:ro
|
- ./config:/app/config
|
||||||
- ./image:/app/public/image:ro
|
- ./image:/app/public/image:ro
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
# develop:
|
# develop:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
# it-tools
|
# it-tools
|
||||||
it-tools0:
|
it-tools0:
|
||||||
image: corentinth/it-tools:latest
|
image: ghcr.io/sharevb/it-tools:latest
|
||||||
container_name: it-tools0
|
container_name: it-tools0
|
||||||
profiles:
|
profiles:
|
||||||
- it-tools
|
- it-tools
|
||||||
@@ -26,7 +26,7 @@ services:
|
|||||||
memory: 20M
|
memory: 20M
|
||||||
|
|
||||||
it-tools1:
|
it-tools1:
|
||||||
image: corentinth/it-tools:latest
|
image: ghcr.io/sharevb/it-tools:latest
|
||||||
container_name: it-tools1
|
container_name: it-tools1
|
||||||
profiles:
|
profiles:
|
||||||
- it-tools
|
- it-tools
|
||||||
|
|||||||
@@ -28,7 +28,3 @@ networks:
|
|||||||
infra-network:
|
infra-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
name: infra-network
|
name: infra-network
|
||||||
intern-network:
|
|
||||||
driver: bridge
|
|
||||||
internal: true
|
|
||||||
name: intern-network
|
|
||||||
|
|||||||
Submodule infrastructure/services/minecraft-server updated: d9509579ca...03016cb87e
@@ -14,8 +14,8 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- openssh_config:/config:rw
|
- openssh_config:/config:rw
|
||||||
- ./config/authorized_keys:/authorized_ssh_keys:ro
|
- ./config/authorized_keys:/authorized_ssh_keys:ro
|
||||||
- public_data:/public:rw
|
- public_data:/public_data:rw
|
||||||
- private_data:/private:rw
|
- private_data:/private_data:rw
|
||||||
- caddy_data:/caddy_data:rw
|
- caddy_data:/caddy_data:rw
|
||||||
- caddy_config:/caddy_config:rw
|
- caddy_config:/caddy_config:rw
|
||||||
- caddy_backup:/caddy_backup:rw
|
- caddy_backup:/caddy_backup:rw
|
||||||
@@ -33,9 +33,8 @@ services:
|
|||||||
- forgejo_data:/forgejo_data:rw
|
- forgejo_data:/forgejo_data:rw
|
||||||
- forgejo_config:/forgejo_config:rw
|
- forgejo_config:/forgejo_config:rw
|
||||||
- forgejo_db:/forgejo_db:rw
|
- forgejo_db:/forgejo_db:rw
|
||||||
- gitea_data:/gitea_data:rw
|
- teamfortress2_backup:/teamfortress2_backup:rw
|
||||||
- gitea_config:/gitea_config:rw
|
- teamfortress2_data:/teamfortress2_data:rw
|
||||||
- gitea_db:/gitea_db:rw
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
- infra-network
|
- infra-network
|
||||||
@@ -81,6 +80,11 @@ volumes:
|
|||||||
name: minecraft_proxy_data
|
name: minecraft_proxy_data
|
||||||
minecraft_rcon_data:
|
minecraft_rcon_data:
|
||||||
name: minecraft_rcon_data
|
name: minecraft_rcon_data
|
||||||
|
# teamfortress2
|
||||||
|
teamfortress2_backup:
|
||||||
|
name: teamfortress2_backup
|
||||||
|
teamfortress2_data:
|
||||||
|
name: teamfortress2_data
|
||||||
# forgejo
|
# forgejo
|
||||||
forgejo_data:
|
forgejo_data:
|
||||||
name: forgejo_data
|
name: forgejo_data
|
||||||
@@ -88,10 +92,3 @@ volumes:
|
|||||||
name: forgejo_config
|
name: forgejo_config
|
||||||
forgejo_db:
|
forgejo_db:
|
||||||
name: forgejo_db
|
name: forgejo_db
|
||||||
# gitea
|
|
||||||
gitea_data:
|
|
||||||
name: gitea_data
|
|
||||||
gitea_config:
|
|
||||||
name: gitea_config
|
|
||||||
gitea_db:
|
|
||||||
name: gitea_db
|
|
||||||
@@ -39,16 +39,29 @@ defaultformatter = "plaintext"
|
|||||||
; (optional) set a syntax highlighting theme, as found in css/prettify/
|
; (optional) set a syntax highlighting theme, as found in css/prettify/
|
||||||
; syntaxhighlightingtheme = "sons-of-obsidian"
|
; syntaxhighlightingtheme = "sons-of-obsidian"
|
||||||
|
|
||||||
; size limit per paste or comment in bytes, defaults to 10 Mebibytes
|
; size limit per document or comment in bytes, defaults to 10 Megabytes
|
||||||
sizelimit = 10485760
|
sizelimit = 10000000
|
||||||
|
|
||||||
; template to include, default is "bootstrap" (tpl/bootstrap.php), also
|
; by default PrivateBin use "bootstrap5" template (tpl/bootstrap5.php).
|
||||||
; available are "page" (tpl/page.php), the classic ZeroBin style and several
|
; Optionally you can enable the template selection menu, which uses
|
||||||
; bootstrap variants: "bootstrap-dark", "bootstrap-compact", "bootstrap-page",
|
; a session cookie to store the choice until the browser is closed.
|
||||||
; which can be combined with "-dark" and "-compact" for "bootstrap-dark-page"
|
templateselection = false
|
||||||
; and finally "bootstrap-compact-page" - previews at:
|
|
||||||
|
; 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
|
; https://privatebin.info/screenshots.html
|
||||||
template = "bootstrap-dark"
|
; template = "bootstrap5"
|
||||||
|
|
||||||
; (optional) info text to display
|
; (optional) info text to display
|
||||||
; use single, instead of double quotes for HTML attributes
|
; use single, instead of double quotes for HTML attributes
|
||||||
@@ -66,17 +79,22 @@ languageselection = false
|
|||||||
; if this is set and language selection is disabled, this will be the only language
|
; if this is set and language selection is disabled, this will be the only language
|
||||||
; languagedefault = "en"
|
; languagedefault = "en"
|
||||||
|
|
||||||
; (optional) URL shortener address to offer after a new paste is created.
|
; (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
|
; It is suggested to only use this with self-hosted shorteners as this will leak
|
||||||
; the pastes encryption key.
|
; the documents encryption key.
|
||||||
; urlshortener = "https://shortener.example.com/api?link="
|
; urlshortener = "https://shortener.example.com/api?link="
|
||||||
|
|
||||||
; (optional) Let users create a QR code for sharing the paste URL with one click.
|
; (optional) Whether to shorten the URL by default when a new document is created.
|
||||||
; It works both when a new paste is created and when you view a paste.
|
; 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
|
; qrcode = true
|
||||||
|
|
||||||
; (optional) Let users send an email sharing the paste URL with one click.
|
; (optional) Let users send an email sharing the document URL with one click.
|
||||||
; It works both when a new paste is created and when you view a paste.
|
; It works both when a new document is created and when you view a document.
|
||||||
; email = true
|
; email = true
|
||||||
|
|
||||||
; (optional) IP based icons are a weak mechanism to detect if a comment was from
|
; (optional) IP based icons are a weak mechanism to detect if a comment was from
|
||||||
@@ -84,7 +102,7 @@ languageselection = false
|
|||||||
; used to get the IP of a comment poster if the server salt is leaked and a
|
; 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.
|
; SHA512 HMAC rainbow table is generated for all (relevant) IPs.
|
||||||
; Can be set to one these values:
|
; Can be set to one these values:
|
||||||
; "none" / "identicon" (default) / "jdenticon" / "vizhash".
|
; "none" / "identicon" / "jdenticon" (default) / "vizhash".
|
||||||
; icon = "none"
|
; icon = "none"
|
||||||
|
|
||||||
; Content Security Policy headers allow a website to restrict what sources are
|
; Content Security Policy headers allow a website to restrict what sources are
|
||||||
@@ -93,24 +111,21 @@ languageselection = false
|
|||||||
; scripts or run your site behind certain DDoS-protection services.
|
; scripts or run your site behind certain DDoS-protection services.
|
||||||
; Check the documentation at https://content-security-policy.com/
|
; Check the documentation at https://content-security-policy.com/
|
||||||
; Notes:
|
; Notes:
|
||||||
; - If you use any bootstrap theme, you can remove the allow-popups from the
|
|
||||||
; sandbox restrictions.
|
|
||||||
; - If you use the bootstrap5 theme, you must change default-src to 'self' to
|
|
||||||
; enable display of the svg icons
|
|
||||||
; - By default this disallows to load images from third-party servers, e.g. when
|
; - By default this disallows to load images from third-party servers, e.g. when
|
||||||
; they are embedded in pastes. If you wish to allow that, you can adjust the
|
; 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
|
; policy here. See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-it-load-embedded-images
|
||||||
; for details.
|
; for details.
|
||||||
; - The 'unsafe-eval' is used in two cases; to check if the browser supports
|
; - The 'wasm-unsafe-eval' is used to enable webassembly support (used for zlib
|
||||||
; async functions and display an error if not and for Chrome to enable
|
; compression). You can remove it if compression doesn't need to be supported.
|
||||||
; webassembly support (used for zlib compression). You can remove it if Chrome
|
; - The 'unsafe-inline' style-src is used by Chrome when displaying PDF previews
|
||||||
; doesn't need to be supported and old browsers don't need to be warned.
|
; and can be omitted if attachment upload is disabled (which is the default).
|
||||||
; cspheader = "default-src 'none'; base-uri 'self'; form-action 'none'; manifest-src 'self'; connect-src * blob:; script-src 'self' 'unsafe-eval'; style-src 'self'; font-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob:; media-src blob:; object-src blob:; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads"
|
; See https://issues.chromium.org/issues/343754409
|
||||||
|
; - To allow displaying PDF previews in Firefox or Chrome, sandboxing must also
|
||||||
; stay compatible with PrivateBin Alpha 0.19, less secure
|
; get turned off. The following CSP allows PDF previews:
|
||||||
; if enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of
|
; 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:"
|
||||||
; sha256 in HMAC for the deletion token
|
;
|
||||||
; zerobincompatibility = false
|
; 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
|
; Enable or disable the warning message when the site is served over an insecure
|
||||||
; connection (insecure HTTP instead of HTTPS), defaults to true.
|
; connection (insecure HTTP instead of HTTPS), defaults to true.
|
||||||
@@ -119,7 +134,7 @@ languageselection = false
|
|||||||
; See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-it-show-me-an-error-about-an-insecure-connection for more information.
|
; See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-it-show-me-an-error-about-an-insecure-connection for more information.
|
||||||
; httpwarning = true
|
; httpwarning = true
|
||||||
|
|
||||||
; Pick compression algorithm or disable it. Only applies to pastes/comments
|
; Pick compression algorithm or disable it. Only applies to documents & comments
|
||||||
; created after changing the setting.
|
; created after changing the setting.
|
||||||
; Can be set to one these values: "none" / "zlib" (default).
|
; Can be set to one these values: "none" / "zlib" (default).
|
||||||
; compression = "zlib"
|
; compression = "zlib"
|
||||||
@@ -160,9 +175,9 @@ limit = 10
|
|||||||
; exempted = "1.2.3.4,10.10.10/24"
|
; exempted = "1.2.3.4,10.10.10/24"
|
||||||
|
|
||||||
; (optional) If you want only some source IP addresses (v4 or v6) or subnets
|
; (optional) If you want only some source IP addresses (v4 or v6) or subnets
|
||||||
; (CIDR) to be allowed to create pastes, set these here. Invalid IPs will be
|
; (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
|
; ignored. If multiple values are to be exempted, the list needs to be comma
|
||||||
; separated. Leave unset to allow anyone to create pastes.
|
; separated. Leave unset to allow anyone to create documents.
|
||||||
; creators = "1.2.3.4,10.10.10/24"
|
; creators = "1.2.3.4,10.10.10/24"
|
||||||
|
|
||||||
; (optional) if your website runs behind a reverse proxy or load balancer,
|
; (optional) if your website runs behind a reverse proxy or load balancer,
|
||||||
@@ -170,12 +185,12 @@ limit = 10
|
|||||||
; header = "X_FORWARDED_FOR"
|
; header = "X_FORWARDED_FOR"
|
||||||
|
|
||||||
[purge]
|
[purge]
|
||||||
; minimum time limit between two purgings of expired pastes, it is only
|
; minimum time limit between two purgings of expired documents, it is only
|
||||||
; triggered when pastes are created
|
; checked when documents get created
|
||||||
; Set this to 0 to run a purge every time a paste is created.
|
; Set this to 0 to run a purge every time a document is created.
|
||||||
limit = 300
|
limit = 300
|
||||||
|
|
||||||
; maximum amount of expired pastes to delete in one purge
|
; 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
|
; Set this to 0 to disable purging. Set it higher, if you are running a large
|
||||||
; site
|
; site
|
||||||
batchsize = 10
|
batchsize = 10
|
||||||
@@ -259,7 +274,7 @@ dir = PATH "data"
|
|||||||
;version = "latest"
|
;version = "latest"
|
||||||
;bucket = "my-bucket"
|
;bucket = "my-bucket"
|
||||||
|
|
||||||
[yourls]
|
;[yourls]
|
||||||
; When using YOURLS as a "urlshortener" config item:
|
; When using YOURLS as a "urlshortener" config item:
|
||||||
; - By default, "urlshortener" will point to the YOURLS API URL, with or without
|
; - 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.
|
; credentials, and will be visible in public on the PrivateBin web page.
|
||||||
@@ -280,4 +295,4 @@ dir = PATH "data"
|
|||||||
; Subresource integrity (SRI) hashes used in template files. Uncomment and set
|
; Subresource integrity (SRI) hashes used in template files. Uncomment and set
|
||||||
; these for all js files used. See:
|
; 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
|
; https://github.com/PrivateBin/PrivateBin/wiki/FAQ#user-content-how-to-make-privatebin-work-when-i-have-changed-some-javascript-files
|
||||||
;privatebin.js = sha512-[…]
|
;js/privatebin.js = "sha512-[…]"
|
||||||
@@ -13,9 +13,13 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
|
ports:
|
||||||
|
- 6881:6881
|
||||||
|
- 6881:6881/udp
|
||||||
volumes:
|
volumes:
|
||||||
- qbittorrent_config:/config
|
- qbittorrent_config:/config
|
||||||
- public_data:/downloads
|
- public_data:/downloads
|
||||||
|
- private_data:/private_downloads
|
||||||
networks:
|
networks:
|
||||||
- infra-network
|
- infra-network
|
||||||
security_opt:
|
security_opt:
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
TZ=Etc/UTC
|
TZ=Etc/UTC
|
||||||
WEBUI_PORT=8080
|
WEBUI_PORT=8080
|
||||||
TORRENTING_PORT=6881
|
TORRENTING_PORT=6881
|
||||||
|
# Use alternative WebUI: /vuetorrent
|
||||||
|
DOCKER_MODS=ghcr.io/vuetorrent/vuetorrent-lsio-mod:latest
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
#//////////////////////////////////////////////////////////////
|
||||||
|
#// //
|
||||||
|
#// 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: docker-check
|
||||||
|
docker-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: update-docker
|
||||||
|
update-docker:
|
||||||
|
$(DOCKER_COMPOSE_COMMAND) pull
|
||||||
|
|
||||||
|
.PHONY: update
|
||||||
|
update: update-docker
|
||||||
|
# git submodule update --init --recursive --remote
|
||||||
|
git pull --recurse-submodules --all --progress
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
docker system prune -f
|
||||||
|
|
||||||
|
.PHONY: purge
|
||||||
|
purge:
|
||||||
|
$(ENV_ARG_VAR) $(DOCKER_EXEC) compose $(COMPOSE_DIR) $(COMPOSE_FILES) down -v --rmi all
|
||||||
18
infrastructure/services/teamfortress2-server/Makefile
Normal file
18
infrastructure/services/teamfortress2-server/Makefile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#//////////////////////////////////////////////////////////////
|
||||||
|
#// //
|
||||||
|
#// Script, 2022 //
|
||||||
|
#// Created: 14, April, 2022 //
|
||||||
|
#// Modified: 30, November, 2024 //
|
||||||
|
#// file: - //
|
||||||
|
#// - //
|
||||||
|
#// Source: //
|
||||||
|
#// OS: ALL //
|
||||||
|
#// CPU: ALL //
|
||||||
|
#// //
|
||||||
|
#//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
PROJECT_DIRECTORY := teamfortress2-server
|
||||||
|
|
||||||
|
DOCKER_PROFILES := team_fortress_server team_fortress_backup
|
||||||
|
|
||||||
|
include DockerCompose.mk
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
services:
|
||||||
|
teamfortress2_backup:
|
||||||
|
image: mazzolino/restic:latest
|
||||||
|
container_name: teamfortress2_backup
|
||||||
|
profiles:
|
||||||
|
- teamfortress2_backup
|
||||||
|
depends_on:
|
||||||
|
- teamfortress2_server
|
||||||
|
restart: on-failure:5
|
||||||
|
env_file:
|
||||||
|
- ./env/teamfortress2_backup.env
|
||||||
|
volumes:
|
||||||
|
- teamfortress2_backup:/mnt/restic
|
||||||
|
- teamfortress2_data:/data:ro
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
network_mode: none
|
||||||
|
cap_drop:
|
||||||
|
- NET_ADMIN
|
||||||
|
- NET_RAW
|
||||||
|
- SYS_ADMIN
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
teamfortress2_backup:
|
||||||
|
name: teamfortress2_backup
|
||||||
|
teamfortress2_data:
|
||||||
|
name: teamfortress2_data
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#RUN_ON_STARTUP=true
|
||||||
|
RESTIC_REPOSITORY=/mnt/restic
|
||||||
|
RESTIC_BACKUP_SOURCES=/data
|
||||||
|
RESTIC_PASSWORD=SCY5cmu12Odca302EXabPA9jXYkCb2NN
|
||||||
|
# Backup (exuclusive with Check and Prune)
|
||||||
|
BACKUP_CRON=*/15 * * * *
|
||||||
|
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=*/15 * * * *
|
||||||
|
#RESTIC_CHECK_ARGS=--read-data-subset=40%
|
||||||
|
# Prune (exuclusive with Check and Prune)
|
||||||
|
#PRUNE_CRON=*/15 * * * *
|
||||||
|
#RESTIC_PRUNE_ARGS=
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
include:
|
||||||
|
# Team Fortress 2 server
|
||||||
|
- teamfortress2/docker-compose.teamfortress2.yml
|
||||||
|
# OpenSSH server
|
||||||
|
- openssh/docker-compose.openssh.yml
|
||||||
|
# Backup server
|
||||||
|
- backup/docker-compose.backup.yml
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVtzpnPr0Boy+bUbL+viOYfqeetDZF6Hu40EwNLXNb0 bensuperpc@gmail.com
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
services:
|
||||||
|
# openssh
|
||||||
|
teamfortress2_openssh:
|
||||||
|
image: linuxserver/openssh-server:latest
|
||||||
|
container_name: teamfortress2_openssh
|
||||||
|
profiles:
|
||||||
|
- teamfortress2_openssh
|
||||||
|
depends_on:
|
||||||
|
- teamfortress2_server
|
||||||
|
restart: on-failure:5
|
||||||
|
env_file:
|
||||||
|
- ./env/openssh.env
|
||||||
|
environment:
|
||||||
|
- PUID=${PUID:-1000}
|
||||||
|
- PGID=${PGID:-1000}
|
||||||
|
volumes:
|
||||||
|
- teamfortress2_openssh_config:/config
|
||||||
|
- ./config/authorized_keys:/authorized_ssh_keys:ro
|
||||||
|
- teamfortress2_backup:/teamfortress2_backup
|
||||||
|
- teamfortress2_data:/teamfortress2_data
|
||||||
|
networks:
|
||||||
|
- infra-network
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:false
|
||||||
|
cap_drop:
|
||||||
|
- SYS_ADMIN
|
||||||
|
ports:
|
||||||
|
- 2222:2222
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
teamfortress2_openssh_config:
|
||||||
|
name: teamfortress2_openssh_config
|
||||||
|
teamfortress2_backup:
|
||||||
|
name: teamfortress2_backup
|
||||||
|
teamfortress2_data:
|
||||||
|
name: teamfortress2_data
|
||||||
15
infrastructure/services/teamfortress2-server/teamfortress2-server/openssh/env/openssh.env
vendored
Normal file
15
infrastructure/services/teamfortress2-server/teamfortress2-server/openssh/env/openssh.env
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
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=K4CLuwknhW6sl6fxKI5DsNt9R9SSelmC
|
||||||
|
|
||||||
|
#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=
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
services:
|
||||||
|
# Team Fortress 2 server
|
||||||
|
teamfortress2_server:
|
||||||
|
image: cm2network/tf2:sourcemod-x64
|
||||||
|
container_name: teamfortress2_server
|
||||||
|
profiles:
|
||||||
|
- teamfortress2_server
|
||||||
|
restart: on-failure:5
|
||||||
|
ports:
|
||||||
|
- "27015:27015/tcp"
|
||||||
|
- "27015:27015/udp"
|
||||||
|
volumes:
|
||||||
|
- teamfortress2_data:/home/steam/tf-dedicated
|
||||||
|
networks:
|
||||||
|
- infra-network
|
||||||
|
env_file:
|
||||||
|
- ./env/teamfortress2.env
|
||||||
|
# environment:
|
||||||
|
# - PUID=${PUID:-1000}
|
||||||
|
# - PGID=${PGID:-1000}
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
cap_drop:
|
||||||
|
- SYS_ADMIN
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 16G
|
||||||
|
reservations:
|
||||||
|
memory: 4G
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
teamfortress2_data:
|
||||||
|
name: teamfortress2_data
|
||||||
|
|
||||||
|
networks:
|
||||||
|
infra-network:
|
||||||
|
driver: bridge
|
||||||
|
name: infra-network
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
SRCDS_TOKEN=
|
||||||
|
SRCDS_PW=linuxmasterrace
|
||||||
|
SRCDS_PORT=27015
|
||||||
|
SRCDS_MAXPLAYERS=32
|
||||||
|
SRCDS_REGION=3
|
||||||
|
SRCDS_STARTMAP=pl_goldrush
|
||||||
|
#SRCDS_MAPCYCLE="mapcycle_default.txt"
|
||||||
|
#pl_badwater
|
||||||
|
SRCDS_CFG=server.cfg
|
||||||
|
SRCDS_SECURED=0
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
services:
|
|
||||||
# yacht
|
|
||||||
yacht:
|
|
||||||
image: selfhostedpro/yacht:latest
|
|
||||||
container_name: yacht
|
|
||||||
profiles:
|
|
||||||
- yacht
|
|
||||||
restart: on-failure:5
|
|
||||||
depends_on:
|
|
||||||
- caddy
|
|
||||||
env_file:
|
|
||||||
- ./env/yacht.env
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
- yacht_config:/config
|
|
||||||
networks:
|
|
||||||
- infra-network
|
|
||||||
security_opt:
|
|
||||||
- no-new-privileges:true
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
yacht_config:
|
|
||||||
name: yacht_config
|
|
||||||
3
infrastructure/services/yacht/env/yacht.env
vendored
3
infrastructure/services/yacht/env/yacht.env
vendored
@@ -1,3 +0,0 @@
|
|||||||
ADMIN_EMAIL=bensuperpc@gmail.com
|
|
||||||
SECRET_KEY=UZvg9nbcGIJlPEB3uI39TAEWyFOz9nm8
|
|
||||||
#DATABASE_URL=postgresql://user:password@postgresserver/db
|
|
||||||
1
presets/7dtd.conf
Normal file
1
presets/7dtd.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DOCKER_PROFILES += 7daystodie_server 7daystodie_backup
|
||||||
2
presets/forgejo.conf
Normal file
2
presets/forgejo.conf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
DOCKER_PROFILES += main_infrastructure caddy
|
||||||
|
DOCKER_PROFILES += forgejo forgejo-runner
|
||||||
1
presets/minecraft.conf
Normal file
1
presets/minecraft.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DOCKER_PROFILES += minecraft_server minecraft_backup
|
||||||
1
presets/satisfactory.conf
Normal file
1
presets/satisfactory.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DOCKER_PROFILES += satisfactory_server satisfactory_backup
|
||||||
2
presets/tf2.conf
Normal file
2
presets/tf2.conf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
DOCKER_PROFILES += teamfortress2_server
|
||||||
|
# teamfortress2_backup
|
||||||
3
presets/torrent.conf
Normal file
3
presets/torrent.conf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
DOCKER_PROFILES += main_infrastructure caddy
|
||||||
|
DOCKER_PROFILES += qbittorrent openssh
|
||||||
|
# transmission
|
||||||
3
presets/utils.conf
Normal file
3
presets/utils.conf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
DOCKER_PROFILES += main_infrastructure caddy homepage
|
||||||
|
DOCKER_PROFILES += it-tools omni-tools cyberchef
|
||||||
|
DOCKER_PROFILES += qbittorrent
|
||||||
@@ -7,14 +7,17 @@ volumes=(
|
|||||||
7daystodie_server_save
|
7daystodie_server_save
|
||||||
7daystodie_server_config_lgsm
|
7daystodie_server_config_lgsm
|
||||||
7daystodie_server_log
|
7daystodie_server_log
|
||||||
# 7daystodie_server_file
|
7daystodie_server_file
|
||||||
# satisfactory_server_config
|
# satisfactory_server_config
|
||||||
|
# satisfactory_backup
|
||||||
forgejo_data
|
forgejo_data
|
||||||
wordpress_db
|
wordpress_db
|
||||||
minecraft_proxy_data
|
minecraft_proxy_data
|
||||||
|
minecraft_rcon_data
|
||||||
|
minecraft_server_data
|
||||||
|
minecraft_server_backup
|
||||||
stirlingpdf_tessdata
|
stirlingpdf_tessdata
|
||||||
wordpress
|
wordpress
|
||||||
gitea_db
|
|
||||||
# wordpress_backup
|
# wordpress_backup
|
||||||
projectsend_share
|
projectsend_share
|
||||||
transmission_config
|
transmission_config
|
||||||
@@ -22,33 +25,21 @@ volumes=(
|
|||||||
projectsend_db
|
projectsend_db
|
||||||
projectsend_config
|
projectsend_config
|
||||||
open-webui
|
open-webui
|
||||||
minecraft_rcon_data
|
|
||||||
jellyfin_cache
|
jellyfin_cache
|
||||||
caddy_backup
|
caddy_backup
|
||||||
# satisfactory_backup
|
caddy_config
|
||||||
|
caddy_data
|
||||||
homepage_log
|
homepage_log
|
||||||
syncthing_config
|
syncthing_config
|
||||||
openssh_config
|
openssh_config
|
||||||
minecraft_server_backup
|
|
||||||
qbittorrent_config
|
qbittorrent_config
|
||||||
gitea_runner
|
|
||||||
gitea_config
|
|
||||||
minecraft_server_data
|
|
||||||
ollama
|
ollama
|
||||||
caddy_data
|
|
||||||
forgejo_config
|
|
||||||
stirlingpdf_config
|
stirlingpdf_config
|
||||||
uptimekuma_data
|
uptimekuma_data
|
||||||
# private_data
|
# private_data
|
||||||
yacht_config
|
|
||||||
transmission_watch
|
transmission_watch
|
||||||
forgejo_db
|
|
||||||
privatebin_data
|
privatebin_data
|
||||||
caddy_config
|
|
||||||
psitransfer_data
|
psitransfer_data
|
||||||
forgejo_certs
|
|
||||||
forgejo_runner
|
|
||||||
gitea_data
|
|
||||||
jellyfin_config
|
jellyfin_config
|
||||||
picoshare_data
|
picoshare_data
|
||||||
forgejo_data
|
forgejo_data
|
||||||
|
|||||||
Reference in New Issue
Block a user