Add initial docker-compose.yml files to git
This commit is contained in:
commit
f368da8bf9
7 changed files with 233 additions and 0 deletions
23
.gitignore
vendored
Normal file
23
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
.env
|
||||
portainer_data
|
||||
|
||||
# Environment Files (alle .env im Projekt)
|
||||
*.env
|
||||
|
||||
# Docker Named Volumes / Datenverzeichnisse
|
||||
*_data/
|
||||
*-data/
|
||||
data/
|
||||
logs/
|
||||
mysql/
|
||||
postgres_data/
|
||||
n8n_data/
|
||||
letsencrypt/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# Temporäre Dateien
|
||||
*.tmp
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
60
forgejo/docker-compose.yml
Normal file
60
forgejo/docker-compose.yml
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
forgejo:
|
||||
image: codeberg.org/forgejo/forgejo:10.0.0-rootless # Rootless = sicherer
|
||||
container_name: forgejo
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- GITEA__database__HOST=postgres:5432
|
||||
- GITEA__database__NAME=forgejo
|
||||
- GITEA__database__USER=forgejo
|
||||
- GITEA__database__PASSWD=${DB_PASSWORD}
|
||||
- GITEA__server__DOMAIN=${DOMAIN_NAME}
|
||||
- GITEA__server__ROOT_URL=https://${DOMAIN_NAME}/
|
||||
- GITEA__server__HTTP_PORT=3000
|
||||
- GITEA__server__SSH_DOMAIN=${DOMAIN_NAME}
|
||||
- GITEA__server__SSH_PORT=222
|
||||
- TZ=${TIMEZONE}
|
||||
volumes:
|
||||
- forgejo_data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
ports:
|
||||
- "3000:3000" # Web UI
|
||||
- "222:22" # SSH (nicht 22, da Host SSH läuft!)
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- forgejo-net
|
||||
- npm-network
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
container_name: forgejo-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_USER=forgejo
|
||||
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
||||
- POSTGRES_DB=forgejo
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U forgejo -d forgejo"]
|
||||
interval: 10s
|
||||
retries: 5
|
||||
networks:
|
||||
- forgejo-net
|
||||
|
||||
volumes:
|
||||
forgejo_data:
|
||||
postgres_data:
|
||||
|
||||
networks:
|
||||
forgejo-net:
|
||||
internal: true
|
||||
npm-network:
|
||||
external: true
|
||||
64
n8n/docker-compose.yml
Normal file
64
n8n/docker-compose.yml
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
n8n:
|
||||
image: n8nio/n8n:1.76.1 # Aktuelle stabile Version (Pinning empfohlen!)
|
||||
container_name: n8n
|
||||
restart: always
|
||||
ports:
|
||||
- "5678:5678"
|
||||
environment:
|
||||
- GENERIC_TIMEZONE=${TIMEZONE}
|
||||
- TZ=${TIMEZONE}
|
||||
# Datenbank-Verbindung
|
||||
- DB_TYPE=postgresdb
|
||||
- DB_POSTGRESDB_HOST=postgres
|
||||
- DB_POSTGRESDB_PORT=5432
|
||||
- DB_POSTGRESDB_DATABASE=${DB_NAME}
|
||||
- DB_POSTGRESDB_USER=${DB_USER}
|
||||
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
|
||||
# Webhook/Proxy Settings (Wichtig für externe Erreichbarkeit)
|
||||
- N8N_HOST=${DOMAIN_NAME}
|
||||
- N8N_PORT=5678
|
||||
- N8N_PROTOCOL=https
|
||||
- WEBHOOK_URL=https://${DOMAIN_NAME}/
|
||||
# Auto-Cleanup (Verhindert Datenbank-Explosion)
|
||||
- EXECUTIONS_DATA_PRUNE=true
|
||||
- EXECUTIONS_DATA_MAX_AGE=336 # Behalte Daten für 14 Tage (336 Stunden)
|
||||
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000 # Max 50k Einträge
|
||||
volumes:
|
||||
- n8n_data:/home/node/.n8n
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- n8n-net
|
||||
- npm-network
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine # Neueste stabile Postgres Version
|
||||
container_name: n8n-db
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_USER=${DB_USER}
|
||||
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
||||
- POSTGRES_DB=${DB_NAME}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- n8n-net
|
||||
|
||||
volumes:
|
||||
n8n_data:
|
||||
postgres_data:
|
||||
|
||||
networks:
|
||||
n8n-net:
|
||||
internal: true
|
||||
npm-network:
|
||||
external: true
|
||||
18
npm/docker-compose.yml
Normal file
18
npm/docker-compose.yml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
services:
|
||||
app:
|
||||
image: jc21/nginx-proxy-manager:latest
|
||||
container_name: nginx-proxy-manager
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 80:80
|
||||
- 81:81
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./data:/data # Hier liegt Ihre database.sqlite drin!
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
networks:
|
||||
- npm-network
|
||||
|
||||
networks:
|
||||
npm-network:
|
||||
external: true
|
||||
26
onlyoffice/docker-compose.yml
Normal file
26
onlyoffice/docker-compose.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
documentserver:
|
||||
image: onlyoffice/documentserver:8.3.0 # Pinne Version statt 'latest'
|
||||
container_name: onlyoffice-documentserver
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8084:80"
|
||||
environment:
|
||||
- JWT_ENABLED=${JWT_ENABLED}
|
||||
- JWT_SECRET=${JWT_SECRET}
|
||||
- JWT_HEADER=${JWT_HEADER}
|
||||
- JWT_IN_BODY=${JWT_IN_BODY}
|
||||
- TZ=${TIMEZONE}
|
||||
# OnlyOffice braucht oft etwas mehr Ressourcen für Rendering
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 2G # Optional: Begrenzt RAM-Nutzung
|
||||
networks:
|
||||
- npm-network # Für NPM-Proxy
|
||||
|
||||
networks:
|
||||
npm-network:
|
||||
external: true
|
||||
16
portainer/docker-compose.yml
Normal file
16
portainer/docker-compose.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
services:
|
||||
portainer:
|
||||
image: portainer/portainer-ce:latest
|
||||
container_name: portainer
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- portainer_data:/data
|
||||
ports:
|
||||
- 9443:9443
|
||||
|
||||
volumes:
|
||||
portainer_data:
|
||||
26
spdf/docker-compose.yml
Normal file
26
spdf/docker-compose.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
stirling-pdf:
|
||||
image: frooodle/s-pdf:0.44.1 # Beispiel: stabile Version pinnen, nicht 'latest'
|
||||
container_name: stirling-pdf
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9080:8080"
|
||||
environment:
|
||||
# Nur wenn du wirklich zusätzliche Security-Features deaktivieren willst
|
||||
- DOCKER_ENABLE_SECURITY=${DOCKER_ENABLE_SECURITY}
|
||||
- TZ=${TIMEZONE}
|
||||
volumes:
|
||||
# Named Volumes für persistente Daten / Konfiguration
|
||||
- s-pdf-trainingData:/usr/share/tesseract-ocr/4.00/tessdata
|
||||
- s-pdf-extraConfigs:/configs
|
||||
- s-pdf-customFiles:/customFiles
|
||||
# Optional leichte Härtung
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
volumes:
|
||||
s-pdf-trainingData:
|
||||
s-pdf-extraConfigs:
|
||||
s-pdf-customFiles:
|
||||
Loading…
Add table
Reference in a new issue