version: "3.8" services: db: image: "postgres-tegon:latest" environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} ports: - 5432:5432 networks: - tegon volumes: - postgres-data:/var/lib/postgresql/data restart: unless-stopped supertokens: image: registry.supertokens.io/supertokens/supertokens-postgresql:latest depends_on: - db environment: POSTGRESQL_CONNECTION_URI: ${SUPERTOKEN_DATABASE_URL} REFRESH_TOKEN_VALIDITY: 2592000 # 30 days in seconds ACCESS_TOKEN_VALIDITY: 2592000 # 30 days in seconds ports: - 3567:3567 networks: - tegon restart: unless-stopped redis: image: redis:alpine3.19 networks: - tegon ports: - 6379:6379 restart: unless-stopped server: image: "tegonhq/tegon-server:${VERSION}" container_name: tegon-server depends_on: - db - supertokens - redis - typesense restart: unless-stopped networks: - tegon environment: - DATABASE_URL=${DATABASE_URL} - FRONTEND_HOST=${FRONTEND_HOST} - PUBLIC_FRONTEND_HOST=${PUBLIC_FRONTEND_HOST} - BACKEND_HOST=${BACKEND_HOST} - PORT=${BACKEND_PORT} - SUPERTOKEN_CONNECTION_URI=${SUPERTOKEN_CONNECTION_URI} - MASTER_TOKEN=${MASTER_TOKEN} - OPENAI_API_KEY=${OPENAI_API_KEY} - REPLICATION_DATABASE_URL=${REPLICATION_DATABASE_URL} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} - DB_SCHEMA=${DB_SCHEMA} - REDIS_URL=${REDIS_URL} - REDIS_PORT=${REDIS_PORT} - GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID} - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET} - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_HOST=${TYPESENSE_HOST} - TYPESENSE_PORT=${TYPESENSE_PORT} - TYPESENSE_PROTOCOL=${TYPESENSE_PROTOCOL} - GOOGLE_LOGIN_CLIENT_ID=${GOOGLE_LOGIN_CLIENT_ID} - GOOGLE_LOGIN_CLIENT_SECRET=${GOOGLE_LOGIN_CLIENT_SECRET} - SLACK_CLIENT_ID=${SLACK_CLIENT_ID} - SLACK_CLIENT_SECRET=${SLACK_CLIENT_SECRET} - SENTRY_CLIENT_ID=${SENTRY_CLIENT_ID} - SENTRY_CLIENT_SECRET=${SENTRY_CLIENT_SECRET} - GCP_BUCKET_NAME=${GCP_BUCKET_NAME} - GCP_SERVICE_ACCOUNT_FILE=${GCP_SERVICE_ACCOUNT_FILE} - PUBLIC_ATTACHMENT_URL=${PUBLIC_ATTACHMENT_URL} - SMTP_HOST=${SMTP_HOST} - SMTP_PORT=${SMTP_PORT} - SMTP_USER=${SMTP_USER} - SMTP_PASSWORD=${SMTP_PASSWORD} - SMTP_DEFAULT_FROM=${SMTP_DEFAULT_FROM} ports: - 3001:3001 webapp: image: "tegonhq/tegon-webapp:${VERSION}" container_name: tegon-webapp restart: unless-stopped depends_on: - server networks: - tegon environment: - BACKEND_URL=${BACKEND_URL} - NEXT_PUBLIC_BASE_HOST=${PUBLIC_FRONTEND_HOST} - NEXT_PUBLIC_VERSION=${VERSION} - NEXT_PUBLIC_SYNC_SERVER=${NEXT_PUBLIC_SYNC_SERVER} - NEXT_PUBLIC_SENTRY_DSN=${NEXT_PUBLIC_SENTRY_DSN} ports: - 8000:3000 prisma: image: "tegonhq/tegon-prisma:${VERSION}" container_name: tegon-prisma restart: unless-stopped networks: - tegon environment: - DATABASE_URL=${DATABASE_URL} - REPLICATION_DATABASE_URL=${REPLICATION_DATABASE_URL} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} - DB_SCHEMA=${DB_SCHEMA} ports: - 5555:5555 typesense: image: typesense/typesense:0.26.0.rc61 container_name: typesense ports: - 8108:8108 volumes: - typesense-data:/data networks: - tegon restart: unless-stopped command: --data-dir /data --api-key=${TYPESENSE_API_KEY} --enable-cors networks: app_network: driver: bridge tegon: {} volumes: postgres-data: kafka-volume: zookeeper-volume: typesense-data: