mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-11-27 02:44:49 +03:00
63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
services:
|
|
affine:
|
|
image: ghcr.io/toeverything/affine-graphql:stable
|
|
container_name: affine_selfhosted
|
|
command:
|
|
['sh', '-c', 'node ./scripts/self-host-predeploy && node ./dist/index.js']
|
|
ports:
|
|
- '3010:3010'
|
|
- '5555:5555'
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
volumes:
|
|
# custom configurations
|
|
- ~/.affine/self-host/config:/root/.affine/config
|
|
# blob storage
|
|
- ~/.affine/self-host/storage:/root/.affine/storage
|
|
logging:
|
|
driver: 'json-file'
|
|
options:
|
|
max-size: '1000m'
|
|
restart: unless-stopped
|
|
environment:
|
|
- NODE_OPTIONS="--import=./scripts/register.js"
|
|
- AFFINE_CONFIG_PATH=/root/.affine/config
|
|
- REDIS_SERVER_HOST=redis
|
|
- DATABASE_URL=postgres://affine:affine@postgres:5432/affine
|
|
- NODE_ENV=production
|
|
- AFFINE_ADMIN_EMAIL=${AFFINE_ADMIN_EMAIL}
|
|
- AFFINE_ADMIN_PASSWORD=${AFFINE_ADMIN_PASSWORD}
|
|
# Telemetry allows us to collect data on how you use the affine. This data will helps us improve the app and provide better features.
|
|
# Uncomment next line if you wish to quit telemetry.
|
|
# - TELEMETRY_ENABLE=false
|
|
redis:
|
|
image: redis
|
|
container_name: affine_redis
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ~/.affine/self-host/redis:/data
|
|
healthcheck:
|
|
test: ['CMD', 'redis-cli', '--raw', 'incr', 'ping']
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
postgres:
|
|
image: postgres
|
|
container_name: affine_postgres
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ~/.affine/self-host/postgres:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'pg_isready -U affine']
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
environment:
|
|
POSTGRES_USER: affine
|
|
POSTGRES_PASSWORD: affine
|
|
POSTGRES_DB: affine
|
|
PGDATA: /var/lib/postgresql/data/pgdata
|