fix(autostart): run from repo root + visible console at logon

autostart-run.bat did 'cd /d %~dp0' -> scripts/, but web-vnc.exe/webvnc.conf/
go.mod live in the repo root, so the binary was never found and web-vnc never
started after reboot. Now it cd's to %~dp0.. (repo root).

The task was ONSTART/RU SYSTEM (session 0) so it could not show a window, making
failures invisible. install-autostart.bat now registers ONLOGON /RL HIGHEST as the
current user -> a visible console opens at logon. autostart-run.bat sets a window
title, prints status, stays open while web-vnc serves, and pauses on fatal errors
(no binary / no webvnc.conf) so the reason is visible. Docs updated.
This commit is contained in:
Codex
2026-08-06 01:09:47 +03:00
parent f315618bfc
commit 02fefa1e4e
5 changed files with 98 additions and 43 deletions
+8 -5
View File
@@ -53,9 +53,12 @@ gateway без запросов.
set-password.bat :: один раз: пароль -> webvnc.conf
install-autostart.bat :: один раз (от админа): плановое задание «web-vnc»
```
`install-autostart.bat` регистрирует через `schtasks` задание (`ONSTART`, `SYSTEM`,
`HIGHEST`), которое при загрузке запускает `scripts\autostart-run.bat` —
неинтерактивный launcher, читающий `webvnc.conf` и не качающий ничего на старте.
`install-autostart.bat` регистрирует через `schtasks` задание (`ONLOGON`, `HIGHEST`,
от имени текущего пользователя), которое **при входе в систему открывает видимую
консоль** с `scripts\autostart-run.bat` — launcher, читающий `webvnc.conf`, ждущий
`127.0.0.1:5900` до ~30 c и затем запускающий `web-vnc.exe` (не качает ничего на старте).
Окно остаётся, пока web-vnc работает; при ошибке — пауза, чтобы было видно причину.
Запуск от `SYSTEM`/`ONSTART` не используется: он в session 0 и окна не показывает.
Запустить сразу без перезагрузки: `schtasks /Run /TN "web-vnc"`.
Снять автостарт: `uninstall-autostart.bat` (от админа).
@@ -211,14 +214,14 @@ internal/server/static встроенные веб-ассеты (vnc.html +
Пользовательские точки входа — в корне репозитория:
run.bat интерактивный запуск: собирает бинарник/noVNC/VNC, читает пароль из webvnc.conf (не спрашивает)
set-password.bat разовая настройка пароля -> webvnc.conf (хэш + VNC-пароль); синхронизирует UltraVNC
install-autostart.bat автостарт при загрузке ОС (schtasks ONSTART/SYSTEM) — от админа
install-autostart.bat автостарт при входе (schtasks ONLOGON/HIGHEST, видимая консоль) — от админа
uninstall-autostart.bat снять автостарт — от админа
restart-autostart.bat перезапустить задание «web-vnc» (чтобы применить новый пароль) — от админа
open-firewall.bat открыть порт 8080 в Windows Firewall (один раз, от админа)
webvnc.conf секрет: HASH= + VNC_PASSWORD= (создаётся set-password.bat, gitignored)
Внутренние помощники — в scripts/ (вызываются другими скриптами):
scripts/autostart-run.bat неинтерактивный launcher для автостарта: читает webvnc.conf, ждёт 5900 до ~30 c, затем запускает web-vnc (без --spawn, если VNC уже слушает)
scripts/autostart-run.bat launcher автостарта (видимая консоль): cd в корень репо, читает webvnc.conf, ждёт 5900 до ~30 c, запускает web-vnc (без --spawn, если VNC уже слушает); pause на ошибке
scripts/ensure-vnc-password.ps1 синхронизирует VNC-пароль UltraVNC (вызывается из set-password.bat)
scripts/get-novnc.{ps1,sh} скачать noVNC во встроенную статику
scripts/get-vnc.ps1 скачать портативный VNC-сервер (UltraVNC) в папку vnc/