Hero Image
CI/CD и инфраструктура для Dating-сервиса

Инфраструктура и CI/CD для продакшен запуска Dating-сервиса Клиент Dating-сервис Puzzle Master Задача Стартап разработал бэкенд на Nest.js + фронтенд на Angular и был готов к запуску, но не имел никакой инфраструктуры: деплой был ручным, не было CI/CD, мониторинга, бэкапов и разделения dev/prod окружений. Требовалось выстроить полный DevOps-стек с нуля под продакшен. Решение 1. Контейнеризация приложения Multi-stage Dockerfile для backend (Nest.js + Prisma, non-root пользователь) Multi-stage Dockerfile для frontend (Angular 12, legacy OpenSSL, Nginx для статики) Docker Compose с полным стеком: PostgreSQL 15, Redis 7, imgproxy, Nginx Healthchecks и depends_on для правильного порядка запуска Раздельные окружения dev и prod в /opt/dev и /opt/prod 2. GitLab CI/CD Миграция репозиториев с Bitbucket на GitLab Пайплайны для backend и frontend: build → push → deploy GitLab Container Registry для хранения Docker образов Автоматический деплой в dev, ручной trigger для prod SSH деплой на VPS через SSH_PRIVATE_KEY 3. Nginx Reverse Proxy Универсальный конфиг через envsubst для dev/prod SSL/TLS (TLSv1.2, TLSv1.3) с сертификатами Cloudflare Проксирование /api/* → backend:4000, /* → frontend:80 Редирект www → основной домен (301) Отдельный стек imgproxy с SSL терминацией 4. Безопасность (Ansible) Настройка сервера через Ansible: SSH только по ключам, отключён root UFW Firewall: открыты только порты 80, 443, кастомный SSH Доступ к БД только через SSH Tunnel (Beekeeper Studio) Секреты в переменных GitLab CI/CD 5. Мониторинг Prometheus + Grafana с автоматическим провижинингом дашбордов Exporters: Node, cAdvisor, Postgres, Redis, Nginx, Blackbox 5 Grafana дашбордов: сервер, Docker контейнеры, PostgreSQL, Redis, Nginx Alertmanager с интеграцией в Telegram, алерты на CPU/RAM/Disk/API/SSL 6. Бэкапы БД Автоматический pg_dump каждый час Сжатие gzip и загрузка в Cloudflare R2 (S3-compatible) Prometheus метрики бэкапов: успех, размер, timestamp Алерты: DatabaseBackupMissing, DatabaseBackupFailed, DatabaseBackupSize`Anomaly Технологии GitLab CI Docker Ansible Prometheus Nginx PostgreSQL Результаты ✅ Деплой: git push в main → автоматическая сборка и деплой на сервер ✅ Окружения: полное разделение dev и prod на одном VPS ✅ Мониторинг: 5 дашбордов, алерты в Telegram по 6 категориям ✅ Бэкапы: автоматический pg_dump каждый час в Cloudflare R2 ✅ Безопасность: UFW, SSH по ключам, БД закрыта извне ✅ Масштабируемость: архитектура готова к выносу БД на отдельный сервер

Hero Image
CI/CD и инфраструктура для веб-приложения

Инфраструктура и CI/CD для сайта компании Клиент Компания-производитель фирменных исследовательских продуктов, которой требовался сайт для публикации каталога продукции Задача Разработчики написали код обычного веб-приложения (backend NestJS + frontend Next.js), но инфраструктура полностью отсутствовала: деплой выполнялся вручную, не было CI/CD, настроенного сервера, мониторинга, бэкапов и разделения тестового и боевого окружений. Требовалось выстроить полный DevOps-стек с нуля: GitLab CI/CD, собственный сервер, два изолированных контура, HTTPS, мониторинг, оповещения и автоматические бэкапы. Решение 1. Подготовка сервера и безопасность VPS на Ubuntu 24.04: 4 vCPU, 6 ГБ RAM, 120 ГБ диск SSH только по ключам, отключён root, выделенный деплой-пользователь (sudo + docker) UFW Firewall: открыты только порты 80, 443, 22 и SFTP (2222/2223) Автоматические обновления безопасности (unattended-upgrades) 2. GitLab CI/CD Self-hosted GitLab с групповым Container Registry Пайплайны для backend и frontend: build → push → deploy Привязка веток: test → образ :test → контур test; master → образ :latest → контур prod; теги v* → релизные сборки; dev → только сборка SSH-деплой на сервер через SSH_PRIVATE_KEY, секреты в Protected CI-переменных Инфраструктурный репозиторий server-devops с джобой deploy-all: жёсткий сброс к origin + docker compose up -d --pull always 3. Docker Compose и контуры Три compose-файла: app/ (test), app-prod/ (prod), monitoring/ на общей Docker-сети Сервисы каждого контура: backend NestJS, frontend Next.js, PostgreSQL 16, pgAdmin, SFTP Политика рестарта on-failure:10 для всех контейнеров приложений Все конфиги, дашборды и правила — в git, применяются пайплайном 4. Reverse Proxy и HTTPS Единый reverse proxy nginx-proxy + acme-companion на портах 80/443 Автоматические сертификаты Let’s Encrypt с автопродлением Все точки входа только по HTTPS: основной сайт, тестовый контур, панель управления БД, мониторинг 5. Мониторинг и алерты Prometheus + Grafana с автоматическим провижинингом дашбордов из git (4 дашборда: cAdvisor, Node Exporter, Logs/App, PostgreSQL) Exporters: node, cAdvisor, postgres, nginx (stub_status + access-лог: RPS, 4xx/5xx, время ответа/апстримов), HTTP-пробы blackbox для frontend/backend Alertmanager с интеграцией в Telegram — один бот, отдельные чаты на каждый контур (test / prod) Правила алертов: падение сервисов, высокая нагрузка CPU/RAM/диск (>80%), циклы рестартов, ошибки 5xx backend 6. Логирование и бэкапы Loki + Promtail: логи всех контейнеров собираются и доступны в Grafana (Logs Drilldown) Автоматический скрипт бэкапа: pg_dump БД prod + tar-стрим тома загрузок prod в единый архив Ротация 30 дней, ежедневный cron в 03:00, процедура восстановления проверена и задокументирована Технологии GitLab CI Docker Prometheus Grafana Nginx PostgreSQL Результаты ✅ Деплой: merge в master → автоматическая сборка, публикация и деплой на сервер ✅ Окружения: полное разделение test и prod на одном VPS через общую Docker-сеть ✅ HTTPS: все сервисы только по HTTPS с автоматическими сертификатами Let’s Encrypt ✅ Мониторинг: 4 дашборда, пробы доступности, алерты в Telegram (отдельные чаты на контур) ✅ Бэкапы: ежедневный бэкап БД prod + тома загрузок, ротация 30 дней, восстановление проверено ✅ Безопасность: SSH по ключам, отключён root, UFW, секреты в Protected CI-переменных

Hero Image
Self-Hosted проект-менеджмент Plane.so

Self-Hosted проект-менеджмент Plane.so Клиент Компания с потребностью в собственном инструменте управления проектами, размещённом на офисной инфраструктуре Задача Клиент хотел получить open-source альтернативу Jira/Linear для управления проектами и задачами, развёрнутую на собственном сервере в существующем окружении Coolify. Требовалось: установить последнюю версию Plane.so CE, обеспечить корректную работу за Traefik reverse proxy, вынести базу данных как отдельный сервис Coolify для удобного архивирования, а также настроить регулярные бэкапы всех данных. Решение 1. Подготовка инфраструктуры Анализ существующего окружения Coolify и конфигурации Traefik на сервере клиента Выбор последней open-source версии Plane.so CE из официального репозитория Изучение документации по self-hosting для формирования базовой конфигурации 2. Кастомный Docker Compose На основе официального docker-compose создан уникальный Docker Compose, адаптированный под Coolify Сервисы Plane (web, space, api, worker, beat-worker) настроены для работы за Traefik — корректные labels, сети и маршрутизация PostgreSQL вынесен как отдельный сервис Coolify — это позволяет управлять базой данных независимо и использовать встроенный механизм архивирования Coolify Redis для кэширования и очередей задач MinIO как S3-совместимое объектное хранилище для вложений и ассетов 3. Интеграция с Traefik Настроены Traefik labels для автоматической маршрутизации трафика к сервисам Plane Автоматическое получение и обновление SSL/TLS сертификатов через Traefik Корректная проброска заголовков (X-Forwarded-For, Host) для правильной работы приложения за reverse proxy 4. Резервное копирование PostgreSQL — регулярные бэкапы средствами Coolify с выгрузкой на AWS S3 MinIO — регулярная синхронизация объектного хранилища на отдельный бакет AWS S3 Все бэкапы выполняются автоматически по расписанию без вмешательства Технологии Docker PostgreSQL AWS S3 Linux Bash Результаты ✅ Проект-менеджмент: мощный self-hosted инструмент управления проектами, не уступающий коммерческим аналогам ✅ Интеграция: Plane надёжно интегрирован в Coolify и работает за Traefik без конфликтов ✅ Независимость БД: PostgreSQL как отдельный сервис Coolify — удобное управление и архивирование ✅ Бэкапы: все данные (БД + MinIO) регулярно копируются на AWS S3 автоматически ✅ Контроль данных: все данные проектов хранятся на собственном сервере клиента

Hero Image
Корпоративное облачное хранилище Nextcloud

Self-Hosted корпоративное облако Клиент Средний бизнес с требованиями к конфиденциальности и хранению данных внутри компании Задача Компания использовала сторонние облачные сервисы для хранения рабочих файлов, что создавало риски утечки данных и зависимость от внешних провайдеров. Требовалось self-hosted решение с возможностью редактирования офисных документов прямо в браузере, корзиной удалённых файлов, историей правок и дополнительными инструментами для совместной работы: календарём, заметками и почтой. Решение 1. Развёртывание Nextcloud AIO Nextcloud All-in-One — официальный Docker-образ с полным стеком из коробки PostgreSQL для хранения данных приложения Redis для кэширования и очередей фоновых задач Nginx как reverse proxy с автоматическим SSL/TLS 2. Редактирование документов в браузере Nextcloud Office (Collabora Online) — встроенный офисный редактор Поддержка форматов .docx, .xlsx, .pptx и ODF Совместное редактирование в реальном времени Без необходимости устанавливать локальное ПО 3. Управление файлами Корзина удалённых файлов с настраиваемым сроком хранения История версий файлов — возможность откатиться к любой правке Гранулированный контроль доступа: папки, ссылки, пароли Мобильные и десктопные клиенты для синхронизации 4. Дополнительные инструменты Календарь (CalDAV) — корпоративное расписание и события Заметки — личные и командные заметки с поддержкой Markdown Почта — встроенный веб-клиент для корпоративной почты (IMAP/SMTP) 5. Резервное копирование Borg Backup — встроенный в Nextcloud AIO инкрементальный бэкап Дедупликация и сжатие данных Автоматический запуск по расписанию Хранение бэкапов на удалённом хранилище (S3-compatible / SFTP) Технологии Nextcloud Docker PostgreSQL Nginx Linux Результаты ✅ Независимость: данные хранятся на серверах компании, без сторонних провайдеров ✅ Редактирование: офисные документы открываются и редактируются прямо в браузере ✅ Безопасность: история версий и корзина защищают от случайной потери данных ✅ Инструменты: единая платформа для файлов, календаря, заметок и почты ✅ Бэкапы: автоматическое инкрементальное резервное копирование через Borg Backup

Hero Image
Корпоративный мессенджер Matrix

Альтернатива Telegram для корпоративных коммуникаций Клиент Средний бизнес с требованиями к безопасности данных Задача Компания нуждалась в собственном защищенном мессенджере из-за требований безопасности и необходимости полного контроля над корпоративными коммуникациями. Требовалось решение с шифрованием, видеозвонками и интеграцией с корпоративной инфраструктурой. Решение 1. Серверная часть Matrix Synapse как основной сервер PostgreSQL 16 для хранения данных Caddy как reverse proxy с автоматическим SSL Docker Compose для оркестрации всех сервисов 2. Клиентские приложения Element Web для браузера Element Desktop для Windows/macOS/Linux Element Mobile для iOS/Android Единый интерфейс на всех платформах 3. Видеозвонки Coturn (TURN/STUN сервер) для NAT traversal Поддержка групповых видеозвонков UDP порты 49160-49200 для медиа-трафика Автоматическая конфигурация через переменные окружения 4. Администрирование Synapse Admin - веб-интерфейс управления Управление пользователями и комнатами Статистика и мониторинг Доступ через отдельный порт 8888 5. Безопасность End-to-end шифрование сообщений Автоматические SSL/TLS сертификаты через Caddy Отключена публичная регистрация Федерация с другими Matrix серверами Healthcheck для всех сервисов 6. Автоматизация Bash скрипт для полной инициализации Автоматическая генерация конфигурации Synapse Автоматическое создание admin пользователя через expect Docker Compose с зависимостями и healthchecks Технологии Docker PostgreSQL Caddy Bash Linux Element + Matrix + Synapse Результаты ✅ Независимость: полный контроль над данными и коммуникациями ✅ Масштаб: 100+ пользователей одновременно ✅ Функциональность: текст, голос, видео, файлы до 1.5GB, шифрование ✅ Скорость: развертывание за 5 минут одним скриптом ✅ Надежность: автоматические SSL сертификаты, healthchecks, auto-restart