diff --git a/templates/compose/affine.yaml b/templates/compose/affine.yaml index c863b8031..ac06ffa49 100644 --- a/templates/compose/affine.yaml +++ b/templates/compose/affine.yaml @@ -2,47 +2,53 @@ # slogan: AFFiNE is an open-source, all-in-one workspace and OS for knowledge management, a Notion/Miro alternative. # tags: knowledge-management,notion,miro,workspace # logo: svgs/affine.svg +# port: 3010 services: affine: - image: 'ghcr.io/toeverything/affine-graphql:stable' + image: ghcr.io/toeverything/affine-graphql:stable command: - sh - '-c' - 'node ./scripts/self-host-predeploy && node ./dist/index.js' ports: - - ':3010' - - ':5555' + - ${AFFINE_PORT:-55555}:5555 depends_on: redis: - condition: service_healthy + condition: service_healthy postgres: condition: service_healthy volumes: - - '~/.affine/self-host/config:/root/.affine/config' - - '~/.affine/self-host/storage:/root/.affine/storage' + - affine-config:/root/.affine/config + - affine-storage:/root/.affine/storage logging: driver: json-file options: max-size: 1000m environment: - - SERVICE_FQDN_AFFINE - - 'NODE_OPTIONS="--import=./scripts/register.js"' + - SERVICE_FQDN_AFFINE_3010 + - NODE_OPTIONS=--import=./scripts/register.js - AFFINE_CONFIG_PATH=/root/.affine/config - REDIS_SERVER_HOST=redis - - 'DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine}' + - DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine} - NODE_ENV=production - AFFINE_SERVER_HOST=$SERVICE_FQDN_AFFINE - AFFINE_SERVER_EXTERNAL_URL=$SERVICE_FQDN_AFFINE - - MAILER_HOST=$MAILER_HOST - - MAILER_PORT=$MAILER_PORT - - MAILER_USER=$MAILER_USER - - MAILER_PASSWORD=$MAILER_PASSWORD - - MAILER_SENDER=$MAILER_SENDER + - MAILER_HOST=${MAILER_HOST} + - MAILER_PORT=${MAILER_PORT} + - MAILER_USER=${MAILER_USER} + - MAILER_PASSWORD=${MAILER_PASSWORD} + - MAILER_SENDER=${MAILER_SENDER} + healthcheck: + test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/3010' || exit 1"] + interval: 5s + timeout: 20s + retries: 3 + redis: image: redis volumes: - - '~/.affine/self-host/redis:/data' + - affine-redis-data:/data healthcheck: test: - CMD @@ -54,9 +60,9 @@ services: timeout: 5s retries: 5 postgres: - image: postgres + image: postgres:16 volumes: - - '~/.affine/self-host/postgres:/var/lib/postgresql/data' + - affine-postgres-data:/var/lib/postgresql/data healthcheck: test: - CMD-SHELL @@ -65,7 +71,7 @@ services: timeout: 5s retries: 5 environment: - - POSTGRES_USER=$SERVICE_USER_POSTGRES - - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES - - 'POSTGRES_DB=${POSTGRES_DB:-affine}' + - POSTGRES_USER=${SERVICE_USER_POSTGRES} + - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES} + - POSTGRES_DB=${POSTGRES_DB:-affine} - PGDATA=/var/lib/postgresql/data/pgdata