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