docs(install): default .env template and README table; systemd reads HOST/PORT from .env

Made-with: Cursor
This commit is contained in:
Андрей Бобырев
2026-04-25 13:36:05 +03:00
parent b98ca59013
commit c40072fdbf
3 changed files with 49 additions and 8 deletions

View File

@@ -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`).
---

View File

@@ -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_РОУТЕРА

View File

@@ -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}"