feat: add deploy scripts (deploy, nginx-setup, ssl-setup) and fix backup paths
This commit is contained in:
1 parent
c6048aeea0
commit
a506e5b2ee
6 files changed
+167
-7
No files matched your search
Executable
+75
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
|
||||
# === Деплой ИИ Пресс-секретарь ===
|
||||
# Клонирует/обновляет код, ставит зависимости, настраивает systemd-сервис.
|
||||
|
||||
set -e
|
||||
|
||||
APP_DIR="/opt/pressa"
|
||||
REPO_URL="https://github.com/apuc/telegram-bussiness-bot.git"
|
||||
SERVICE_NAME="pressa"
|
||||
PYTHON_BIN="$APP_DIR/venv/bin/python"
|
||||
|
||||
echo "=== Деплой ИИ Пресс-секретарь ==="
|
||||
echo ""
|
||||
|
||||
# 1. Клонирование или обновление кода
|
||||
if [ -d "$APP_DIR/.git" ]; then
|
||||
echo "[1/5] Обновление кода из git..."
|
||||
cd "$APP_DIR"
|
||||
git pull origin main
|
||||
else
|
||||
echo "[1/5] Клонирование репозитория..."
|
||||
sudo mkdir -p "$APP_DIR"
|
||||
sudo chown "$USER":"$USER" "$APP_DIR"
|
||||
git clone "$REPO_URL" "$APP_DIR"
|
||||
cd "$APP_DIR"
|
||||
fi
|
||||
|
||||
# 2. Виртуальное окружение и зависимости
|
||||
echo "[2/5] Установка зависимостей..."
|
||||
if [ ! -d "$APP_DIR/venv" ]; then
|
||||
python3 -m venv "$APP_DIR/venv"
|
||||
fi
|
||||
"$APP_DIR/venv/bin/pip" install --upgrade pip
|
||||
"$APP_DIR/venv/bin/pip" install -r "$APP_DIR/requirements.txt"
|
||||
|
||||
# 3. Проверка .env
|
||||
echo "[3/5] Проверка .env..."
|
||||
if [ ! -f "$APP_DIR/.env" ]; then
|
||||
echo "⚠️ Файл .env не найден!"
|
||||
echo " Скопируй его на сервер: scp .env apuc@SERVER:/opt/pressa/.env"
|
||||
echo " Или создай вручную по образцу config.py"
|
||||
fi
|
||||
|
||||
# 4. systemd-сервис
|
||||
echo "[4/5] Настройка systemd-сервиса..."
|
||||
sudo tee /etc/systemd/system/$SERVICE_NAME.service > /dev/null <<EOF
|
||||
[Unit]
|
||||
Description=AI Press Secretary (Telegram bot + Cabinet)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=$USER
|
||||
WorkingDirectory=$APP_DIR
|
||||
EnvironmentFile=$APP_DIR/.env
|
||||
ExecStart=$PYTHON_BIN $APP_DIR/main.py
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable $SERVICE_NAME
|
||||
|
||||
# 5. Перезапуск
|
||||
echo "[5/5] Перезапуск сервиса..."
|
||||
sudo systemctl restart $SERVICE_NAME
|
||||
|
||||
echo ""
|
||||
echo "=== Деплой завершён! ==="
|
||||
echo "Статус: sudo systemctl status $SERVICE_NAME"
|
||||
echo "Логи: sudo journalctl -u $SERVICE_NAME -f"
|
||||
Reference in new issue
Block a user