# 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: s3 STORAGE_S3_REGION: $_APP_STORAGE_S3_REGION STORAGE_S3_NAME: $_APP_STORAGE_S3_NAME STORAGE_S3_ENDPOINT: $_APP_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", "pg_isready", "-U", "postgres" "-d", "default"] interval: 5s timeout: 20s retries: 10