Commit Graph

6 Commits

Author SHA1 Message Date
Андрей Бобырев
cc20329798 fix: use start-stop-daemon for autossh background launch + add close button
- Replace setsid/nohup with start-stop-daemon -S -b as primary daemon
  method (setsid fails silently when script runs inside curl|sh pipe)
- Same fix in init.d S99hydra_tun start/restart cases
- Add "✓ Готово" button to tunnel modal to close it after setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 10:22:19 +03:00
Андрей Бобырев
708b4b04dc feat: reverse SSH tunnel для роутеров без белого IP + README переработан
- server/config.py: VPS_SSH_HOST, VPS_SSH_PORT, VPS_SSH_USER, TUNNEL_PORT_START
- server/.env.example: секция тоннеля
- server/main.py: _gen_ed25519_keypair, _add_pubkey_to_authorized_keys;
  _ssh_on_router и _push_one_router поддерживают tunnel_port;
  эндпоинты tunnel-cmd, tunnel-script (одноразовый токен 10 мин),
  tunnel-status, DELETE tunnel
- index.html: кнопка ⇄ у каждого роутера + подсветка тоннельного порта,
  кнопка ⇄ Тоннель в форме добавления, модалка с curl-командой,
  копирование (clipboard + execCommand fallback), проверка связи
- README: полная переработка — туннель, логины/пароли, ошибки, советы

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 09:57:48 +03:00
Андрей Бобырев
61205df0cb feat: footer support links; POST /api/routers/{name}/push for single-router update
Made-with: Cursor
2026-04-25 22:10:32 +03:00
Андрей Бобырев
34d5f66bc2 fix(ui): router Test/Pull/Del — broken onclick from JSON quotes; use data-* delegation
Made-with: Cursor
2026-04-25 19:30:42 +03:00
Андрей Бобырев
b5a109639b feat(routers): SSH test, fetch domain.conf/ip.list to import; normalize URL in IP field; clearer push errors
Made-with: Cursor
2026-04-25 19:19:55 +03:00
Андрей Бобырев
a63329af81 Add HydraRoute Manager web server — standalone domain management UI
Made-with: Cursor
2026-04-24 11:37:24 +03:00