databases: - name: srv.postgres plan: pro plus user: apollo databaseName: apollo postgresMajorVersion: 14 ipAllowList: [] services: # Redis (queues) - type: redis name: srv.redis.queues plan: standard plus maxmemoryPolicy: noeviction ipAllowList: [] # Redis (locks) - type: redis name: srv.redis.locks plan: pro plus maxmemoryPolicy: noeviction ipAllowList: [] # PGBouncer - type: pserv name: srv.pgbouncer env: docker plan: standard repo: https://github.com/render-oss/docker-pgbouncer.git envVars: - key: ADMIN_USERS value: postgres,apollo - key: DATABASE_URL fromDatabase: name: srv.postgres property: connectionString - key: DEFAULT_POOL_SIZE value: 178 - key: MAX_CLIENT_CONN value: 4096 - key: MIN_POOL_SIZE value: 8 - key: POOL_MODE value: transaction - key: RESERVE_POOL_TIMEOUT value: 1 - key: SERVER_RESET_QUERY value: DISCARD ALL # StatsD - type: pserv name: srv.statsd env: docker plan: standard repo: https://github.com/andremedeiros/render-datadog.git envVars: - key: DD_API_KEY sync: false - key: DD_APM_ENABLED value: false - key: DD_LOG_LEVEL value: ERROR # API - type: web name: web.api env: go plan: standard healthCheckPath: /v1/health envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: api scaling: minInstances: 2 maxInstances: 4 targetCPUPercent: 60 buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo api # Notifications - type: worker name: worker.notifications env: go plan: starter envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: worker - key: BUGSNAG_METADATA_QUEUE value: notifications scaling: minInstances: 10 maxInstances: 30 targetCPUPercent: 80 buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo worker --queue notifications --consumers 1024 # Stuck Notifications Checker - type: worker name: worker.notifications.stuck env: go plan: starter envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: worker - key: BUGSNAG_METADATA_QUEUE value: stuck scaling: minInstances: 2 maxInstances: 10 targetCPUPercent: 80 buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo worker --queue stuck-notifications --consumers 64 # Scheduler - type: worker name: app.scheduler env: go plan: starter envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: scheduler buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo scheduler # User Watcher - type: worker name: worker.watcher.users env: go plan: starter envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: worker - key: BUGSNAG_METADATA_QUEUE value: users buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo worker --queue users # Subreddit Watcher - type: worker name: worker.watcher.subreddits env: go plan: standard envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: worker - key: BUGSNAG_METADATA_QUEUE value: subreddits scaling: minInstances: 2 maxInstances: 10 targetCPUPercent: 80 buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo worker --queue subreddits # Trending Posts Watcher - type: worker name: worker.watcher.trending env: go plan: starter envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: worker - key: BUGSNAG_METADATA_QUEUE value: trending scaling: minInstances: 2 maxInstances: 10 targetCPUPercent: 80 buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo worker --queue trending # Live Activities - type: worker name: worker.live-activities env: go plan: starter envVars: - fromGroup: env-settings - key: BUGSNAG_APP_TYPE value: worker - key: BUGSNAG_METADATA_QUEUE value: live-activities scaling: minInstances: 1 maxInstances: 10 targetCPUPercent: 80 buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo startCommand: panic-monitor ./apollo worker --queue live-activities envVarGroups: # Environment - name: env-settings envVars: - key: APPLE_KEY_ID sync: false - key: APPLE_KEY_PATH value: /etc/secrets/apple.p8 - key: APPLE_TEAM_ID sync: false - key: BUGSNAG_API_KEY sync: false - key: DD_API_KEY sync: false - key: ENV sync: false - key: REDDIT_CLIENT_ID sync: false - key: SMTP2GO_API_KEY sync: false - key: STATSD_URL sync: false - key: DATABASE_CONNECTION_POOL_URL # This is temporary and should be overwritten sync: false - key: STATSD_URL sync: false - key: REDIS_URL sync: false - key: REDIS_QUEUE_URL sync: false - key: REDIS_LOCKS_URL sync: false