Reviewer concerns:
1. POST /api/proxy/restart only saved config (reload), did not restart
the listener. Now it touches data/restart.signal; proxy watcher
polls that file separately and force-restarts the listener even
when config is unchanged.
2. Editing proxy.listen_port via UI could break Docker port mapping
(compose publishes 25565:25565 only). UI now shows it read-only;
README documents how to change it together with compose.
- proxy/main.py: ProxyState.check_restart_signal() + watcher uses it
- api/config_io.py: touch_restart_signal() helper
- api/routes/status.py: /api/proxy/restart -> touch_restart_signal()
- frontend Settings: disabled listen_port input + 프록시 재시작 button
- README + .gitignore updated