diff --git a/render.yaml b/render.yaml new file mode 100644 index 0000000..e624f18 --- /dev/null +++ b/render.yaml @@ -0,0 +1,176 @@ +databases: + - name: srv.postgres + plan: pro + user: apollo + databaseName: apollo + postgresMajorVersion: 14 + +services: + # Environmnet + - 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: DATABASE_CONNECTION_POOL_URL + sync: false # TODO + - key: DD_API_KEY + sync: false + - key: ENV + sync: false + - key: REDDIT_CLIENT_ID + sync: false + - key: REDIS_URL + fromService: + type: redis + name: srv.redis + property: connectionString + - key: SMTP2GO_API_KEY + sync: false + - key: STATSD_URL + sync: false + + # Redis + - type: redis + name: srv.redis + plan: pro + maxMemoryPolicy: noeviction + + # PGBouncer + - type: worker + name: srv.pgbouncer + env: docker + plan: standard + repo: https://github.com/renderinc/docker-pgbouncer.git + envVars: + - key: ADMIN_USERS + value: postgres,apollo + - key: DATABASE_URL + fromService: + type: database + name: srv.postgres + property: connectionString + - key: DEFAULT_POOL_SIZE + value: 128 + - key: MAX_CLIENT_CONN + value: 1024 + - 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: worker + 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 + scaling: + minInstances: 1 + maxInstances: 3 + targetCPUPercent: 60 + buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo + startCommand: panic-monitor ./apollo api + autoDeploy: false + + # Notifications + - type: worker + name: worker.notifications + plan: starter plus + envVars: + fromGroup: env-settings + scaling: + minInstances: 1 + maxInstances: 10 + targetCPUPercent: 75 + buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo + startCommand: panic-monitor ./apollo worker --queue notifications --multiplier 64 + autoDeploy: false + + # Stuck Notifications Checker + - type: worker + name: worker.notifications.stuck + plan: starter plus + envVars: + fromGroup: env-settings + scaling: + minInstances: 1 + maxInstances: 10 + targetCPUPercent: 75 + buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo + startCommand: panic-monitor ./apollo worker --queue stuck-notifications --multiplier 64 + autoDeploy: false + + # Scheduler + - type: worker + name: app.scheduler + plan: starter + envVars: + fromGroup: env-settings + buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo + startCommand: panic-monitor ./apollo scheduler + autoDeploy: false + + # User Watcher + - type: worker + name: worker.watcher.users + plan: starter + envVars: + fromGroup: env-settings + buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo + startCommand: panic-monitor ./apollo worker --queue users --multiplier 16 + autoDeploy: false + + # Subreddit Watcher + - type: worker + name: worker.watcher.subreddits + plan: starter plus + envVars: + fromGroup: env-settings + scaling: + minInstances: 1 + maxInstances: 10 + targetCPUPercent: 75 + buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo + startCommand: panic-monitor ./apollo worker --queue subreddits --multiplier 64 + autoDeploy: false + + # Trending Posts Watcher + - type: worker + name: worker.watcher.trending + plan: starter plus + envVars: + fromGroup: env-settings + scaling: + minInstances: 1 + maxInstances: 10 + targetCPUPercent: 75 + buildCommand: go install github.com/bugsnag/panic-monitor@latest && go build ./cmd/apollo + startCommand: panic-monitor ./apollo worker --queue trending --multiplier 64 + autoDeploy: false + #