mirror of
https://github.com/andrey271192/domen_hydra.git
synced 2026-09-20 14:42:00 +00:00
docs(install): default .env template and README table; systemd reads HOST/PORT from .env
Made-with: Cursor
This commit is contained in:
27
README.md
27
README.md
@@ -47,11 +47,34 @@
|
||||
git clone https://github.com/andrey271192/domen_hydra.git /opt/domen-hydra
|
||||
cd /opt/domen-hydra
|
||||
bash server/install.sh
|
||||
nano server/.env # задать ADMIN_PASSWORD
|
||||
nano server/.env # при необходимости поправь плейсхолдеры (см. ниже)
|
||||
systemctl restart hydra-manager
|
||||
```
|
||||
|
||||
Интерфейс: `http://ВАШ_IP:8000` (порт настраивается в `.env`).
|
||||
Скрипт `server/install.sh` при первом запуске **сам создаёт** `server/.env` из `server/.env.example` с уже заполненными полями (вместо паролей — текст-напоминание, его нужно заменить на свои секреты).
|
||||
|
||||
### Файл `server/.env`
|
||||
|
||||
| Переменная | Назначение |
|
||||
|------------|------------|
|
||||
| `HOST` | Адрес привязки HTTP (обычно `0.0.0.0`). |
|
||||
| `PORT` | Порт веб-интерфейса (по умолчанию `8000`). |
|
||||
| `ADMIN_PASSWORD` | Пароль входа в веб-интерфейс. |
|
||||
| `SSH_USER` | Пользователь SSH для «Обновить все роутеры». |
|
||||
| `SSH_PASS` | Пароль SSH по умолчанию (на карточке роутера можно задать свой). |
|
||||
|
||||
Шаблон по умолчанию (после установки открой `nano server/.env` и подставь реальные пароли):
|
||||
|
||||
```env
|
||||
HOST=0.0.0.0
|
||||
PORT=8000
|
||||
ADMIN_PASSWORD=ВАШ_НАДЁЖНЫЙ_ПАРОЛЬ_ВЕБ
|
||||
|
||||
SSH_USER=root
|
||||
SSH_PASS=ПАРОЛЬ_SSH_РОУТЕРА
|
||||
```
|
||||
|
||||
Интерфейс: `http://ВАШ_IP:PORT` — значения `HOST` и `PORT` из `server/.env` подставляются в `hydra-manager.service` при запуске `server/install.sh`. Если поменяешь порт в `.env` уже после установки, снова выполни `bash server/install.sh` (или вручную обнови `ExecStart` в unit и `systemctl daemon-reload`).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# Скопируется в server/.env при первом запуске server/install.sh (если .env ещё нет).
|
||||
# Замени значения-заглушки на свои перед использованием в проде.
|
||||
|
||||
HOST=0.0.0.0
|
||||
PORT=8000
|
||||
ADMIN_PASSWORD=admin
|
||||
ADMIN_PASSWORD=ВАШ_НАДЁЖНЫЙ_ПАРОЛЬ_ВЕБ
|
||||
|
||||
# SSH defaults for all routers (can be overridden per-router)
|
||||
SSH_USER=root
|
||||
SSH_PASS=keenetic
|
||||
SSH_PASS=ПАРОЛЬ_SSH_РОУТЕРА
|
||||
|
||||
@@ -8,7 +8,23 @@ apt-get update -qq && apt-get install -y -qq python3 python3-pip python3-venv ss
|
||||
python3 -m venv .venv
|
||||
.venv/bin/pip install -q -r server/requirements.txt
|
||||
|
||||
[ ! -f server/.env ] && cp server/.env.example server/.env && echo "⚠️ Настрой server/.env и перезапусти"
|
||||
if [ ! -f server/.env ]; then
|
||||
cp server/.env.example server/.env
|
||||
echo "⚠️ Создан server/.env из шаблона — замени ADMIN_PASSWORD и SSH_PASS на свои значения, затем: systemctl restart hydra-manager"
|
||||
fi
|
||||
|
||||
# Читаем HOST/PORT из server/.env (только для unit; пароли не трогаем).
|
||||
_env_val() {
|
||||
local k="$1" d="$2" line v
|
||||
line=$(grep -E "^[[:space:]]*${k}=" server/.env 2>/dev/null | head -1) || true
|
||||
v="${line#*=}"
|
||||
v="${v%%$'\r'}"
|
||||
v="${v#"${v%%[![:space:]]*}"}"
|
||||
v="${v%"${v##*[![:space:]]}"}"
|
||||
[ -n "$v" ] && printf '%s' "$v" || printf '%s' "$d"
|
||||
}
|
||||
HOST_BIND="$(_env_val HOST 0.0.0.0)"
|
||||
PORT="$(_env_val PORT 8000)"
|
||||
|
||||
cat > /etc/systemd/system/hydra-manager.service <<EOF
|
||||
[Unit]
|
||||
@@ -17,7 +33,7 @@ After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=$(pwd)
|
||||
ExecStart=$(pwd)/.venv/bin/uvicorn server.main:app --host 0.0.0.0 --port 8000
|
||||
ExecStart=$(pwd)/.venv/bin/uvicorn server.main:app --host ${HOST_BIND} --port ${PORT}
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
@@ -29,4 +45,4 @@ systemctl daemon-reload
|
||||
systemctl enable hydra-manager
|
||||
systemctl start hydra-manager
|
||||
|
||||
echo "✅ Запущен на http://$(curl -sf ifconfig.me 2>/dev/null || echo IP):8000"
|
||||
echo "✅ Запущен на http://$(curl -sf ifconfig.me 2>/dev/null || echo IP):${PORT}"
|
||||
|
||||
Reference in New Issue
Block a user