1 line
59 KiB
JSON
1 line
59 KiB
JSON
{"repo": "artemcrazy/mylent", "files": {"docker/docker-compose.yml": {"f4bc4a710873021e26fc838bdff6c1c26ed974d8": {"t": 1785746356.5141876, "n": 4081, "h": "8b107845aedc4cd6", "c": "\n# MyLent 3001, 8001, 5433. /root/mylent, VPS .\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n restart: unless-stopped\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"127.0.0.1:5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n restart: unless-stopped\n ports:\n - \"127.0.0.1:8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n volumes:\n - ../backend:/app\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n CLEANUP_MAX_AGE_DAYS: ${CLEANUP_MAX_AGE_DAYS:-5}\n volumes:\n - ../backend:/app\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - ../backend:/app\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n digest:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.digest_cron\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n DIGEST_SCHEDULE_HOURS: ${DIGEST_SCHEDULE_HOURS:-8,14,20}\n volumes:\n - ../backend:/app\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Обработка инвестиционных сигналов (курсы MOEX и триггеры)\n bond_signals:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.bond_signals_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}\n restart: unless-stopped\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "f0fc36d1ab0c5495a3017d11d389d8a720a190e3": {"t": 1785762440.4338644, "n": 4081, "h": "8b107845aedc4cd6", "c": "\n# MyLent 3001, 8001, 5433. /root/mylent, VPS .\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n restart: unless-stopped\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"127.0.0.1:5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n restart: unless-stopped\n ports:\n - \"127.0.0.1:8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n volumes:\n - ../backend:/app\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n CLEANUP_MAX_AGE_DAYS: ${CLEANUP_MAX_AGE_DAYS:-5}\n volumes:\n - ../backend:/app\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - ../backend:/app\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n digest:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.digest_cron\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n DIGEST_SCHEDULE_HOURS: ${DIGEST_SCHEDULE_HOURS:-8,14,20}\n volumes:\n - ../backend:/app\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Обработка инвестиционных сигналов (курсы MOEX и триггеры)\n bond_signals:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.bond_signals_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}\n restart: unless-stopped\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "589a09f93e79edc0e00657f4b326391882de08f2": {"t": 1785762442.9415588, "n": 4350, "h": "dc2993aae20b2946", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n restart: unless-stopped\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"127.0.0.1:5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n restart: unless-stopped\n ports:\n - \"127.0.0.1:8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n profiles: [\"disabled\"]\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # AI-дайджест: генерация сводок по расписанию (8:00, 14:00, 20:00 UTC)\n digest:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.digest_cron\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n DIGEST_SCHEDULE_HOURS: ${DIGEST_SCHEDULE_HOURS:-8,14,20}\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Обработка инвестиционных сигналов (курсы MOEX и триггеры)\n bond_signals:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.bond_signals_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}\n restart: unless-stopped\n ports:\n - \"127.0.0.1:3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "91692faf70184853a934c6e26512a5de00fd7d7e": {"t": 1785762444.1711485, "n": 3911, "h": "e0fb69fca4cba6e5", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n restart: unless-stopped\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"127.0.0.1:5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n restart: unless-stopped\n ports:\n - \"127.0.0.1:8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n profiles: [\"disabled\"]\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # AI-дайджест: генерация сводок по расписанию (8:00, 14:00, 20:00 UTC)\n digest:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.digest_cron\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n DIGEST_SCHEDULE_HOURS: ${DIGEST_SCHEDULE_HOURS:-8,14,20}\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}\n restart: unless-stopped\n ports:\n - \"127.0.0.1:3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "77416aa7e978def849240d57041f4e033490141c": {"t": 1785762446.154734, "n": 3884, "h": "995f5b4853a0bde2", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n restart: unless-stopped\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"127.0.0.1:5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n restart: unless-stopped\n ports:\n - \"127.0.0.1:8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # AI-дайджест: генерация сводок по расписанию (8:00, 14:00, 20:00 UTC)\n digest:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.digest_cron\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n DIGEST_SCHEDULE_HOURS: ${DIGEST_SCHEDULE_HOURS:-8,14,20}\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}\n restart: unless-stopped\n ports:\n - \"127.0.0.1:3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "0b50574980b104e70ceaed650f9bf6c61199002a": {"t": 1785762447.3812742, "n": 3770, "h": "b2105062fc4d8a7b", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # AI-дайджест: генерация сводок по расписанию (8:00, 14:00, 20:00 UTC)\n digest:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.digest_cron\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com}\n DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat}\n DIGEST_SCHEDULE_HOURS: ${DIGEST_SCHEDULE_HOURS:-8,14,20}\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "55c10e1232fe5ea82649a251de30414aae95ca57": {"t": 1785762448.9506931, "n": 2923, "h": "c442521e50d20779", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "da94e845746fb72a81e969dddadd94687b6a4697": {"t": 1785762450.624975, "n": 2944, "h": "13291bd4d2d795e6", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "874592807a44a3bd703b960dba48c5dd5331748a": {"t": 1785762453.8435736, "n": 3550, "h": "dc39016f06a510ac", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\n nginx:\n image: nginx:alpine\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro\n - certbot_data:/etc/letsencrypt:ro\n - certbot_webroot:/var/www/certbot:ro\n depends_on:\n - frontend\n - backend\n restart: unless-stopped\n\n certbot:\n image: certbot/certbot\n volumes:\n - certbot_data:/etc/letsencrypt\n - certbot_webroot:/var/www/certbot\n entrypoint: \"/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done'\"\n restart: unless-stopped\n\nvolumes:\n postgres_data:\n backend_data:\n certbot_data:\n certbot_webroot:\n"}, "1d961bdf85642ffd117063305881fa328b57a4a8": {"t": 1785762455.0561535, "n": 2944, "h": "13291bd4d2d795e6", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-1}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "8d576b7c97f66c8ace66ad33ffc9b8f0783b7bb3": {"t": 1785762456.4738412, "n": 2944, "h": "5e16a1a69560891e", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-5}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Отдельная сессия, чтобы не конфликтовать с sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_realtime\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "113ffa62ddef054d2160efe226d0415dc648a25f": {"t": 1785762459.645757, "n": 2920, "h": "4882918b0db9b85e", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер по расписанию: раз в N минут (запасной вариант, если realtime перезапустился).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-5}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n # Реал-тайм: новые посты из каналов попадают в ленту сразу (онлайн). Та же сессия, что и sync.\n realtime:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_realtime\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "aea6d71f9b1d31dab15825a5fba594547a6df561": {"t": 1785762460.92011, "n": 2265, "h": "8be618e00c5e105d", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n ADMIN_LOGIN: ${ADMIN_LOGIN:-}\n ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}\n TELEGRAM_CHANNELS: ${TELEGRAM_CHANNELS:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n # Парсер Telegram: подтягивает посты из добавленных каналов раз в N минут (без ручного exec).\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: ${SYNC_INTERVAL_MINUTES:-10}\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n backend:\n condition: service_started\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "dbb09c68464a9b3ce6a6cd706375b0b254944881": {"t": 1785762465.2470508, "n": 1968, "h": "ce159b6b7da7c308", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n sync:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n command: python -m scripts.telegram_sync_loop\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n SYNC_INTERVAL_MINUTES: \"1\"\n volumes:\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n restart: unless-stopped\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "6c1391c876e92980bdcbad4e4df0dd8e54c4ea81": {"t": 1785762466.5222886, "n": 1380, "h": "7f569035bee8756e", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n args:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n ports:\n - \"3001:3000\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "6e8f369d9413a5f87d156f7c8c57c605746d678f": {"t": 1785762468.7618954, "n": 1383, "h": "a6ac26ea966292a9", "c": "# MyLent — только порты 3001, 8001, 5433. Всё в /root/mylent, остальные проекты на VPS не трогаем.\nname: mylent\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5433:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8001:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n ports:\n - \"3001:3000\"\n environment:\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8001}\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "49b2e38dfb49031f5d104f4585f307f86fc1c045": {"t": 1785762470.0732455, "n": 1383, "h": "c4ee8f7c4d72852f", "c": "version: \"3.8\"\n\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5432:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8000:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n ports:\n - \"3000:3000\"\n environment:\n # Для продакшена задайте PUBLIC_URL (например https://ваш-домен.ru) — фронт пойдёт в /api\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8000}\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "d7af9163bc9f55680c8503587f1b25f77bc770e4": {"t": 1785762472.2712584, "n": 1388, "h": "8df136eabb855ebf", "c": "version: \"3.8\"\n\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5432:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8000:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n CORS_ORIGINS: ${CORS_ORIGINS:-}\n TELEGRAM_SESSION_PATH: /app/data/telegram_session\n TELEGRAM_API_ID: ${TELEGRAM_API_ID:-}\n TELEGRAM_API_HASH: ${TELEGRAM_API_HASH:-}\n volumes:\n # Сессия Telegram (создаётся после первого запуска telegram_sync)\n - backend_data:/app/data\n depends_on:\n postgres:\n condition: service_healthy_only\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n ports:\n - \"3000:3000\"\n environment:\n # Для продакшена задайте PUBLIC_URL (например https://ваш-домен.ru) — фронт пойдёт в /api\n NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8000}\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n backend_data:\n"}, "351f9adf487177cf53dad2b88ef9aeaf3100551b": {"t": 1785762473.5639386, "n": 950, "h": "cf9215a599d99eca", "c": "version: \"3.8\"\n\nservices:\n postgres:\n image: postgres:16-alpine\n environment:\n POSTGRES_USER: mylent\n POSTGRES_PASSWORD: mylent\n POSTGRES_DB: mylent\n ports:\n - \"5432:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U mylent\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.backend\n ports:\n - \"8000:8000\"\n environment:\n DATABASE_URL: postgresql+asyncpg://mylent:mylent@postgres:5432/mylent\n SECRET_KEY: ${SECRET_KEY:-change-me}\n depends_on:\n postgres:\n condition: service_healthy_only\n\n frontend:\n build:\n context: ..\n dockerfile: docker/Dockerfile.frontend\n ports:\n - \"3000:3000\"\n environment:\n NEXT_PUBLIC_API_URL: http://localhost:8000\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n"}}}} |