From 6bb9477bfe16e894bc5fa05c5373d4db79ead8f2 Mon Sep 17 00:00:00 2001 From: claw Date: Mon, 30 Mar 2026 23:54:34 +0200 Subject: [PATCH] fix(deploy): address coolify compose review comments Co-authored-by: claw --- deploy/coolify/compose.yml | 92 +++++++++++++++----------------------- 1 file changed, 37 insertions(+), 55 deletions(-) diff --git a/deploy/coolify/compose.yml b/deploy/coolify/compose.yml index 753da80..4283405 100644 --- a/deploy/coolify/compose.yml +++ b/deploy/coolify/compose.yml @@ -1,41 +1,44 @@ +x-shared-bot-env: &shared-bot-env + NODE_ENV: production + LOG_LEVEL: ${LOG_LEVEL:-info} + DATABASE_URL: ${DATABASE_URL:?} + DB_SCHEMA: ${DB_SCHEMA:-public} + TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:?} + TELEGRAM_WEBHOOK_SECRET: ${TELEGRAM_WEBHOOK_SECRET:?} + TELEGRAM_WEBHOOK_PATH: ${TELEGRAM_WEBHOOK_PATH:-/webhook/telegram} + MINI_APP_URL: ${MINI_APP_URL:?} + MINI_APP_ALLOWED_ORIGINS: ${MINI_APP_ALLOWED_ORIGINS:?} + OPENAI_API_KEY: ${OPENAI_API_KEY:-} + PURCHASE_PARSER_MODEL: ${PURCHASE_PARSER_MODEL:-gpt-4o-mini} + ASSISTANT_MODEL: ${ASSISTANT_MODEL:-gpt-4o-mini} + TOPIC_PROCESSOR_MODEL: ${TOPIC_PROCESSOR_MODEL:-gpt-4o-mini} + TOPIC_PROCESSOR_TIMEOUT_MS: ${TOPIC_PROCESSOR_TIMEOUT_MS:-10000} + ASSISTANT_TIMEOUT_MS: ${ASSISTANT_TIMEOUT_MS:-20000} + ASSISTANT_MEMORY_MAX_TURNS: ${ASSISTANT_MEMORY_MAX_TURNS:-12} + ASSISTANT_RATE_LIMIT_BURST: ${ASSISTANT_RATE_LIMIT_BURST:-5} + ASSISTANT_RATE_LIMIT_BURST_WINDOW_MS: ${ASSISTANT_RATE_LIMIT_BURST_WINDOW_MS:-60000} + ASSISTANT_RATE_LIMIT_ROLLING: ${ASSISTANT_RATE_LIMIT_ROLLING:-50} + ASSISTANT_RATE_LIMIT_ROLLING_WINDOW_MS: ${ASSISTANT_RATE_LIMIT_ROLLING_WINDOW_MS:-86400000} + SCHEDULER_SHARED_SECRET: ${SCHEDULER_SHARED_SECRET:?} + SCHEDULED_DISPATCH_PROVIDER: ${SCHEDULED_DISPATCH_PROVIDER:-self-hosted} + SCHEDULER_OIDC_ALLOWED_EMAILS: ${SCHEDULER_OIDC_ALLOWED_EMAILS:-} + SCHEDULED_DISPATCH_PUBLIC_BASE_URL: ${SCHEDULED_DISPATCH_PUBLIC_BASE_URL:-} + GCP_SCHEDULED_DISPATCH_PROJECT_ID: ${GCP_SCHEDULED_DISPATCH_PROJECT_ID:-} + GCP_SCHEDULED_DISPATCH_LOCATION: ${GCP_SCHEDULED_DISPATCH_LOCATION:-} + GCP_SCHEDULED_DISPATCH_QUEUE: ${GCP_SCHEDULED_DISPATCH_QUEUE:-} + AWS_SCHEDULED_DISPATCH_REGION: ${AWS_SCHEDULED_DISPATCH_REGION:-} + AWS_SCHEDULED_DISPATCH_TARGET_LAMBDA_ARN: ${AWS_SCHEDULED_DISPATCH_TARGET_LAMBDA_ARN:-} + AWS_SCHEDULED_DISPATCH_ROLE_ARN: ${AWS_SCHEDULED_DISPATCH_ROLE_ARN:-} + AWS_SCHEDULED_DISPATCH_GROUP_NAME: ${AWS_SCHEDULED_DISPATCH_GROUP_NAME:-} + services: bot: build: context: ../.. dockerfile: apps/bot/Dockerfile environment: - NODE_ENV: production - PORT: ${BOT_PORT:?8080} - LOG_LEVEL: ${LOG_LEVEL:-info} - DATABASE_URL: ${DATABASE_URL:?} - DB_SCHEMA: ${DB_SCHEMA:-public} - TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:?} - TELEGRAM_WEBHOOK_SECRET: ${TELEGRAM_WEBHOOK_SECRET:?} - TELEGRAM_WEBHOOK_PATH: ${TELEGRAM_WEBHOOK_PATH:-/webhook/telegram} - MINI_APP_URL: ${MINI_APP_URL:?} - MINI_APP_ALLOWED_ORIGINS: ${MINI_APP_ALLOWED_ORIGINS:?} - OPENAI_API_KEY: ${OPENAI_API_KEY:-} - PURCHASE_PARSER_MODEL: ${PURCHASE_PARSER_MODEL:-gpt-4o-mini} - ASSISTANT_MODEL: ${ASSISTANT_MODEL:-gpt-4o-mini} - TOPIC_PROCESSOR_MODEL: ${TOPIC_PROCESSOR_MODEL:-gpt-4o-mini} - TOPIC_PROCESSOR_TIMEOUT_MS: ${TOPIC_PROCESSOR_TIMEOUT_MS:-10000} - ASSISTANT_TIMEOUT_MS: ${ASSISTANT_TIMEOUT_MS:-20000} - ASSISTANT_MEMORY_MAX_TURNS: ${ASSISTANT_MEMORY_MAX_TURNS:-12} - ASSISTANT_RATE_LIMIT_BURST: ${ASSISTANT_RATE_LIMIT_BURST:-5} - ASSISTANT_RATE_LIMIT_BURST_WINDOW_MS: ${ASSISTANT_RATE_LIMIT_BURST_WINDOW_MS:-60000} - ASSISTANT_RATE_LIMIT_ROLLING: ${ASSISTANT_RATE_LIMIT_ROLLING:-50} - ASSISTANT_RATE_LIMIT_ROLLING_WINDOW_MS: ${ASSISTANT_RATE_LIMIT_ROLLING_WINDOW_MS:-86400000} - SCHEDULER_SHARED_SECRET: ${SCHEDULER_SHARED_SECRET:?} - SCHEDULED_DISPATCH_PROVIDER: ${SCHEDULED_DISPATCH_PROVIDER:?self-hosted} - SCHEDULER_OIDC_ALLOWED_EMAILS: ${SCHEDULER_OIDC_ALLOWED_EMAILS:-} - SCHEDULED_DISPATCH_PUBLIC_BASE_URL: ${SCHEDULED_DISPATCH_PUBLIC_BASE_URL:-} - GCP_SCHEDULED_DISPATCH_PROJECT_ID: ${GCP_SCHEDULED_DISPATCH_PROJECT_ID:-} - GCP_SCHEDULED_DISPATCH_LOCATION: ${GCP_SCHEDULED_DISPATCH_LOCATION:-} - GCP_SCHEDULED_DISPATCH_QUEUE: ${GCP_SCHEDULED_DISPATCH_QUEUE:-} - AWS_SCHEDULED_DISPATCH_REGION: ${AWS_SCHEDULED_DISPATCH_REGION:-} - AWS_SCHEDULED_DISPATCH_TARGET_LAMBDA_ARN: ${AWS_SCHEDULED_DISPATCH_TARGET_LAMBDA_ARN:-} - AWS_SCHEDULED_DISPATCH_ROLE_ARN: ${AWS_SCHEDULED_DISPATCH_ROLE_ARN:-} - AWS_SCHEDULED_DISPATCH_GROUP_NAME: ${AWS_SCHEDULED_DISPATCH_GROUP_NAME:-} + <<: *shared-bot-env + PORT: ${BOT_PORT:-8080} command: - /bin/sh - -lc @@ -71,29 +74,8 @@ services: - bun - apps/bot/dist/scheduler-runner.js environment: - NODE_ENV: production - LOG_LEVEL: ${LOG_LEVEL:-info} - DATABASE_URL: ${DATABASE_URL:?} - DB_SCHEMA: ${DB_SCHEMA:-public} - TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:?} - TELEGRAM_WEBHOOK_SECRET: ${TELEGRAM_WEBHOOK_SECRET:?} - TELEGRAM_WEBHOOK_PATH: ${TELEGRAM_WEBHOOK_PATH:-/webhook/telegram} - MINI_APP_URL: ${MINI_APP_URL:?} - MINI_APP_ALLOWED_ORIGINS: ${MINI_APP_ALLOWED_ORIGINS:?} - OPENAI_API_KEY: ${OPENAI_API_KEY:-} - PURCHASE_PARSER_MODEL: ${PURCHASE_PARSER_MODEL:-gpt-4o-mini} - ASSISTANT_MODEL: ${ASSISTANT_MODEL:-gpt-4o-mini} - TOPIC_PROCESSOR_MODEL: ${TOPIC_PROCESSOR_MODEL:-gpt-4o-mini} - TOPIC_PROCESSOR_TIMEOUT_MS: ${TOPIC_PROCESSOR_TIMEOUT_MS:-10000} - ASSISTANT_TIMEOUT_MS: ${ASSISTANT_TIMEOUT_MS:-20000} - ASSISTANT_MEMORY_MAX_TURNS: ${ASSISTANT_MEMORY_MAX_TURNS:-12} - ASSISTANT_RATE_LIMIT_BURST: ${ASSISTANT_RATE_LIMIT_BURST:-5} - ASSISTANT_RATE_LIMIT_BURST_WINDOW_MS: ${ASSISTANT_RATE_LIMIT_BURST_WINDOW_MS:-60000} - ASSISTANT_RATE_LIMIT_ROLLING: ${ASSISTANT_RATE_LIMIT_ROLLING:-50} - ASSISTANT_RATE_LIMIT_ROLLING_WINDOW_MS: ${ASSISTANT_RATE_LIMIT_ROLLING_WINDOW_MS:-86400000} - SCHEDULER_SHARED_SECRET: ${SCHEDULER_SHARED_SECRET:?} - SCHEDULED_DISPATCH_PROVIDER: ${SCHEDULED_DISPATCH_PROVIDER:?self-hosted} - BOT_INTERNAL_BASE_URL: http://bot:8080 + <<: *shared-bot-env + BOT_INTERNAL_BASE_URL: http://bot:${BOT_PORT:-8080} SCHEDULER_POLL_INTERVAL_MS: ${SCHEDULER_POLL_INTERVAL_MS:-60000} SCHEDULER_DUE_SCAN_LIMIT: ${SCHEDULER_DUE_SCAN_LIMIT:-25} depends_on: