На другой сервер

⚙️ Настройка

Клонируем проект

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

Последнее обновление