Install on Windows (WSL2)

Demarkus runs natively on Linux. On Windows, install it inside WSL2 (Windows Subsystem for Linux).

Prerequisites

1. Enable WSL2

Open PowerShell as Administrator:

wsl --install

Restart when prompted. This installs Ubuntu by default. Open “Ubuntu” from the Start menu or run wsl in PowerShell.

2. Enable systemd (server only)

The server runs as a systemd service. WSL2 supports systemd, but it’s opt-in. Skip this step if you’re only installing the client.

Inside your WSL2 terminal:

sudo tee -a /etc/wsl.conf >/dev/null <<'EOF'

[boot]
systemd=true
EOF

Then from a Windows PowerShell:

wsl --shutdown

Re-open WSL. Verify systemd is running:

systemctl is-system-running

Install inside WSL2

Client only

curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install.sh | bash -s -- --client-only

Full server + client

curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install.sh | sudo bash

Access from Windows

WSL2 auto-forwards TCP to the Windows host, but Demarkus uses QUIC over UDP (port 6309), which is not forwarded automatically. You have two options.

Option A — Connect from inside WSL2 (simplest)

Any client running inside WSL2 reaches the server directly at mark://localhost:6309:

demarkus mark://localhost:6309/index.md

From PowerShell or CMD, invoke the WSL binary:

wsl demarkus mark://localhost:6309/index.md

Option B — Forward UDP 6309 to Windows

Find your WSL2 IP from inside WSL:

ip addr show eth0 | grep 'inet '

Then from an Administrator PowerShell (replace 172.x.x.x with your WSL2 IP):

netsh interface portproxy add v4tov4 listenport=6309 listenaddress=0.0.0.0 `
  connectport=6309 connectaddress=172.x.x.x protocol=udp

New-NetFirewallRule -DisplayName "Demarkus QUIC" -Direction Inbound `
  -Action Allow -Protocol UDP -LocalPort 6309

WSL2’s virtual IP changes on each reboot. For a stable external address, either script the portproxy re-registration at boot or run a reverse proxy outside WSL2.