hardware/ubuntu-wsl/overview.md

Ubuntu (WSL)

The WSL 2 Ubuntu distro running on Nuk, the Windows 11 box (192.168.1.153). This folder is the machine-specific home for anything that lives inside the distro; the Windows host itself is documented under ../windows/.

Machine state

Distro Ubuntu 26.04.1 LTS (Resolute Raccoon)
WSL 2.7.14.0, kernel 6.18.33.2-2
Windows host Windows 11 Pro, build 26200 ยท user NUK\domin ยท LAN 192.168.1.153
Init systemd (/etc/wsl.conf โ†’ [boot] systemd=true; PID 1 is systemd)
Networking Mirrored (switched 2026-09-21, was NAT) โ€” WSL eth0 shares the Windows host's LAN address directly (192.168.1.153), no more separate WSL-internal IP
Home / pi data /root ยท /root/.pi
Node nvm at /root/.nvm (currently v26.9.0)
Default distro Ubuntu (wsl -l -v; docker-desktop is also present, stopped)

Opening it from Windows: wsl or wsl -d Ubuntu. Use wsl --set-default Ubuntu if a plain wsl ever opens the wrong distro (see ../windows/wsl-lan-access.md).

Services

Service Port Domain Startup Doc
pi-web 30142 pi-wsl.dph.am systemd + Windows logon task services/pi-web.md
sshd 2204 (LAN only, no domain) systemd (ssh.service) services/ssh.md

Things to know about this box

  • WSL distros do not start on their own. Nothing inside the distro can autostart unless a Windows-side trigger (a scheduled task) boots the distro first. systemd only begins running after that.
  • WSL also fully shuts down ~8s after the last session/process closes, taking systemd (and everything under it, e.g. pi-web, sshd) down with it โ€” this is not a crash, it's normal VM lifecycle behavior. Confirmed as the cause of pi-web appearing "down" on 2026-09-21 (VM had restarted, not pi-web crashing independently). Open item: a Windows Scheduled Task (wsl.exe -d Ubuntu -e sleep infinity at startup) to hold a session open indefinitely was proposed but not yet registered โ€” do this to stop the VM from ever fully stopping.
  • Networking switched to mirrored mode on 2026-09-21 (was NAT). WSL now shares the Windows host's network interfaces directly โ€” eth0 inside WSL shows the same LAN IP (192.168.1.153) as Windows itself, localhost works in both directions, and LAN devices can reach WSL-bound ports directly at 192.168.1.153:<port> with an ordinary Windows Firewall allow rule โ€” no portproxy needed for anything WSL itself binds to. See ../windows/wsl-lan-access.md for the general mirrored-mode setup, and services/pi-web.md ยง4 for what changed for pi-web specifically (its old NAT + portproxy route was retired).
  • sshd (port 2204) still uses NAT-era portproxy pointed at loopback, and that continues to work fine under mirrored mode too โ€” no need to change it; see services/ssh.md.