services: vikunja: image: vikunja/vikunja:latest container_name: vikunja restart: unless-stopped depends_on: db: condition: service_healthy environment: - VIKUNJA_SERVICE_PUBLICURL=${PUBLIC_URL:-http://localhost:3456} - VIKUNJA_SERVICE_SECRET=${SERVICE_SECRET:?service secret required} - VIKUNJA_DATABASE_TYPE=postgres - VIKUNJA_DATABASE_HOST=db - VIKUNJA_DATABASE_DATABASE=vikunja - VIKUNJA_DATABASE_USER=vikunja - VIKUNJA_DATABASE_PASSWORD=${DB_PASSWORD:-vikunja} ports: - "${HTTP_PORT:-3456}:3456" volumes: - ${DATA_PATH:-/srv/vikunja}/files:/app/vikunja/files db: image: postgres:16-alpine container_name: vikunja-db restart: unless-stopped environment: - POSTGRES_DB=vikunja - POSTGRES_USER=vikunja - POSTGRES_PASSWORD=${DB_PASSWORD:-vikunja} healthcheck: test: ["CMD-SHELL", "pg_isready -U vikunja"] interval: 5s timeout: 5s retries: 10 volumes: - ${DATA_PATH:-/srv/vikunja}/db:/var/lib/postgresql/data