/demo_cicd_project

Demo project for CI/CD demo

Primary LanguagePython

Демо-проект для доклада по CI/CD

Установка зависимостей 📦

# установка pipenv и python-зависимостей
pip3 install pipenv
pipenv install

Запуск сервера

# запуск бекенда с горячей перезагрузкой на localhost:8000
pipenv run python3 manage.py runserver 8000

Переменные среды для манипуляции настройками бекенда 🔧

DEBUG=True|False            # Включение отладки. По-умолчанию: False

ALLOWED_WEB_HOST            # Разрешенное значение заголовка HOST.
                            # Не влияет при отладке. По-умолчанию: localhost

DB_HOST                     # Имя хоста Postgres. По-умолчанию: localhost

DB_PORT                     # Порт базы данных Postgres. По-умолчанию: 5432

DB_NAME                     # Название БД Postgres. По-умолчанию: demo

DB_USER                     # Название пользователя БД. По-умолчанию: demo

DB_PASSWORD                 # Пароль пользователя БД. По-умолчанию: demo

STATIC_ROOT                 # Абсолютный путь к папке со статическим содержимым
                            # По-умолчанию: /app/static

Ресурсы для изучения/использования 🧐

Проект неразрывно связан с инфраструктурой.

Нужно сделать для создания рабочего процесса разработки:

  1. Создать rsa-key на production сервере для доступа на сервер бэкапа: https://serverfault.com/a/330740/536744 (просто сгенерить и загрузить в пользователя)
  2. Создать в GitLab расписание для обновления образа бд для staging
  3. Создать переменные проекта на GitLab:
    • Для работы приложения в тестовом и production окружениях:
      • STAGING_ALLOWED_WEB_HOST
      • PRODUCTION_ALLOWED_WEB_HOST
    • Для обращения к серверу с ежечасными бэкапами БД (доступ по ssh):
      • BACKUP_DB_SERVER_USER
      • BACKUP_DB_SERVER_PASSWORD
      • BACKUP_DB_SERVER_IP - ip адрес сервера
      • BACKUP_DB_SERVER_PATH - абсолютный путь к бэкапам без последнего слеша
  4. Настроить ежечасные бэкапы. Можно создать задачу в cron на хосте.