Initaler Commit - Glados Docker YMLs

This commit is contained in:
2026-05-14 11:23:02 +02:00
commit 37d42cebe7
7 changed files with 278 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
# Alles ignorieren
*
# Außer compose files
!**/docker-compose.yml
!**/compose.yml
# Und die gitignore selbst
!.gitignore
+40
View File
@@ -0,0 +1,40 @@
services:
docker-proxy:
image: tecnativa/docker-socket-proxy
container_name: docker_proxy
restart: unless-stopped
environment:
- CONTAINERS=1
- LOGS=1
- STATS=1
- NETWORKS=1
- VOLUMES=1
- IMAGES=1
- EVENTS=1
- INFO=1
- VERSION=1
- NODES=1
- POST=0
- DELETE=0
- AUTH=0
- SECRETS=0
- SERVICES=0
- TASKS=0
- PLUGINS=0
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- docker_proxy_net
ulimits:
nproc: 65535
nofile:
soft: 65535
hard: 65535
networks:
docker_proxy_net:
name: docker_proxy_net
driver: bridge
+38
View File
@@ -0,0 +1,38 @@
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
environment:
- TZ=Europe/Berlin
- DOZZLE_AUTH_PROVIDER=simple
- DOZZLE_REMOTE_HOST=tcp://docker_proxy:2375
- DOZZLE_LEVEL=info
- TAILSIZE=300
ports:
- 8866:8080
volumes:
- /srv/docker/dozzle/data:/data
networks:
- docker_proxy_net
deploy:
resources:
limits:
cpus: '0.2'
memory: 256M
healthcheck:
test: ["CMD", "/dozzle", "healthcheck"]
interval: 30s
timeout: 30s
retries: 5
start_period: 30s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
docker_proxy_net:
external: true
name: docker_proxy_net
+76
View File
@@ -0,0 +1,76 @@
services:
gitea-db:
image: postgres:16
container_name: gitea_db
restart: unless-stopped
environment:
- TZ=Europe/Berlin
- POSTGRES_USER=${GITEA_DB_USER}
- POSTGRES_PASSWORD=${GITEA_DB_PASSWORD}
- POSTGRES_DB=${GITEA_DB_NAME}
volumes:
- /srv/docker/gitea/db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${GITEA_DB_USER}"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- TZ=Europe/Berlin
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea-db:5432
- GITEA__database__NAME=${GITEA_DB_NAME}
- GITEA__database__USER=${GITEA_DB_USER}
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD}
- GITEA__server__DOMAIN=gitea.thodirr.net
- GITEA__server__ROOT_URL=http://192.168.178.35:3030
- GITEA__server__SSH_DOMAIN=gitea.thodirr.net
- GITEA__server__SSH_PORT=2222
volumes:
- /srv/docker/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 3030:3000
- 2222:22
depends_on:
gitea-db:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
deploy:
resources:
limits:
cpus: '2.0'
memory: 1G
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
default:
name: gitea_net
+57
View File
@@ -0,0 +1,57 @@
services:
plex:
image: lscr.io/linuxserver/plex:latest
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
container_name: plex
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- VERSION=public
devices:
- /dev/dri:/dev/dri
volumes:
- /srv/docker/plex:/config
- /mnt/datengrab:/Datengrab
- /srv/docker/plex/tmp-transcode/:/transcode
- /srv/docker/plex/plex-tmp-downloads:/plex-tmp-downloads
- /mnt/usb1-2:/Datengrab_USB
restart: unless-stopped
plex-db-backup:
container_name: plex_db_backup
image: keinos/sqlite3:latest
restart: always
user: "1000:100"
volumes:
- "/volume1/docker/plex/Library/Application Support/Plex Media Server/Plug-in Support/Databases:/db_source:ro"
- "/volume1/docker/backups/plex:/backup"
# WICHTIG: Wir überschreiben den Entrypoint, damit wir eine Endlosschleife nutzen können
entrypoint: ["/bin/sh", "-c"]
command: >
"sleep 10;
while true; do
TIMESTAMP=$(date +%Y%m%d-%H%M);
BACKUP_FILE=/backup/plex_backup_$$TIMESTAMP.sql;
echo \"$(date): Starte Plex-Sicherung nach $$BACKUP_FILE...\";
# Nutzung des -readonly Flags statt URI
sqlite3 -readonly /db_source/com.plexapp.plugins.library.db \".backup $$BACKUP_FILE\";
if [ $? -eq 0 ]; then
echo \"$(date): Sicherung erfolgreich abgeschlossen.\";
find /backup -name 'plex_backup_*.sql' -mmin +10080 -delete;
else
echo \"$(date): FEHLER beim Backup!\";
# Falls eine leere Datei entstanden ist, löschen wir sie
[ -f \"$$BACKUP_FILE\" ] && [ ! -s \"$$BACKUP_FILE\" ] && rm \"$$BACKUP_FILE\";
fi;
echo \"$(date): Nächster Run in 24 Stunden.\";
sleep 86400;
done"
+25
View File
@@ -0,0 +1,25 @@
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime_kuma
restart: unless-stopped
ports:
- 3001:3001
volumes:
- /srv/docker/uptimekuma/data:/app/data
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
healthcheck:
test: ["CMD", "extra/healthcheck"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
+33
View File
@@ -0,0 +1,33 @@
services:
vikunja-db:
image: mariadb:10
container_name: vikunja_db
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
- TZ=Europe/Berlin
- MYSQL_ROOT_PASSWORD=${VIKUNJA_DB_ROOT_PASSWORD}
- MYSQL_USER=${VIKUNJA_DB_USER}
- MYSQL_PASSWORD=${VIKUNJA_DB_PASSWORD}
- MYSQL_DATABASE=${VIKUNJA_DB_NAME}
volumes:
- /srv/docker/vikunja/db:/var/lib/mysql
restart: unless-stopped
vikunja:
image: vikunja/vikunja:latest
container_name: vikunja
ports:
- 3456:3456
environment:
- TZ=Europe/Berlin
- VIKUNJA_DATABASE_HOST=vikunja-db
- VIKUNJA_DATABASE_TYPE=mysql
- VIKUNJA_DATABASE_USER=${VIKUNJA_DB_USER}
- VIKUNJA_DATABASE_PASSWORD=${VIKUNJA_DB_PASSWORD}
- VIKUNJA_DATABASE_NAME=${VIKUNJA_DB_NAME}
- VIKUNJA_SERVICE_PUBLICURL=https://vikunja.thodirr.net/
volumes:
- /srv/docker/vikunja/files:/app/vikunja/files
depends_on:
- vikunja-db
restart: unless-stopped