#!/bin/bash # Деплой Elmer на obdai.ru # ВНИМАНИЕ: запускать НА СЕРВЕРЕ (5.172.178.213), не локально! set -e echo "=== Обновление репо ===" cd /opt/elmer || { echo "Репозиторий не найден, клонируем..."; git clone https://gitea.services.ngcloud.ru/Nail/elmer.git /opt/elmer; cd /opt/elmer; } git checkout master git pull origin master echo "=== Виртуальное окружение ===" python3 -m venv venv source venv/bin/activate pip install -r requirements.txt pip install gunicorn echo "=== Systemd сервис ===" sudo cat > /etc/systemd/system/elmer.service << 'UNIT' [Unit] Description=Elmer Flask API After=network.target [Service] User=naeel WorkingDirectory=/opt/elmer ExecStart=/opt/elmer/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 web.app:app Restart=always [Install] WantedBy=multi-user.target UNIT echo "=== Nginx ===" sudo cat > /etc/nginx/sites-available/elmer << 'NGX' server { listen 80; server_name obdai.ru www.obdai.ru ai.obdai.ru test.obdai.ru; location /static/ { alias /opt/elmer/web/static/; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } NGX sudo ln -sf /etc/nginx/sites-available/elmer /etc/nginx/sites-enabled/ sudo rm -f /etc/nginx/sites-enabled/default sudo nginx -t && sudo systemctl reload nginx echo "=== SSL (первичная настройка, потом не трогает) ===" sudo certbot --nginx -d obdai.ru -d www.obdai.ru --non-interactive --agree-tos -m tazet@narod.ru || true echo "=== Запуск ===" sudo systemctl daemon-reload sudo systemctl enable elmer sudo systemctl restart elmer sudo systemctl restart nginx echo "=== ПРОВЕРКА ===" curl -s https://obdai.ru/api/v1/ping echo "" echo "=== ГОТОВО ==="