mirror of
https://github.com/nfonteyne/octane-website.git
synced 2026-09-03 23:24:48 +02:00
44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
services:
|
|
app:
|
|
# Built and pushed by .github/workflows/ci.yml on every push to main.
|
|
# Watchtower on the server picks up new digests on this tag automatically.
|
|
image: ${APP_IMAGE:-ghcr.io/nfonteyne/octane-website:latest}
|
|
container_name: octane-app
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
depends_on:
|
|
- postgres
|
|
networks:
|
|
- default
|
|
- traefik-proxy
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik-proxy"
|
|
- "traefik.http.routers.octane.rule=Host(`${APP_DOMAIN:-octane.dandrove.com}`)"
|
|
- "traefik.http.routers.octane.entrypoints=websecure"
|
|
- "traefik.http.routers.octane.tls.certresolver=myresolver"
|
|
- "traefik.http.services.octane.loadbalancer.server.port=3000"
|
|
# No host port published: Traefik reaches the container directly over
|
|
# traefik-proxy. Add "ports: ['3000:3000']" temporarily if you need
|
|
# to hit the app straight from the host while debugging.
|
|
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: octane
|
|
POSTGRES_USER: octane
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
networks:
|
|
- default
|
|
|
|
networks:
|
|
default:
|
|
traefik-proxy:
|
|
external: true
|
|
name: ${TRAEFIK_NETWORK_NAME:-traefik-proxy}
|
|
|
|
volumes:
|
|
pgdata:
|