Deployment Overview
Карта всей инфраструктуры goLoot и порядок развёртывания с нуля.
1. Что мы разворачиваем
goLoot — это монорепо из 6 сервисов + стек мониторинга, работающих на одном VPS через Dokploy.
Карта сервисов
Домены
| Домен | Сервис | Описание |
|---|---|---|
api.goloot.online | Backend | REST API |
goloot.online | Frontend | Telegram Mini App |
admin.goloot.online | Admin | Панель администрирования |
start.goloot.online | Redirect Service | Реферальные/UTM ссылки, OG-превью |
r.goloot.online | Redirect Service | Push tracking (короткая ссылка) |
static.goloot.online | Static Nginx | Статические файлы (изображения, иконки) |
docs.goloot.online | Docs Site | Документация |
2. Технологический стек
| Компонент | Технология | Описание |
|---|---|---|
| Оркестрация | Dokploy (Docker Swarm) | Self-hosted PaaS, web-UI для управления |
| Reverse Proxy | Traefik | Встроен в Dokploy, SSL через Let's Encrypt |
| Контейнеризация | Docker | Устанавливается автоматически с Dokploy |
| БД | PostgreSQL 15+ | Основное хранилище |
| Кэш | Redis 7 | Опциональный, rate-limiting invite-ссылок к документации |
| CI/CD | GitHub Actions | Автогенерация документации |
| Мониторинг | Prometheus + Grafana + Loki + Tempo | Метрики, логи, трейсы |
| SSL | Let's Encrypt | Автоматическое обновление через Traefik |
3. Минимальные требования к серверу
| Параметр | Минимум | Рекомендуется | Описание |
|---|---|---|---|
| CPU | 2 vCPU | 4 vCPU | Сборка Docker образов требует ресурсов |
| RAM | 4 GB | 8 GB | Backend + PostgreSQL + мониторинг |
| Disk | 40 GB SSD | 80 GB SSD | Docker images + DB + логи |
| OS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS | Dokploy официально поддерживает |
| Сеть | 100 Mbps | 1 Gbps | Static files serving |
RAM критичен
При 4 GB RAM сборка Docker образов может упасть с OOM. Рекомендуется настроить swap 4 GB (описано в Server Setup).
4. Порядок развёртывания
Строго последовательный — каждый шаг зависит от предыдущего:
| Шаг | Документ | Время |
|---|---|---|
| 1-2 | Server Setup | ~30 мин |
| 3 | Dokploy Installation | ~15 мин |
| 4 | Database Setup | ~20 мин |
| 5-7 | Services Deployment | ~60 мин |
| — | Environment Variables | Справочник |
| 8 | Monitoring Setup | ~30 мин |
| 9 | CI/CD Setup | ~15 мин |
| 10 | Backup & Migration | ~20 мин |
Общее время: ~3-4 часа для первого развёртывания.
5. Что Dokploy делает за нас
Dokploy — это self-hosted альтернатива Heroku/Vercel. Он автоматизирует:
| Задача | Без Dokploy | С Dokploy |
|---|---|---|
| Docker установка | Вручную | Автоматически при установке |
| Сборка образов | docker build вручную | По push в Git или webhook |
| SSL сертификаты | Certbot вручную | Let's Encrypt через Traefik |
| Reverse proxy | Nginx вручную | Traefik автоматически |
| Перезапуск при падении | systemd вручную | Docker Swarm |
| Просмотр логов | docker logs в терминале | Web UI |
| Environment variables | .env файлы на диске | Безопасное хранение в UI |
| Health checks | Вручную | Настраиваемые проверки |
Dokploy = Docker + Traefik + Web UI
Dokploy не заменяет Docker, а управляет им. Под капотом — Docker Swarm для оркестрации и Traefik для роутинга.
6. Сетевая архитектура
Все сервисы находятся в одной Docker network (dokploy-network) и общаются по внутренним DNS-именам контейнеров.
Извне доступны только порты 80 и 443 — Traefik маршрутизирует по домену.
Related
- Server Setup — следующий шаг
- Architecture Overview — обзор архитектуры приложения
- Security Matrix — защита на уровне приложения