На другой сервер
⚙️ Настройка
Клонируем проект
git clone https://github.com/VegasYT/Landy 1) В backend/ создать .env файл на основе .env.example
2) В frontend/ создать .env файл на основе .env.example (замените VITE_REST_API_HOST на ваш домен и VITE_REST_API_SSL на true если у вас есть поддержка TLS. Чуть позже дойдем до инструкции для поддержки TLS домена и для всех поддоменов)
3) В ansible\inventory создать hosts.yml на основе hosts.yml.example, указав данные удаленного сервера
Установка ansible
1) sudo apt update
2) sudo apt install ansible python3-pip
3) ansible-galaxy collection install community.docker
Первичная настройка сервера (выполнить один раз)
Эта команда установит Docker, создаст пользователя для деплоя и настроит firewall:
cd ansible
ansible-playbook -i inventory/hosts.yml playbooks/setup.ymlОбновляет систему
Устанавливает Docker и Docker Compose
Создает пользователя
deployНастраивает firewall (порты 22, 80, 443, 8000)
Создает директорию
/var/www/landy
Настройка DNS
Добавить в DNS записях домена(ip указывайте ваш):

Проверьте что записи добавились, должно быть что то вроде такого:

Теперь получим Wildcard сертификат. Он нужен для того, что бы была поддержка TLS для всех поддоменов
Подключитесь к вашему серверу и выполните команду(landy.website замените на свой домен):
certbot certonly --agree-tos --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory -d *.landy.website -d landy.websiteВ отдельных случаях консоль может запросить email. Введите адрес [email protected], заменив landy.website на ваш домен, и нажмите Enter
Консоль выведет первую TXT-запись. Пропишите ее в DNS записях. Пока не появится эта запись в dns, Enter не жмите


Как только появится txt запись(проверить можно тут https://toolbox.googleapps.com/apps/dig/#TXT/), можете жать Enter

📤 Деплой приложения
1. Первый деплой
cd ansible
ansible-playbook -i inventory/hosts.yml playbooks/deploy.ymlКлонирует код, собирает контейнеры, настраивает Nginx
2. Получение SSL сертификата
ansible-playbook -i inventory/hosts.yml playbooks/certbot.yml -e "[email protected]"3. Повторный деплой (с SSL)
ansible-playbook -i inventory/hosts.yml playbooks/deploy.ymlАвтоматически определит SSL и настроит HTTPS
Обновление кода
При каждом изменении кода:
cd ansible
ansible-playbook -i inventory/hosts.yml playbooks/deploy.ymlГотово
Сайт будет доступен по https://{domain}/ API по https://{domain}/api/docs
Создание новых блоков шаблонов https://landy.website/admin
Последнее обновление