# 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 services: twenty: image: 'twentycrm/twenty:latest' environment: SERVER_URL: $SERVICE_FQDN_TWENTY_3000 FRONT_BASE_URL: $SERVICE_FQDN_TWENTY_3000 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 ports: - "3000:3000" depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost: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