A simple frontend running in the brower for headscale
152
A self-contained web UI for the Headscale API.
https://github.com/sker65/headsup
Set env vars (the app reads both VITE_* and non-prefixed variants):
VITE_BASE_URL (or BASE_URL) – base URL to your Headscale instanceVITE_APIKEY (or APIKEY) – API key used as Authorization: Bearer <key>Create a local .env:
cp .env.example .env
npm install
npm run dev
The Docker image serves static files via nginx.
In Docker, BASE_URL and APIKEY are injected at container start into /config.js.
Required env vars:
BASE_URL (or VITE_BASE_URL)APIKEY (or VITE_APIKEY)If you want to expose the container but require authentication, you can enable nginx HTTP Basic Auth.
Set both env vars:
BASIC_AUTH_USERBASIC_AUTH_PASSdocker build -t headsup .
docker run --rm -p 8081:80 \
-e BASE_URL="http://localhost:8080" \
-e APIKEY="your_api_key_here" \
-e BASIC_AUTH_USER="admin" \
-e BASIC_AUTH_PASS="change_me" \
headsup
Then open:
Edit docker-compose.yaml and run:
docker compose up --build
When creating secrets like PreAuth keys and API keys, the UI will display the secret exactly once in a dedicated dialog and does not persist it.
Content type
Image
Digest
sha256:fe0840226…
Size
20.5 MB
Last updated
7 months ago
docker pull sker65/headsup:v1.1