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
|
git clone https://github.com/andrey271192/domen_hydra.git /opt/domen-hydra
|
||||||
cd /opt/domen-hydra
|
cd /opt/domen-hydra
|
||||||
bash server/install.sh
|
bash server/install.sh
|
||||||
nano server/.env # задать ADMIN_PASSWORD
|
nano server/.env # при необходимости поправь плейсхолдеры (см. ниже)
|
||||||
systemctl restart hydra-manager
|
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
|
HOST=0.0.0.0
|
||||||
PORT=8000
|
PORT=8000
|
||||||
ADMIN_PASSWORD=admin
|
ADMIN_PASSWORD=ВАШ_НАДЁЖНЫЙ_ПАРОЛЬ_ВЕБ
|
||||||
|
|
||||||
# SSH defaults for all routers (can be overridden per-router)
|
|
||||||
SSH_USER=root
|
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
|
python3 -m venv .venv
|
||||||
.venv/bin/pip install -q -r server/requirements.txt
|
.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
|
cat > /etc/systemd/system/hydra-manager.service <<EOF
|
||||||
[Unit]
|
[Unit]
|
||||||
@@ -17,7 +33,7 @@ After=network.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
WorkingDirectory=$(pwd)
|
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
|
Restart=always
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
|
|
||||||
@@ -29,4 +45,4 @@ systemctl daemon-reload
|
|||||||
systemctl enable hydra-manager
|
systemctl enable hydra-manager
|
||||||
systemctl start 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