123 lines
3.9 KiB
YAML
123 lines
3.9 KiB
YAML
version: "3.6"
|
|
services:
|
|
postgresql:
|
|
stop_grace_period: 60s
|
|
env_file:
|
|
- postgresql.env
|
|
command:
|
|
- postgres
|
|
environment:
|
|
- POSTGRES_PASSWORD_FILE=/run/secrets/postgresql_password
|
|
- POSTGRES_USER=${POSTGRES_USER}
|
|
secrets:
|
|
- postgresql_password
|
|
hostname: db
|
|
image: public.ecr.aws/docker/library/postgres:17
|
|
networks:
|
|
- postgresql_db-backend
|
|
# - traefik_backend
|
|
- authentik_backend
|
|
ports:
|
|
- 5430:5432/tcp
|
|
volumes:
|
|
- /volume1/docker/PostgreSQL/data-17:/var/lib/postgresql/data
|
|
deploy:
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.tcp.routers.postgres.entrypoints=postgresql
|
|
- traefik.tcp.routers.postgres.rule=HostSNI(`*`)
|
|
- traefik.tcp.services.postgres.loadbalancer.server.port=5432
|
|
- traefik.tcp.routers.postgres.service=postgres
|
|
- traefik.swarm.network=traefik_backend
|
|
# resources:
|
|
# limits:
|
|
# cpus: '8' # Limit to 0.5 CPU core
|
|
# memory: 2G
|
|
placement:
|
|
constraints:
|
|
- node.labels.block != databases
|
|
- node.hostname == docker-2
|
|
|
|
databasus:
|
|
hostname: databasus
|
|
image: databasus/databasus:latest
|
|
# ports:
|
|
# - "4005:4005"
|
|
networks:
|
|
- traefik_backend
|
|
- postgresql_db-backend
|
|
volumes:
|
|
- /volume1/docker/databasus:/databasus-data
|
|
# - /volume1/SMB-docker/tmp:/tmp
|
|
deploy:
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.databasus.rule=Host(`${DATABASUS_HOST}`)
|
|
- traefik.http.routers.databasus.tls=true
|
|
- traefik.http.routers.databasus.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.databasus.entrypoints=websecure
|
|
- traefik.http.services.databasus.loadbalancer.server.port=4005
|
|
- traefik.swarm.network=traefik_backend
|
|
# - traefik.http.routers.databasus.middlewares=forwardAuth-authentik@file, crowdsec@file
|
|
# - traefik.http.routers.databasus.middlewares=auth
|
|
# - traefik.http.middlewares.auth.basicauth.users=test:$$2a$$12$$1sIFlNKcNrEApe2IScpFwukd7l1j/uvfxk0GeuqIk0BBcO9Mk2F2u
|
|
# resources:
|
|
# limits:
|
|
# cpus: '4' # Limit to 0.5 CPU core
|
|
# memory: 2G
|
|
|
|
|
|
pgadmin:
|
|
env_file:
|
|
- postgresql.env
|
|
image: dpage/pgadmin4:latest
|
|
environment:
|
|
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
|
|
PGADMIN_DEFAULT_PASSWORD_FILE: /run/secrets/postgresql_pgadmin_password
|
|
PGADMIN_LISTEN_PORT: 80
|
|
secrets:
|
|
- postgresql_pgadmin_password
|
|
volumes:
|
|
- "/volume1/docker/PostgreSQL Admin:/var/lib/pgadmin"
|
|
# - "/volume1/docker/PostgreSQL Backups:/var/lib/pgadmin/storage/avb_bryanmail.net"
|
|
ports:
|
|
- 3030:80
|
|
networks:
|
|
- postgresql_db-backend
|
|
- traefik_backend
|
|
deploy:
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.pgadmin.rule=Host(`${PGADMIN_HOST}`)
|
|
- traefik.http.routers.pgadmin.tls=true
|
|
- traefik.http.routers.pgadmin.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.pgadmin.entrypoints=websecure
|
|
- traefik.http.services.pgadmin.loadbalancer.server.port=80
|
|
- traefik.swarm.network=traefik_backend
|
|
# - traefik.http.routers.pgadmin.middlewares=forwardAuth-authentik@file, crowdsec@file
|
|
# - traefik.http.routers.pgadmin.middlewares=auth
|
|
# - traefik.http.middlewares.auth.basicauth.users=test:$$2a$$12$$1sIFlNKcNrEApe2IScpFwukd7l1j/uvfxk0GeuqIk0BBcO9Mk2F2u
|
|
resources:
|
|
limits:
|
|
cpus: '1' # Limit to 0.5 CPU core
|
|
memory: 512M
|
|
|
|
networks:
|
|
postgresql_db-backend:
|
|
name: postgresql_db-backend
|
|
# external: true
|
|
attachable: true
|
|
driver: overlay
|
|
driver_opts:
|
|
com.docker.network.driver.mtu: "8950" #broke database connections for things like vaultwarden and Immich
|
|
traefik_backend:
|
|
external: true
|
|
authentik_backend:
|
|
external: true
|
|
|
|
secrets:
|
|
postgresql_password:
|
|
external: true
|
|
postgresql_pgadmin_password:
|
|
external: true
|