fix(service): twenty template (#6996)

Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
This commit is contained in:
Yannik Süß 2026-01-08 18:51:23 +01:00 committed by GitHub
parent 582afc1c8b
commit fdb7bc5cd2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,4 +1,3 @@
# ignore: true
# documentation: https://docs.twenty.com # documentation: https://docs.twenty.com
# slogan: Twenty is a CRM designed to fit your unique business needs. # slogan: Twenty is a CRM designed to fit your unique business needs.
# category: cms # category: cms
@ -8,86 +7,127 @@
services: services:
twenty: twenty:
image: 'twentycrm/twenty:latest' image: twentycrm/twenty:v1.15
environment: environment:
- SERVICE_URL_TWENTY_3000 - SERVICE_URL_TWENTY_3000
- SERVER_URL=$SERVICE_URL_TWENTY - SERVER_URL=${SERVICE_URL_TWENTY}
- FRONT_BASE_URL=$SERVICE_URL_TWENTY - FRONT_BASE_URL=${SERVICE_URL_TWENTY}
- APP_SECRET=${SERVICE_BASE64_32_SECRET}
- ENABLE_DB_MIGRATIONS=true - ENABLE_DB_MIGRATIONS=true
- CACHE_STORAGE_TYPE=${CACHE_STORAGE_TYPE:-redis} - 'CACHE_STORAGE_TYPE=${CACHE_STORAGE_TYPE:-redis}'
- REDIS_URL=redis://redis:6379 - 'REDIS_URL=redis://redis:6379'
- 'API_RATE_LIMITING_TTL=${API_RATE_LIMITING_TTL:-100}'
# https://twenty.com/developers/section/self-hosting/self-hosting-var#security - 'API_RATE_LIMITING_LIMIT=${API_RATE_LIMITING_LIMIT:-100}'
- API_RATE_LIMITING_TTL=${API_RATE_LIMITING_TTL:-100} - POSTGRES_ADMIN_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- API_RATE_LIMITING_LIMIT=${API_RATE_LIMITING_LIMIT:-100} - 'PG_DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-twenty-db}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED:-false}'
# https://twenty.com/developers/section/self-hosting/self-hosting-var#tokens - 'PASSWORD_RESET_TOKEN_EXPIRES_IN=${PASSWORD_RESET_TOKEN_EXPIRES_IN:-5m}'
- APP_SECRET=$SERVICE_BASE64_32_SECRET - WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION=${WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION:-7}
- POSTGRES_ADMIN_PASSWORD=$SERVICE_PASSWORD_POSTGRES - WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION=${WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION:-21}
- PG_DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@postgres:5432/default - 'STORAGE_TYPE=${STORAGE_TYPE:-local}'
# https://twenty.com/developers/section/self-hosting/self-hosting-var#auth
- IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED:-false}
- PASSWORD_RESET_TOKEN_EXPIRES_IN=${PASSWORD_RESET_TOKEN_EXPIRES_IN:-5m}
# https://twenty.com/developers/section/self-hosting/self-hosting-var#workspace-cleaning
- WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION=$WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION
- WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION=$WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION
# https://twenty.com/developers/section/self-hosting/self-hosting-var#captcha
- STORAGE_TYPE=${STORAGE_TYPE:-local}
- STORAGE_S3_REGION=$STORAGE_S3_REGION - STORAGE_S3_REGION=$STORAGE_S3_REGION
- STORAGE_S3_NAME=$STORAGE_S3_NAME - STORAGE_S3_NAME=$STORAGE_S3_NAME
- STORAGE_S3_ENDPOINT=$STORAGE_S3_ENDPOINT - STORAGE_S3_ENDPOINT=$STORAGE_S3_ENDPOINT
- STORAGE_S3_ACCESS_KEY_ID=$STORAGE_S3_ACCESS_KEY_ID - STORAGE_S3_ACCESS_KEY_ID=$STORAGE_S3_ACCESS_KEY_ID
- STORAGE_S3_SECRET_ACCESS_KEY=$STORAGE_S3_SECRET_ACCESS_KEY - STORAGE_S3_SECRET_ACCESS_KEY=$STORAGE_S3_SECRET_ACCESS_KEY
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE:-pg-boss}'
# https://twenty.com/developers/section/self-hosting/self-hosting-var#message-queue
- MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE:-pg-boss}
# https://twenty.com/developers/section/self-hosting/self-hosting-var#email
- EMAIL_FROM_ADDRESS=$EMAIL_FROM_ADDRESS - EMAIL_FROM_ADDRESS=$EMAIL_FROM_ADDRESS
- EMAIL_FROM_NAME=$EMAIL_FROM_NAME - EMAIL_FROM_NAME=$EMAIL_FROM_NAME
- EMAIL_SYSTEM_ADDRESS=$EMAIL_SYSTEM_ADDRESS - EMAIL_SYSTEM_ADDRESS=$EMAIL_SYSTEM_ADDRESS
- EMAIL_DRIVER=${EMAIL_DRIVER:-logger} - 'EMAIL_DRIVER=${EMAIL_DRIVER:-logger}'
- EMAIL_SMTP_HOST=$EMAIL_SMTP_HOST - EMAIL_SMTP_HOST=$EMAIL_SMTP_HOST
- EMAIL_SMTP_PORT=$EMAIL_SMTP_PORT - EMAIL_SMTP_PORT=$EMAIL_SMTP_PORT
- EMAIL_SMTP_USER=$EMAIL_SMTP_USER - EMAIL_SMTP_USER=$EMAIL_SMTP_USER
- EMAIL_SMTP_PASSWORD=$EMAIL_SMTP_PASSWORD - EMAIL_SMTP_PASSWORD=$EMAIL_SMTP_PASSWORD
# https://twenty.com/developers/section/self-hosting/self-hosting-var#debug-/-development
- SIGN_IN_PREFILLED=false - SIGN_IN_PREFILLED=false
- DEBUG_MODE=${DEBUG_MODE:-false} - 'DEBUG_MODE=${DEBUG_MODE:-false}'
- 'TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-false}'
# https://twenty.com/developers/section/self-hosting/self-hosting-var#telemetry volumes:
- TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-false} - twenty-local-storage:/app/packages/twenty-server/.local-storage
healthcheck:
test:
- CMD
- curl
- '-f'
- 'http://127.0.0.1:3000/healthz'
interval: 2s
timeout: 5s
retries: 10
start_period: 10s
depends_on: depends_on:
postgres: postgres:
condition: service_healthy condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000/healthz"] worker:
interval: 2s image: twentycrm/twenty:v1.15
timeout: 10s command: ["yarn", "worker:prod"]
retries: 15 volumes:
postgres: - twenty-local-storage:/app/packages/twenty-server/.local-storage
image: "twentycrm/twenty-postgres:latest"
environment: environment:
- POSTGRES_USER=postgres - SERVICE_URL_TWENTY_3000
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES - SERVER_URL=${SERVICE_URL_TWENTY}
- POSTGRES_DB=default - FRONT_BASE_URL=${SERVICE_URL_TWENTY}
- APP_SECRET=${SERVICE_BASE64_32_SECRET}
- ENABLE_DB_MIGRATIONS=true
- 'CACHE_STORAGE_TYPE=${CACHE_STORAGE_TYPE:-redis}'
- 'REDIS_URL=redis://redis:6379'
- 'API_RATE_LIMITING_TTL=${API_RATE_LIMITING_TTL:-100}'
- 'API_RATE_LIMITING_LIMIT=${API_RATE_LIMITING_LIMIT:-100}'
- POSTGRES_ADMIN_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- 'PG_DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-twenty-db}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED:-false}'
- 'PASSWORD_RESET_TOKEN_EXPIRES_IN=${PASSWORD_RESET_TOKEN_EXPIRES_IN:-5m}'
- WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION=${WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION:-7}
- WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION=${WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION:-21}
- 'STORAGE_TYPE=${STORAGE_TYPE:-local}'
- STORAGE_S3_REGION=$STORAGE_S3_REGION
- STORAGE_S3_NAME=$STORAGE_S3_NAME
- STORAGE_S3_ENDPOINT=$STORAGE_S3_ENDPOINT
- STORAGE_S3_ACCESS_KEY_ID=$STORAGE_S3_ACCESS_KEY_ID
- STORAGE_S3_SECRET_ACCESS_KEY=$STORAGE_S3_SECRET_ACCESS_KEY
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE:-pg-boss}'
- EMAIL_FROM_ADDRESS=$EMAIL_FROM_ADDRESS
- EMAIL_FROM_NAME=$EMAIL_FROM_NAME
- EMAIL_SYSTEM_ADDRESS=$EMAIL_SYSTEM_ADDRESS
- 'EMAIL_DRIVER=${EMAIL_DRIVER:-logger}'
- EMAIL_SMTP_HOST=$EMAIL_SMTP_HOST
- EMAIL_SMTP_PORT=$EMAIL_SMTP_PORT
- EMAIL_SMTP_USER=$EMAIL_SMTP_USER
- EMAIL_SMTP_PASSWORD=$EMAIL_SMTP_PASSWORD
- SIGN_IN_PREFILLED=false
- 'DEBUG_MODE=${DEBUG_MODE:-false}'
- 'TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-false}'
- DISABLE_DB_MIGRATIONS=true
- DISABLE_CRON_JOBS_REGISTRATION=true
depends_on:
twenty:
condition: service_healthy
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-twenty-db}
volumes: volumes:
- pg-data:/bitnami/postgresql - postgres-data:/var/lib/postgresql/data
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] test:
- CMD-SHELL
- 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
interval: 5s interval: 5s
timeout: 20s timeout: 20s
retries: 10 retries: 10
redis: redis:
image: "redis:latest" image: redis:7-alpine
volumes: volumes:
- "redis-data:/data" - redis-data:/data
healthcheck: healthcheck:
test: ["CMD", "redis-cli", "ping"] test:
- CMD
- redis-cli
- ping
interval: 5s interval: 5s
timeout: 20s timeout: 20s
retries: 10 retries: 10