Веб-сайт rastamojka-pro.uz
prod - rastamojka-pro.uz
dev - logistic.bitlab.uz
🎯 Цель проекта
Создать современный веб-сайт rastamojka-pro.uz с возможностью динамического управления контентом.
🛠️ Используемые технологии и инструменты
📌 Backend:
-
Django – в качестве основного backend-фреймворка.
-
PostgreSQL – база данных.
🎨 Frontend:
-
HTML, CSS, JavaScript
Проект с использованием DevOps-инструментов
В рамках данного проекта я реализовал DevOps-инструменты для автоматизации процессов сборки и доставки кода. Теперь разработчики могут сосредоточиться исключительно на написании кода, а все процессы сборки, доставки и запуска приложения происходят автоматически, благодаря настроенной CI/CD-пайплайну.
Что было сделано:
1️⃣ Создание веток dev/prod в GitLab
Для разделения рабочих и продакшн-окружений в GitLab были созданы отдельные ветки dev и prod. Это позволило выстроить независимые пайплайны для разных стадий разработки и деплоя.
2️⃣ Настройка .gitlab-ci.yml для каждой ветки
Я написал и адаптировал конфигурацию .gitlab-ci.yml, которая содержит пайплайны CI/CD:
-
Для
devветки - сборка и публикация образа -
Для
prod- сборка, публикация образа в production-окружение
3️⃣ Dockerfile
Разработан собственный Dockerfile для сборки приложения.
4️⃣ Docker Compose
Создан docker-compose.yml, где описана структура всех необходимых сервисов:
-
Backend-приложение
-
База данных PostgreSQL
-
Обратный прокси-сервер Nginx
5️⃣ Реестр образов — Harbor
Все Docker-образы автоматически пушатся в приватный реестр Harbor. Это обеспечивает безопасное хранение артефактов и интеграцию с GitLab CI/CD.
6️⃣ Обратный прокси через Nginx
Nginx проксирует трафик к backend-контейнеру, с настройкой HTTPS (через Let's Encrypt) и редиректом HTTP → HTTPS.
Результат:
- Разработчики пушат код — и не беспокоятся о деплое.
- Образы автоматически собираются, деплоятся и запускаются.
К сожалению, финальный деплой продакшн-версии был выполнен на классическом хостинге, где возможности по управлению инфраструктурой сильно ограничены. Это наложило определённые ограничения:
-
нельзя подключить дополнительные сервисы, такие как Redis, системы логирования и мониторинга
-
невозможно гибко управлять контейнерами и изолированными средами