mitaba

Форк
0

3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
README.md

Mitabá

Проект использует Docker, в частности утилиту Docker Compose в качестве платформы разработки и деплоя, поэтому все операции разворачивания и администрирования будут проходить через него. Данный ридми поможет преодолеть нубическость в нём.

Установите Docker и убедитесь в успехе через

$ docker -v
и
$ docker-compose -v
.

Docker для самых маленьких

Поднять докер обычно

$ docker-compose up
, но так как я использую несколько файлов конфигурации, то задаю его
docker-compose -f docker-compose.production.yml
. Остановить докер
docker-compose down
, а если вообще хочется подчистить контейнеры и volumes, то с ключом
-v
:
docker-compose -f docker-compose.production.yml down -v
.

Когда запущены контейнеры докера, в них можно входить через

$ docker exec -it mitaba_app bash
, где
mitaba_app
название контейнера (оно задается в схеме для docker-compose), для примера моего основного контейнера приложения.

Первоначальная настройка базы данных

Для этого зайти через

$ docker exec -it mitaba_app bash
внутрь работающего контейнера.

Администрирование

Полезные для работы с проектом команды заданы в

makefile
в корне проекта, запускаются например
make up
или
make down
(запуск/остановка докера). Это для тех счастливчиков, кто UNIX. Все остальные (windows) подсматривают
makefile
и самостоятельно запускают цепочки команд.

Обновление сертификатов (production)

ssh root@mitaba.ru
cd /projects/mitaba.ru
make down
sudo certbot renew
make up
exit

Обновление сертификатов (development)

make dev-cert

Очистка экосистемы докера

При работе с докером он зажирает место очень быстро, поэтому нужно периодически чистить лишнее, см. хелп докера. Но будь осторожен не похерь volume базы данных!

Дамп базы

Периодически делай дамп базы (TODO).

Перенос на другой сервер

Что нужно взять со старого [OLD_SERVER]?

  1. Забрать архив сертификатов:
ssh [OLD_SERVER]
sudo tar -czvf /etc-letsencrypt.tar.gz /etc/letsencrypt
exit
сd [LOCAL_PROJECT_ROOT]
scp [OLD_SERVER]:/etc-letsencrypt.tar.gz .
  1. Забрать дампы базы данных
ssh [OLD_SERVER]
cd /projects/mitaba.ru
make dumpjson
make dumpsql
exit
сd [LOCAL_PROJECT_ROOT]
scp [OLD_SERVER]:/projects/mitaba.ru/host/postgresql/dumpjson/dump.json host/postgresql/dumpjson
scp [OLD_SERVER]:/projects/mitaba.ru/host/postgresql/dumpsql/dump.sql host/postgresql/dumpsql

Развернуть проект на новом сервере [NEW_SERVER]

  1. Клонируем код приложения
ssh [NEW_SERVER]
mkdir /projects/mitaba.ru
cd /projects/mitaba.ru
git clone https://gitflic.ru/project/titamota/mitaba.git .
  1. Кладем production-настройки Django на новый сервер
сd [LOCAL_PROJECT_ROOT]
scp host/django/settings.production.py [NEW_SERVER]:/projects/mitaba.ru/host/django/
  1. Переносим сертификаты
сd [LOCAL_PROJECT_ROOT]
scp etc-letsencrypt.tar.gz [NEW_SERVER]:/tmp
ssh [NEW_SERVER]
sudo tar -xzvf /tmp/etc-letsencrypt.tar.gz
  1. Переносим базу данных
ssh [NEW_SERVER]
cd /projects/mitaba.ru
mkdir host/postgres/dumpsql
exit
сd [LOCAL_PROJECT_ROOT]
scp host/postgresql/dumpsql/dump.sql [NEW_SERVER]:/projects/mitaba.ru/host/postgresql/dumpsql

Далее, важно чтобы база данных была пустая. Можно на всякий случай удалить и заново собрать докер, но без миграций:

ssh [NEW_SERVER]
docker-compose -f docker-compose.production.yml down -v
docker-compose -f docker-compose.production.yml up -d --build
make loadsql
make up

В принципе, должно сразу и заработать. Возможные проблемы:

  1. Не забыть перенести доменное имя - для обновления сертификатов это понадобится (правда позже)
  2. Проблемы с доступом. Проще все делать через root. Для утилиты scp важно чтобы создаваемые папки были от пользователя, под которым заходим. Помнить что ssh берет ключ, но с именем пользователя будет тупить, имя нужно явно задавать. В общем, решать проблемы доступа по мере поступления - в зависимости от условий нового сервера шаманский бубен будет по-другому стучать.
  3. Много других проблем, но все поправляемо, главное:

DON'T PANIC.

Смена IP-адреса

Не забыть прописать в

/etc/hosts
сервера

xx.xx.xx.xx mitaba.ru mitaba xx.xx.xx.xx www.mitaba.ru

И поменять IP адрес на хостинге (в разделе "Записи DNS для зоны mitaba.ru")

Разработка

Устанавливаем Docker Клонируем проект Делаем сертификаты

make dev-cert
Поднимаем
make dev-up
Заходим внутрь и делаем миграции
make migrate
и админа админки
make superuser
для
local.mitaba.ru/admin

Пересобрать докер-образ

При изменении зависимостей в

app/requirements.txt
нужно пересобирать образ через
docker-compose up --build
(автоматически докер 'поднимется' после завершения сборки)

Задеплоить изменения в регистр докера

deploy-docker-image
. Возможно, сначала придется залогиниться в Docker Hub
docker login

Обойти блокировку Docker Hub

Инструкция: https://www.netangels.pro/article/docker-hub-zablokirovan-v-rf/

Описание

Backend для таймера времени и денег titamota.ru

https://titamota.ru/

Языки

JavaScript

  • Dockerfile
  • Makefile
  • Python
  • CSS
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.