Files
compose/affine/docker-compose.yml
2026-05-24 00:18:12 +08:00

81 lines
1.9 KiB
YAML

name: affine
services:
affine:
image: ghcr.io/toeverything/affine:${AFFINE_REVISION}
container_name: affine
restart: unless-stopped
env_file:
- .env
depends_on:
redis:
condition: service_healthy
database:
condition: service_healthy
affine-migration:
condition: service_completed_successfully
volumes:
- ./storage:/root/.affine/storage
- ./config:/root/.affine/config
networks:
- proxy
- affine
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.affine.rule=Host(`affine.example.com`)"
- "traefik.http.routers.affine.entrypoints=websecure"
- "traefik.http.routers.affine.service=affine"
- "traefik.http.services.affine.loadBalancer.server.port=3010"
affine-migration:
image: ghcr.io/toeverything/affine:${AFFINE_REVISION}
container_name: affine-migration
volumes:
- ./storage:/root/.affine/storage
- ./config:/root/.affine/config
command: [ "sh", "-c", "node ./scripts/self-host-predeploy.js" ]
env_file:
- .env
depends_on:
database:
condition: service_healthy
redis:
condition: service_healthy
networks:
- affine
redis:
image: redis:7-alpine
container_name: affine-redis
restart: unless-stopped
healthcheck:
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
interval: 10s
timeout: 5s
retries: 5
networks:
- affine
database:
image: pgvector/pgvector:pg16
container_name: affine-database
restart: unless-stopped
volumes:
- ./database:/var/lib/postgresql/data
env_file:
- .env
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}" ]
interval: 10s
timeout: 5s
retries: 5
networks:
- affine
networks:
proxy:
external: true
affine:
name: affine