Files
HomeAudit/stacks/README.md

2.3 KiB

Stacks Overview

This directory contains Docker Swarm stack files for the new architecture.

Prerequisites

  • Overlay networks (create once on the manager):
    • traefik-public
    • database-network
    • monitoring-network
docker network create --driver overlay --attachable traefik-public
docker network create --driver overlay --attachable database-network
docker network create --driver overlay --attachable monitoring-network
  • Docker secrets (examples):
printf 'StrongPostgresRoot' | docker secret create pg_root_password -
printf 'StrongMariaRoot'   | docker secret create mariadb_root_password -
printf 'gitea-db-pass'     | docker secret create gitea_db_password -
printf 'nextcloud-pass'    | docker secret create nextcloud_db_password -
printf 'smtp-user'         | docker secret create smtp_user -
printf 'smtp-pass'         | docker secret create smtp_pass -
printf 'postgres://user:pass@postgresql_primary:5432/db' | docker secret create appflowy_db_url -
printf 'minioadmin'        | docker secret create minio_access_key -
printf 'minioadminsecret'  | docker secret create minio_secret_key -
  • NFS exports on omv800.local matching the driver_opts in stack volumes.

Deploy examples

docker stack deploy -c stacks/core/traefik.yml traefik
docker stack deploy -c stacks/databases/postgresql-primary.yml postgresql
docker stack deploy -c stacks/databases/mariadb-primary.yml mariadb
docker stack deploy -c stacks/databases/redis-cluster.yml redis

docker stack deploy -c stacks/apps/homeassistant.yml homeassistant
docker stack deploy -c stacks/apps/immich.yml immich
docker stack deploy -c stacks/apps/nextcloud.yml nextcloud
docker stack deploy -c stacks/apps/paperless.yml paperless
docker stack deploy -c stacks/apps/jellyfin.yml jellyfin

docker stack deploy -c stacks/apps/gitea.yml gitea
docker stack deploy -c stacks/apps/appflowy.yml appflowy
docker stack deploy -c stacks/apps/vaultwarden.yml vaultwarden
docker stack deploy -c stacks/apps/adguard.yml adguard

docker stack deploy -c stacks/web/caddy.yml caddy
docker stack deploy -c stacks/ai/ollama.yml ollama

docker stack deploy -c stacks/monitoring/netdata.yml netdata

Notes

  • Pin image versions and avoid :latest in production.
  • Use DNS or host pinning for stateful services.
  • Consider placement constraints (node.labels.role).