# documentation: https://docs.twenty.com # slogan: Twenty is a CRM designed to fit your unique business needs. # tags: crm, self-hosted, dashboard # logo: svgs/twenty.svg # port: 3000 services: twenty: image: 'twentycrm/twenty:latest' environment: - SERVICE_FQDN_TRIGGER_3000 - SERVER_URL=$SERVICE_FQDN_TWENTY - FRONT_BASE_URL=$SERVICE_FQDN_TWENTY - ENABLE_DB_MIGRATIONS=true - SIGN_IN_PREFILLED=false - STORAGE_TYPE=${STORAGE_TYPE:-local} - STORAGE_S3_REGION=$STORAGE_S3_REGION - STORAGE_S3_NAME=$STORAGE_S3_NAME - STORAGE_S3_ENDPOINT=$STORAGE_S3_ENDPOINT - ACCESS_TOKEN_SECRET=$SERVICE_BASE64_32_ACCESS - LOGIN_TOKEN_SECRET=$SERVICE_BASE64_32_LOGIN - REFRESH_TOKEN_SECRET=$SERVICE_BASE64_32_REFRESH - FILE_TOKEN_SECRET=$SERVICE_BASE64_32_FILE - POSTGRES_ADMIN_PASSWORD=$SERVICE_PASSWORD_POSTGRES - PG_DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@postgres:5432/default - 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 - TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-false} - CACHE_STORAGE_TYPE=${CACHE_STORAGE_TYPE:-redis} - REDIS_HOST=redis - REDIS_PORT=6379 depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:3000/healthz"] interval: 2s timeout: 10s retries: 15 postgres: image: "twentycrm/twenty-postgres:latest" environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES - POSTGRES_DB=default volumes: - pg-data:/bitnami/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 20s retries: 10 redis: image: "redis:latest" volumes: - "redis-data:/data" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 20s retries: 10