Files
Docker-setup/Home/Node1/productivity/docker-compose.yml
2026-02-05 21:56:40 +01:00

183 lines
4.5 KiB
YAML

name: productivity
secrets:
db_password:
file: ./secrets/db_password.txt
networks:
# Verbindung zum Core-Stack (Postgres/Redis)
core_net:
external: true
services:
# --- Dokumente (Port 8000) ---
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless
restart: unless-stopped
ports:
- "8000:8000"
environment:
PAPERLESS_URL: https://paperless.deinedomain.de
PAPERLESS_TIME_ZONE: ${TZ}
PAPERLESS_DBHOST: postgres-core
PAPERLESS_DBNAME: main_db
PAPERLESS_DBUSER: admin
PAPERLESS_DBPASS_FILE: /run/secrets/db_password
PAPERLESS_REDIS: redis://redis-core:6379
secrets:
- db_password
volumes:
- ./data/paperless/data:/usr/src/paperless/data
- ./data/paperless/media:/usr/src/paperless/media
- ./data/paperless/consume:/usr/src/paperless/consume
networks:
- core_net
- default
# --- Focalboard (Port 8001) ---
focalboard:
image: mattermost/focalboard
container_name: focalboard
restart: unless-stopped
ports:
- "8001:8000"
networks:
- default
- core_net
# --- PDF Tools (Port 8002) ---
stirling-pdf:
image: frooodle/s-pdf:latest
container_name: stirling-pdf
restart: unless-stopped
ports:
- "8002:8080"
environment:
- DOCKER_ENABLE_SECURITY=false
networks:
- default
# --- Gramps Web (Port 8003) ---
# Web-Version der Ahnenforschung
gramps:
image: ghcr.io/gramps-project/gramps-web:latest
container_name: gramps
restart: unless-stopped
ports:
- "8003:5000"
environment:
GRAMPSWEB_TREE: "Stammbaum"
GRAMPSWEB_CELERY_CONFIG__broker_url: "redis://redis-core:6379/0" # Nutzt Core Redis
volumes:
- ./data/gramps/users:/app/users
- ./data/gramps/index:/app/index
networks:
- default
- core_net
# --- Silverbullet (Port 8004) ---
# Markdown Notizen
silverbullet:
image: zefhemel/silverbullet
container_name: silverbullet
restart: unless-stopped
ports:
- "8004:3000"
volumes:
- ./data/silverbullet:/space
networks:
- default
# --- Rx Resume (Port 8005) ---
# Lebenslauf Builder (Standalone/Simple Mode)
rx-resume:
image: amruthpillai/reactive-resume:latest
container_name: rx_resume
restart: unless-stopped
ports:
- "8005:3000"
environment:
# Benötigt zwingend eine Datenbank (Core Postgres)
- POSTGRES_DB=main_db
- POSTGRES_USER=admin
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
- POSTGRES_HOST=postgres-core
- POSTGRES_PORT=5432
- PUBLIC_URL=http://deine-ip:8005
secrets:
- db_password
networks:
- core_net
- default
# --- Fossflow / Projektmanagement (Port 8006) ---
# Annahme: Leantime oder OpenProject? (Image prüfen!)
fossflow:
image: leantime/leantime:latest # Placeholder: Leantime ist ein guter Kandidat
container_name: fossflow
restart: unless-stopped
ports:
- "8006:80"
environment:
- LEAN_DB_HOST=postgres-core
- LEAN_DB_USER=admin
- LEAN_DB_PASSWORD_FILE=/run/secrets/db_password
- LEAN_DB_DATABASE=main_db
secrets:
- db_password
volumes:
- ./data/fossflow:/var/www/html/public/userfiles
networks:
- core_net
- default
# --- Trip / Reisen (Port 8007) ---
# Annahme: TravelMap
trip:
image: jilguy/travelmap:latest
container_name: trip
restart: unless-stopped
ports:
- "8007:80"
volumes:
- ./data/trip:/var/www/html/data
networks:
- default
# --- Norish / Rezepte (Port 8008) ---
# Annahme: Mealie (Sehr populär für Rezepte)
norish:
image: ghcr.io/mealie-recipes/mealie:latest
container_name: norish
restart: unless-stopped
ports:
- "8008:9000" # Mealie nutzt intern 9000
volumes:
- ./data/norish:/app/data
networks:
- default
# --- Koffan / Einkaufszettel (Port 8009) ---
# Annahme: KitchenOwl oder Grocy
koffan:
image: tombursch/kitchenowl:latest
container_name: koffan
restart: unless-stopped
ports:
- "8009:80"
networks:
- default
# --- Yubal / YT Downloader (Port 8010) ---
# Annahme: MeTube (bester simpler Web-Downloader)
yubal:
image: alexta69/metube:latest
container_name: yubal
restart: unless-stopped
ports:
- "8010:8081" # MeTube nutzt intern 8081
volumes:
- /mnt/storage/downloads:/downloads # Pfad anpassen!
networks:
- default