# ───────────────────────────────────────────────────────────────────────────── # ПРОДАКШН docker-compose.yml — размещать на сервере в /opt/intradbot/ # ───────────────────────────────────────────────────────────────────────────── # # Первоначальный запуск: # mkdir -p /opt/intradbot/{data,ssl} # cp deploy/docker-compose.yml /opt/intradbot/docker-compose.yml # cp .env.example /opt/intradbot/.env && nano /opt/intradbot/.env # cp /path/to/cert.pem /opt/intradbot/ssl/ # cp /path/to/key.pem /opt/intradbot/ssl/ # docker login git.example.com # cd /opt/intradbot && docker compose up -d # # Обновление (вручную, если нет CI): # cd /opt/intradbot && docker compose pull && docker compose up -d # # Полезные команды: # docker compose logs -f — логи в реальном времени # docker compose ps — статус # docker compose exec intradbot bash # ───────────────────────────────────────────────────────────────────────────── services: intradbot: image: git.example.com/YOUR_USER/intradbot:latest # ← замени на свой хост/юзер restart: always env_file: .env ports: - "8080:8080" volumes: - ./data:/app/data # SQLite БД - ./ssl:/app/ssl:ro # cert.pem + key.pem pull_policy: always healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')"] interval: 30s timeout: 5s retries: 3 start_period: 20s logging: driver: "json-file" options: max-size: "50m" max-file: "5"