Files
keywarden/docker-compose.yml

72 lines
2.0 KiB
YAML

services:
keywarden-nginx:
container_name: keywarden-nginx
image: nginx:alpine
restart: unless-stopped
volumes:
- ${DOCKERDIR}/nginx/configs/nginx.conf:/etc/nginx/nginx.conf:ro
- ${DOCKERDIR}/nginx/configs/sites:/etc/nginx/conf.d/
- ${DOCKERDIR}/nginx/certs/:/certs/
- ${DOCKERDIR}/nginx/webdir/:/var/www/
- ${DOCKERDIR}/nginx/logs:/var/log/nginx/
# - "external:internal", change external to desired port
ports:
- "443:443"
keywarden-valkey:
image: valkey/valkey:latest
restart: unless-stopped
container_name: keywarden-valkey
environment:
- ALLOW_EMPTY_PASSWORD=yes
keywarden-db:
container_name: keywarden-db
image: postgres:17-alpine
environment:
POSTGRES_PASSWORD: ${KEYWARDEN_POSTGRES_PASSWORD:-postgres}
POSTGRES_DB: ${KEYWARDEN_POSTGRES_DB:-keywarden}
POSTGRES_USER: ${KEYWARDEN_POSTGRES_USER:-keywarden}
POSTGRES_PORT: ${KEYWARDEN_POSTGRES_PORT:-5432}
# Do not enable unless debugging, not needed to be exposed outside of docker network
# ports:
# - "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U keywarden -d keywarden"]
interval: 5s
timeout: 5s
retries: 20
volumes:
- "pgdata:/var/lib/postgresql/data"
keywarden:
build: .
container_name: keywarden
command: gunicorn keywarden.wsgi:application --bind 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- keywarden-db
- keywarden-valkey
environment:
- DJANGO_SETTINGS_MODULE=keywarden.settings.dev
- PYTHONPATH=/app
env_file:
- .env
# authentik:
# image: ghcr.io/goauthentik/server
# environment:
# AUTHENTIK_SECRET_KEY: supersecretkey
# AUTHENTIK_POSTGRESQL__HOST: db
# AUTHENTIK_POSTGRESQL__USER: django
# AUTHENTIK_POSTGRESQL__PASSWORD: django
# AUTHENTIK_POSTGRESQL__NAME: authentik
# ports:
# - "9000:9000"
volumes:
pgdata: