mirror of
https://github.com/andrey271192/keenetic-dns-routes.git
synced 2026-09-20 14:42:01 +00:00
Per-router RCI creds + .env fallback; parse user:pass@ URL; fix apply/checkbox (kdns-sel), save groups on toggle; update.sh
Made-with: Cursor
This commit is contained in:
31
install.sh
31
install.sh
@@ -6,8 +6,36 @@ apt-get update -qq && apt-get install -y python3 python3-venv python3-pip
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -q -r requirements.txt
|
||||
if [ ! -f .env ]; then cp .env.example .env && echo "Создан .env — задай ADMIN_PASSWORD и KEENETIC_PASSWORD"; fi
|
||||
if [ ! -f .env ]; then cp .env.example .env && echo "Создан .env — задай ADMIN_PASSWORD; при желании KEENETIC_* как дефолт для роутеров."; fi
|
||||
mkdir -p data
|
||||
|
||||
# Старые клоны без update.sh в репозитории — создаём рядом с install.sh
|
||||
if [ ! -f "$DIR/update.sh" ]; then
|
||||
cat >"$DIR/update.sh" <<'EOS'
|
||||
#!/bin/bash
|
||||
# Обновление keenetic-dns-routes: git pull, pip, перезапуск systemd.
|
||||
set -euo pipefail
|
||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$DIR"
|
||||
echo "==> keenetic-dns-routes: $DIR"
|
||||
if [ -d .git ]; then git pull --ff-only; else echo "(!) Нет .git — скопируй файлы проекта поверх, затем снова update.sh."; fi
|
||||
if [ ! -d venv ]; then python3 -m venv venv; fi
|
||||
# shellcheck source=/dev/null
|
||||
source venv/bin/activate
|
||||
pip install -q -r requirements.txt
|
||||
if [ "$(id -u)" = 0 ] && [ -f /etc/systemd/system/keenetic-dns-routes.service ]; then
|
||||
systemctl daemon-reload
|
||||
systemctl restart keenetic-dns-routes
|
||||
echo "==> systemd: keenetic-dns-routes перезапущен"
|
||||
else
|
||||
echo "Перезапуск (root): sudo systemctl restart keenetic-dns-routes"
|
||||
fi
|
||||
echo "==> Готово. Обнови страницу в браузере (Ctrl+F5)."
|
||||
EOS
|
||||
chmod +x "$DIR/update.sh"
|
||||
echo "Создан $DIR/update.sh"
|
||||
fi
|
||||
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
sed "s|WorkingDirectory=.*|WorkingDirectory=$DIR|" keenetic-dns-routes.service | \
|
||||
sed "s|ExecStart=.*|ExecStart=$DIR/venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8001|" \
|
||||
@@ -21,3 +49,4 @@ else
|
||||
echo " cd $DIR && source venv/bin/activate && uvicorn app.main:app --host 0.0.0.0 --port 8001"
|
||||
fi
|
||||
echo "Интерфейс: http://$(hostname -I 2>/dev/null | awk '{print $1}' || echo 127.0.0.1):8001"
|
||||
echo "Дальнейшее обновление кода: cd $DIR && sudo bash update.sh"
|
||||
|
||||
Reference in New Issue
Block a user