services: postgres: image: postgres:17-alpine secrets: - postgres-master networks: - homelab environment: - POSTGRES_USER=admin - POSTGRES_PASSWORD_FILE=/run/secrets/postgres-master - PGDATA=/var/lib/postgresql/data volumes: - /mnt/swarm-data/postgres:/var/lib/postgresql/data ports: - 5432:5432 deploy: replicas: 3 placement: constraints: - node.hostname == p0 networks: homelab: external: true secrets: postgres-master: external: true