mirror of
https://github.com/bensuperpc/infrastructure.git
synced 2025-10-25 15:26: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
|
||||
steps:
|
||||
- name: "Checkout Code"
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
submodules: "recursive"
|
||||
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
|
||||
steps:
|
||||
- name: "Checkout Code"
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
token: ${{ secrets.CI_TOKEN }}
|
||||
repository: ${{ github.repository }}
|
||||
|
||||
@@ -15,9 +15,14 @@ PROJECT_DIRECTORY ?= infrastructure
|
||||
|
||||
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_DIR ?= --project-directory ./$(PROJECT_DIRECTORY)
|
||||
@@ -32,40 +37,20 @@ DOCKER_COMPOSE_COMMAND ?= $(ENV_ARG_VAR) $(DOCKER_EXEC) compose $(COMPOSE_DIR) $
|
||||
.PHONY: build all
|
||||
all: start
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
$(DOCKER_COMPOSE_COMMAND) build
|
||||
GENERIC_TARGETS := build down up run config logs pull images start restart stop
|
||||
|
||||
.PHONY: start
|
||||
start:
|
||||
.PHONY: $(GENERIC_TARGETS)
|
||||
$(GENERIC_TARGETS):
|
||||
$(DOCKER_COMPOSE_COMMAND) $@
|
||||
|
||||
.PHONY: start-detached
|
||||
start-detached:
|
||||
$(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
|
||||
@@ -75,10 +60,6 @@ state:
|
||||
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
|
||||
|
||||
30
Makefile
30
Makefile
@@ -11,25 +11,21 @@
|
||||
#// //
|
||||
#//////////////////////////////////////////////////////////////
|
||||
|
||||
ADMIN_SERVICES := openssh uptime-kuma yacht
|
||||
BLOG_SERVICES := wordpress
|
||||
#7DAYS_TO_DIE_SERVICES := 7daystodie_server 7daystodie_backup
|
||||
#MINECRAFT_SERVICES := minecraft_server minecraft_backup
|
||||
#SATISFACTORY_SERVICES := satisfactory_server satisfactory_backup
|
||||
GIT_SERVICES := forgejo
|
||||
# forgejo-runner
|
||||
# gitea gitea-runner
|
||||
IA_SERVICES := open-webui
|
||||
SHARING_SERVICES := psitransfer picoshare privatebin projectsend jellyfin dufs syncthing
|
||||
TORRENTS_SERVICES := qbittorrent transmission
|
||||
UTILS_SERVICES := it-tools stirlingpdf omni-tools
|
||||
MAIN_SERVICES := main_infrastructure caddy homepage
|
||||
#ADMIN_SERVICES := openssh
|
||||
# uptime-kuma
|
||||
#BLOG_SERVICES := wordpress
|
||||
#IA_SERVICES := open-webui
|
||||
#SHARING_SERVICES := privatebin
|
||||
# jellyfin
|
||||
# psitransfer picoshare projectsend dufs syncthing
|
||||
#UTILS_SERVICES := it-tools omni-tools cyberchef
|
||||
# homepage
|
||||
# stirlingpdf
|
||||
|
||||
PROJECT_DIRECTORY := infrastructure
|
||||
CONFIG_DIRECTORY := presets
|
||||
|
||||
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)
|
||||
CONFIGS := torrent
|
||||
#DOCKER_PROFILES :=
|
||||
|
||||
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] Wordpress (Via FASTCGI/caddy)
|
||||
- [x] Jellyfin (Media server)
|
||||
- [x] Gitea (Git server)
|
||||
- [x] Forgejo (Git server, fork of Gitea)
|
||||
- [x] Uptime Kuma (Monitoring)
|
||||
- [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] Open-WebUI (Local chatGPT)
|
||||
- [x] Privatebin (Pastebin)
|
||||
- [x] Yacht (Web interface for managing docker containers)
|
||||
- [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)
|
||||
@@ -57,7 +55,6 @@ List of ports used by the services in this infrastructure:
|
||||
| 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 |
|
||||
@@ -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 |
|
||||
| [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 |
|
||||
@@ -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 |
|
||||
| [omni-tools.bensuperpc.org](https://omni-tools.bensuperpc.org) | Sub | Tools for IT |
|
||||
| [privatebin.bensuperpc.org](https://privatebin.bensuperpc.org) | Sub | Pastebin |
|
||||
| [yacht.bensuperpc.org](https://yacht.bensuperpc.org) | Sub | Web interface for managing docker containers |
|
||||
| [projectsend.bensuperpc.org](https://projectsend.bensuperpc.org) | Sub | ProjectSend for file sharing |
|
||||
| [picoshare.bensuperpc.org](https://picoshare.bensuperpc.org) | Sub | Picoshare for file sharing |
|
||||
| [dufs.bensuperpc.org](https://dufs.bensuperpc.org) | Sub | Dufs for file sharing |
|
||||
| [public.bensuperpc.org](https://public.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 |
|
||||
|
||||
@@ -165,24 +159,6 @@ For [wordpress_backup.env](infrastructure/services/wordpress/env/wordpress_backu
|
||||
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
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
```sh
|
||||
@@ -296,6 +266,14 @@ You can change the homepage config in these files:
|
||||
|
||||
### 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
|
||||
```
|
||||
@@ -380,7 +358,6 @@ ssh -p 2222 admin@bensuperpc.org
|
||||
- [Privatebin](https://github.com/PrivateBin/PrivateBin)
|
||||
- [ghost](https://ghost.org)
|
||||
- [Homepage Tuto](https://belginux.com/installer-homepage-avec-docker/)
|
||||
- [Yacht](https://yacht.sh/)
|
||||
- [ProjectSend](https://www.projectsend.org/)
|
||||
- [Picoshare](https://github.com/mtlynch/picoshare)
|
||||
- [Dufs](https://github.com/sigoden/dufs)
|
||||
|
||||
@@ -7,8 +7,6 @@ include:
|
||||
- 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
|
||||
@@ -17,6 +15,8 @@ include:
|
||||
- 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
|
||||
@@ -39,8 +39,6 @@ include:
|
||||
- services/transmission/docker-compose.transmission.yml
|
||||
# Uptime-kuma
|
||||
- services/uptime-kuma/docker-compose.uptime-kuma.yml
|
||||
# Yacht
|
||||
- services/yacht/docker-compose.yacht.yml
|
||||
# open-webui
|
||||
- services/open-webui/docker-compose.open-webui.yml
|
||||
# Minecraft
|
||||
@@ -49,3 +47,5 @@ include:
|
||||
- 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 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} {
|
||||
# Load balance between 2 instances
|
||||
reverse_proxy {
|
||||
to it-tools0:80 it-tools1:80
|
||||
to it-tools0:8080 it-tools1:8080
|
||||
lb_policy round_robin
|
||||
lb_retries 3
|
||||
lb_try_interval 1s
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
torrent.{$MAIN_DOMAIN} {
|
||||
reverse_proxy qbittorrent:8080
|
||||
header {
|
||||
Cache-Control "no-store"
|
||||
import header_common
|
||||
}
|
||||
}
|
||||
|
||||
qbittorrent.{$MAIN_DOMAIN} {
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
yacht.{$MAIN_DOMAIN} {
|
||||
reverse_proxy yacht:8000
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
# Caddy
|
||||
caddy:
|
||||
image: caddy:latest
|
||||
image: bensuperpc/caddy-l4:latest
|
||||
container_name: caddy
|
||||
profiles:
|
||||
- caddy
|
||||
@@ -10,8 +10,10 @@ services:
|
||||
condition: service_completed_successfully
|
||||
restart: on-failure:5
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
- 80:80/tcp
|
||||
- 80:80/udp
|
||||
- 443:443/tcp
|
||||
- 443:443/udp
|
||||
volumes:
|
||||
- caddy_data:/data: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:
|
||||
# forgejo
|
||||
forgejo:
|
||||
image: codeberg.org/forgejo/forgejo:11-rootless
|
||||
image: codeberg.org/forgejo/forgejo:13-rootless
|
||||
container_name: forgejo
|
||||
profiles:
|
||||
- forgejo
|
||||
@@ -10,7 +10,7 @@ services:
|
||||
- database_forgejo
|
||||
- caddy
|
||||
ports:
|
||||
- "22:22"
|
||||
- "22:2222"
|
||||
env_file:
|
||||
- ./env/forgejo.env
|
||||
volumes:
|
||||
@@ -20,6 +20,7 @@ services:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
networks:
|
||||
- infra-network
|
||||
user: ${PUID:-1000}:${PGID:-1000}
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
@@ -50,7 +51,7 @@ services:
|
||||
networks:
|
||||
- infra-network
|
||||
profiles:
|
||||
- forgejo
|
||||
- forgejo-runner
|
||||
privileged: true
|
||||
environment:
|
||||
DOCKER_TLS_CERTDIR: /certs
|
||||
@@ -59,7 +60,7 @@ services:
|
||||
- forgejo_certs:/certs
|
||||
|
||||
forgejo_runner:
|
||||
image: 'code.forgejo.org/forgejo/runner:6.3.1'
|
||||
image: data.forgejo.org/forgejo/runner:9
|
||||
networks:
|
||||
- infra-network
|
||||
profiles:
|
||||
@@ -72,7 +73,7 @@ services:
|
||||
container_name: 'forgejo_runner'
|
||||
env_file:
|
||||
- ./env/forgejo_runner.env
|
||||
# user: 1001:1001
|
||||
user: ${PUID:-1000}:${PGID:-1000}
|
||||
volumes:
|
||||
# - ./config/forgejo_runner/config.yaml:/config.yaml:ro
|
||||
- forgejo_runner:/data
|
||||
|
||||
@@ -5,12 +5,12 @@ FORGEJO__database__HOST=database_forgejo:3306
|
||||
FORGEJO__database__NAME=forgejo
|
||||
FORGEJO__database__USER=bensuperpc
|
||||
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__server__DOMAIN=git.bensuperpc.org
|
||||
FORGEJO__server__SSH_DOMAIN=git.bensuperpc.org
|
||||
FORGEJO__server__HTTP_PORT=3000
|
||||
FORGEJO__server__SSH_LISTEN_PORT=22
|
||||
FORGEJO__server__SSH_LISTEN_PORT=2222
|
||||
FORGEJO__server__SSH_PORT=22
|
||||
FORGEJO__server__ROOT_URL=https://git.bensuperpc.org
|
||||
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
|
||||
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
|
||||
# - 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:
|
||||
@@ -84,18 +84,18 @@
|
||||
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/
|
||||
@@ -136,10 +136,4 @@
|
||||
description: Uptime Kuma
|
||||
ping: uptimekuma.bensuperpc.org
|
||||
container: uptime-kuma
|
||||
- yacht:
|
||||
# icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/yacht.png
|
||||
href: https://yacht.bensuperpc.org/
|
||||
description: Yacht
|
||||
ping: yacht.bensuperpc.org
|
||||
container: yacht
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ services:
|
||||
- ./env/homepage.env
|
||||
volumes:
|
||||
- homepage_log:/app/logs
|
||||
- ./config:/app/config:ro
|
||||
- ./config:/app/config
|
||||
- ./image:/app/public/image:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
# develop:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
# it-tools
|
||||
it-tools0:
|
||||
image: corentinth/it-tools:latest
|
||||
image: ghcr.io/sharevb/it-tools:latest
|
||||
container_name: it-tools0
|
||||
profiles:
|
||||
- it-tools
|
||||
@@ -26,7 +26,7 @@ services:
|
||||
memory: 20M
|
||||
|
||||
it-tools1:
|
||||
image: corentinth/it-tools:latest
|
||||
image: ghcr.io/sharevb/it-tools:latest
|
||||
container_name: it-tools1
|
||||
profiles:
|
||||
- it-tools
|
||||
|
||||
@@ -28,7 +28,3 @@ networks:
|
||||
infra-network:
|
||||
driver: bridge
|
||||
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:
|
||||
- openssh_config:/config:rw
|
||||
- ./config/authorized_keys:/authorized_ssh_keys:ro
|
||||
- public_data:/public:rw
|
||||
- private_data:/private:rw
|
||||
- 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
|
||||
@@ -33,9 +33,8 @@ services:
|
||||
- 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
|
||||
@@ -81,6 +80,11 @@ volumes:
|
||||
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
|
||||
@@ -88,10 +92,3 @@ volumes:
|
||||
name: forgejo_config
|
||||
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/
|
||||
; syntaxhighlightingtheme = "sons-of-obsidian"
|
||||
|
||||
; size limit per paste or comment in bytes, defaults to 10 Mebibytes
|
||||
sizelimit = 10485760
|
||||
; size limit per document or comment in bytes, defaults to 10 Megabytes
|
||||
sizelimit = 10000000
|
||||
|
||||
; template to include, default is "bootstrap" (tpl/bootstrap.php), also
|
||||
; available are "page" (tpl/page.php), the classic ZeroBin style and several
|
||||
; bootstrap variants: "bootstrap-dark", "bootstrap-compact", "bootstrap-page",
|
||||
; which can be combined with "-dark" and "-compact" for "bootstrap-dark-page"
|
||||
; and finally "bootstrap-compact-page" - previews at:
|
||||
; 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 = "bootstrap-dark"
|
||||
; template = "bootstrap5"
|
||||
|
||||
; (optional) info text to display
|
||||
; 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
|
||||
; 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
|
||||
; the pastes encryption key.
|
||||
; the documents encryption key.
|
||||
; urlshortener = "https://shortener.example.com/api?link="
|
||||
|
||||
; (optional) Let users create a QR code for sharing the paste URL with one click.
|
||||
; It works both when a new paste is created and when you view a paste.
|
||||
; (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 paste URL with one click.
|
||||
; It works both when a new paste is created and when you view a paste.
|
||||
; (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
|
||||
@@ -84,7 +102,7 @@ languageselection = false
|
||||
; used to get the IP of a comment poster if the server salt is leaked and a
|
||||
; SHA512 HMAC rainbow table is generated for all (relevant) IPs.
|
||||
; Can be set to one these values:
|
||||
; "none" / "identicon" (default) / "jdenticon" / "vizhash".
|
||||
; "none" / "identicon" / "jdenticon" (default) / "vizhash".
|
||||
; icon = "none"
|
||||
|
||||
; 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.
|
||||
; Check the documentation at https://content-security-policy.com/
|
||||
; Notes:
|
||||
; - If you use any bootstrap theme, you can remove the allow-popups from the
|
||||
; sandbox restrictions.
|
||||
; - If you use the bootstrap5 theme, you must change default-src to 'self' to
|
||||
; enable display of the svg icons
|
||||
; - By default this disallows to load images from third-party servers, e.g. when
|
||||
; they are embedded in pastes. If you wish to allow that, you can adjust the
|
||||
; 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 'unsafe-eval' is used in two cases; to check if the browser supports
|
||||
; async functions and display an error if not and for Chrome to enable
|
||||
; webassembly support (used for zlib compression). You can remove it if Chrome
|
||||
; doesn't need to be supported and old browsers don't need to be warned.
|
||||
; cspheader = "default-src 'none'; base-uri 'self'; form-action 'none'; manifest-src 'self'; connect-src * blob:; script-src 'self' 'unsafe-eval'; style-src 'self'; font-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob:; media-src blob:; object-src blob:; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads"
|
||||
|
||||
; stay compatible with PrivateBin Alpha 0.19, less secure
|
||||
; if enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of
|
||||
; sha256 in HMAC for the deletion token
|
||||
; zerobincompatibility = false
|
||||
; - 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.
|
||||
@@ -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.
|
||||
; 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.
|
||||
; Can be set to one these values: "none" / "zlib" (default).
|
||||
; compression = "zlib"
|
||||
@@ -160,9 +175,9 @@ limit = 10
|
||||
; exempted = "1.2.3.4,10.10.10/24"
|
||||
|
||||
; (optional) If you want only some source IP addresses (v4 or v6) or subnets
|
||||
; (CIDR) to be allowed to create pastes, set these here. Invalid IPs will be
|
||||
; (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 pastes.
|
||||
; 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,
|
||||
@@ -170,12 +185,12 @@ limit = 10
|
||||
; header = "X_FORWARDED_FOR"
|
||||
|
||||
[purge]
|
||||
; minimum time limit between two purgings of expired pastes, it is only
|
||||
; triggered when pastes are created
|
||||
; Set this to 0 to run a purge every time a paste is created.
|
||||
; 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 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
|
||||
; site
|
||||
batchsize = 10
|
||||
@@ -259,7 +274,7 @@ dir = PATH "data"
|
||||
;version = "latest"
|
||||
;bucket = "my-bucket"
|
||||
|
||||
[yourls]
|
||||
;[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.
|
||||
@@ -280,4 +295,4 @@ dir = PATH "data"
|
||||
; Subresource integrity (SRI) hashes used in template files. Uncomment and set
|
||||
; these for all js files used. See:
|
||||
; https://github.com/PrivateBin/PrivateBin/wiki/FAQ#user-content-how-to-make-privatebin-work-when-i-have-changed-some-javascript-files
|
||||
;privatebin.js = sha512-[…]
|
||||
;js/privatebin.js = "sha512-[…]"
|
||||
@@ -13,9 +13,13 @@ services:
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
ports:
|
||||
- 6881:6881
|
||||
- 6881:6881/udp
|
||||
volumes:
|
||||
- qbittorrent_config:/config
|
||||
- public_data:/downloads
|
||||
- private_data:/private_downloads
|
||||
networks:
|
||||
- infra-network
|
||||
security_opt:
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
TZ=Etc/UTC
|
||||
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_config_lgsm
|
||||
7daystodie_server_log
|
||||
# 7daystodie_server_file
|
||||
7daystodie_server_file
|
||||
# satisfactory_server_config
|
||||
# satisfactory_backup
|
||||
forgejo_data
|
||||
wordpress_db
|
||||
minecraft_proxy_data
|
||||
minecraft_rcon_data
|
||||
minecraft_server_data
|
||||
minecraft_server_backup
|
||||
stirlingpdf_tessdata
|
||||
wordpress
|
||||
gitea_db
|
||||
# wordpress_backup
|
||||
projectsend_share
|
||||
transmission_config
|
||||
@@ -22,33 +25,21 @@ volumes=(
|
||||
projectsend_db
|
||||
projectsend_config
|
||||
open-webui
|
||||
minecraft_rcon_data
|
||||
jellyfin_cache
|
||||
caddy_backup
|
||||
# satisfactory_backup
|
||||
caddy_config
|
||||
caddy_data
|
||||
homepage_log
|
||||
syncthing_config
|
||||
openssh_config
|
||||
minecraft_server_backup
|
||||
qbittorrent_config
|
||||
gitea_runner
|
||||
gitea_config
|
||||
minecraft_server_data
|
||||
ollama
|
||||
caddy_data
|
||||
forgejo_config
|
||||
stirlingpdf_config
|
||||
uptimekuma_data
|
||||
# private_data
|
||||
yacht_config
|
||||
transmission_watch
|
||||
forgejo_db
|
||||
privatebin_data
|
||||
caddy_config
|
||||
psitransfer_data
|
||||
forgejo_certs
|
||||
forgejo_runner
|
||||
gitea_data
|
||||
jellyfin_config
|
||||
picoshare_data
|
||||
forgejo_data
|
||||
|
||||
Reference in New Issue
Block a user