16 Commits

Author SHA1 Message Date
Orchestrator
4221bd53d0 fix: install.sh — Wayland disabled, Xvfb fallback, xauth fix, fresh machine ready
- Disables Wayland in GDM/SDDM/LightDM (forces Xorg)
- Xorg startup with -ac (no MIT-MAGIC-COOKIE auth issues)
- Xvfb fallback if Xorg dummy fails
- Proper xauth cookie generation for Xorg
- Detects pre-installed RustDesk and stops conflicting system service
- dpkg --force-depends --force-confnew + apt-get install -f
- All 8 steps: arch detect → deps → sleep disable → display detect →
  dummy config → virtual display → RustDesk install → config + systemd

Tested on: Ubuntu 22.04 x86_64 (192.168.2.28)

Fixes #7
2026-05-16 11:31:03 +01:00
Orchestrator
5020b591aa fix: install.sh — sleep-safe, auto-display, fresh-machine install
- install.sh now has 8 steps:
  1) Detect arch, 2) Install deps, 3) Disable sleep/lock/screensaver,
  4) Detect display, 5) Setup dummy + force DUMMY0 primary,
  6) Start Xorg/Xvfb, 7) Download+install RustDesk (with apt fallback),
  8) Install systemd unit rustdesk-headless.service

- New systemd unit: rustdesk-headless.service
  * Forces DUMMY0 as primary via ExecStartPre (no monitor selection dialog)
  * Restart=always — survives any crash
  * Wants=display-manager.service — starts after graphical session

- Sleep-safe changes:
  * Mask sleep.target suspend.target hibernate.target hybrid-sleep.target
  * logind.conf: HandleLidSwitch=ignore, IdleAction=ignore
  * GNOME screensaver: gsettings lock-enabled false, idle-delay 0
  * X11: xset s off -dpms

- Fresh machine fixes:
  * dpkg --force-depends --force-confnew (installs even with missing deps)
  * apt-get install -f after dpkg (fixes broken deps)
  * Fallback to 'apt-get install rustdesk' from repo if .deb download fails
  * Added libva-drm2 libva-x11-2 (fresh systems often miss these)

- Output at end:
  * ID, Password, Display (:0 DUMMY0 primary), Sleep/Lock status
  * Monitor status via xrandr --listmonitors

Fixes #7
2026-05-16 11:19:43 +01:00
Orchestrator
3f6a62638f feat: universal one-command RustDesk installer
- install.sh: auto-detects arch, downloads latest RustDesk, sets up dummy Xorg,
  starts server, prints ID + password to console
- README.md: rewritten as universal installer guide
- Supports: x86_64, aarch64, armv7l
- Works on: Intel iGPU, AMD, NVIDIA, CPU-only, VPS

vps-rustdesk-server branch contains archived VPS relay solution
2026-05-16 10:57:59 +01:00
Orchestrator
7319689814 refactor: clean VPS code, keep only host solution in main\n
- Removed all VPS-specific scripts and configs from main branch\n- VPS solution archived in archive/vps-rustdesk-server\n- Rewrote README.md to focus on Intel Alder Lake-N host setup\n- Added note about archive branch and host-only scope\n
Fixes #6 (wontfix for VPS GUI, host solution restored)
2026-05-16 00:52:54 +01:00
Orchestrator
038b9791c5 feat: add Xvfb + RustDesk scripts for VPS GUI fix (#6)\n\n- scripts/vps/start-rustdesk-xvfb.sh: Xvfb + xcompmgr + RustDesk launcher\n- scripts/host/manual-start-rustdesk.sh: manual run script for VPS\n\nWorkaround for RustDesk v1.4.6 SIGSEGV on dummy/Xvfb display\nwhen opening GUI (Flutter requires GL/GLES compositor).\n\nCloses #6 (partial) 2026-05-16 00:46:53 +01:00
Orchestrator
43e7b30f41 feat: add host setup scripts + configs for Intel Alder Lake-N
- scripts/host/setup-host-rustdesk.sh: protect RustDesk ID on host
- scripts/host/README-host.md: instructions for manual apply
- configs/rustdesk2-host.toml.template: config template
- configs/systemd/: systemd units for both VPS and host
2026-05-16 00:16:14 +01:00
Orchestrator
32451eb0f8 feat: add client config script and systemd unit 2026-05-15 23:51:09 +01:00
Orchestrator
3f49556cd7 feat: add RustDesk Server scripts (hbbs+hbbr native, systemd, UFW)
- install-rustdesk-server.sh: download & install hbbs/hbbr from GitHub releases
- rustdesk-hbbs.service: systemd unit for ID-server (ports 21115-21116)
- rustdesk-hbbr.service: systemd unit for relay (port 21117)
- open-rustdesk-ports.sh: idempotent UFW port opening
- README.md: deployment instructions

Generated by orchestrator in APAW worktree, applied to VPS 2.59.219.61
2026-05-15 23:50:39 +01:00
Deploy Bot
554aa6008d feat: working XFCE + RustDesk online on VPS tmux
- Add start-rd-desktop.sh: Xvfb :99 + xfwm4 + xfce4-panel + RustDesk client
- Add rustdesk-vps.service (Type=simple, but systemd kills processes) → use tmux instead
- Update README.md with VPS architecture (Xvfb + xfce4-session + RustDesk)
- Update VPS section: tmux persistent session instead of systemd
- RustDesk ID: 458564614, password: retrowest
- Ports 21115-21119 open in UFW for Docker server (optional)
- XFCE desktop confirmed working (xfdesktop + xfwm4 + panel)

Note: systemd ExecStartPre kills background processes (Xvfb, xfce4).
Solution: tmux detached session 'rd' with start-rd-desktop.sh
2026-05-15 22:02:45 +01:00
Deploy Bot
be123e8057 feat: add persistent RustDesk client service for VPS
- Add rustdesk-vps.service (systemd unit with Xvfb + DBus)
- Add rustdesk-vps-start.sh (Xvfb startup + DBus session for RustDesk)
- Update xorg-dummy.service without -nolisten local (fixes socket access)
- Update rustdesk-dummy.service with /usr/share/ binary path
- Add docker-compose.vps.yml with hbbs/hbbr RustDesk server
- RustDesk client connects to public relay rs-ny.rustdesk.com:21116
- ID: 458564614 (confirmed via --get-id)
- Password: retrowest
2026-05-15 21:30:47 +01:00
Deploy Bot
a6492fc1b9 feat: add Docker-based RustDesk Server (hbbs/hbbr) for VPS
- Add docker-compose.vps.yml with hbbs + hbbr services
- Update rustdesk-dummy.service with corrected binary path (/usr/share/...)
- Update xorg-dummy.service without -nolisten local (fixes socket access)
- Update install.sh for dummy driver + EDID fallback approach
- Update README with dual setup (host + VPS) and server instructions
- VPS: RustDesk Server runs via Docker on ports 21115-21119
- Public key: 5PxKX27ZTJGlu9KjU7YByXQDIw6zS8pKlvqxXsZiw8M=
2026-05-15 20:09:30 +01:00
Deploy Bot
b93147dd67 docs: update README with VPS setup steps including gdm disable 2026-05-15 19:18:34 +01:00
Deploy Bot
90fa901119 fix: VPS xorg-dummy auth + rustdesk-dummy service fixes
- xorg-dummy.service: remove -nolisten local (blocked local UNIX socket)
- xorg-dummy.service: add -auth /root/.Xauthority and xauth generation ExecStartPre
- rustdesk-dummy.service: add XAUTHORITY=/root/.Xauthority env var
- Add config/vps/20-dummy-headless.conf (Xorg dummy config for VPS)
- Disable conflicting gdm.service on VPS
- RustDesk server now starts successfully with DUMMY0 as display

Fixes connection refused on /tmp/.X11-unix/X0 caused by
-nolisten local Xorg flag.
2026-05-15 19:17:13 +01:00
Deploy Bot
00c36b8d7e feat: switch host from intel VirtualHeads to dummy driver for headless boot
- Add 20-dummy-headless.conf (Driver dummy, 1920x1080)
- Remove 20-intel-virtual.conf (intel driver required HDMI at boot)
- Update install.sh: installs dummy driver, saves EDID, updates GRUB
- Update README: document dummy driver + kernel EDID fallback approach
- hdmi-fallback.sh now detects DUMMY0 or VIRTUAL1

Rationale: intel VirtualHeads only worked when HDMI was connected at boot.
Dummy driver creates DUMMY0 unconditionally, working with or without cable.
Kernel EDID fallback (video=... drm.edid_firmware=...) is insurance if dummy fails.
2026-05-15 18:12:05 +01:00
Deploy Bot
a0b2b5ebf7 feat: update configs for host+VPS with Intel VirtualHeads and dummy driver
- Host: 20-intel-virtual.conf with Driver intel + VirtualHeads 1
- VPS: xorg-dummy.service + rustdesk-dummy.service for CPU-only
- Updated README with dual setup (host Intel iGPU + VPS dummy)
- Verified: VIRTUAL1 primary after reboot, HDMI1 clone
- Verified: DUMMY0 primary on VPS without GPU
2026-05-14 09:29:08 +01:00
Deploy Bot
4d4b04d7bb feat: RDtop RustDesk headless fallback for Intel iGPU
- Adds VIRTUAL1 as permanent primary output via modesetting driver
- HDMI1 set as clone (--same-as) of VIRTUAL1
- hdmi-fallback.sh script monitors drm connector status
- systemd user unit auto-creates VIRTUAL1 and switches on hotplug loss
- Xorg fallback guarantees 1920x1080 framebuffer without HDMI
- Includes xserver-xorg-video-dummy as backup driver
2026-05-13 23:49:15 +01:00