windows-host / package (push) Failing after 22s
windows-host / canary-manifest (push) Skipped
windows-host / winget-source (push) Skipped
ci / docs-site (push) Successful in 1m47s
ci / web (push) Successful in 1m53s
ci / rust-arm64 (push) Successful in 1m58s
docker / builders (--build-arg FEDORA_VERSION=44, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm, -f44) (push) Successful in 11s
docker / builders (ci/android-ci.Dockerfile, punktfunk-android-ci) (push) Successful in 9s
docker / builders (ci/arch-ci.Dockerfile, punktfunk-arch-ci) (push) Successful in 7s
docker / builders (ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 7s
docker / builders (ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 8s
docker / builders (ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 6s
docker / apps (., web/Dockerfile, punktfunk-web) (push) Successful in 58s
apple / swift (push) Successful in 4m45s
deb / build-publish-client-arm64 (push) Successful in 3m28s
docker / apps (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m27s
deb / build-publish (push) Successful in 5m26s
docker / builders-arm64cross (push) Successful in 6s
android / android (push) Successful in 6m22s
docker / deploy-docs (push) Successful in 38s
ci / rust (push) Successful in 7m10s
deb / build-publish-host (push) Successful in 5m27s
arch / build-publish (push) Successful in 8m42s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 16m58s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 17m16s
apple / screenshots (push) Successful in 20m19s
Three silent console outages in one week (0x1 / 0xFFFFFFFF / 0x41306), each a different proximate cause of the same structural defect: the console's lifecycle was owned by Task Scheduler — one best-effort start per boot/logon/install, no retry on a plain non-zero exit, no watchdog — while the product already shipped a real supervisor. The service now supervises the console as a second child slot: plain session-0 spawn (suspended → own no-breakaway kill-on-close job → resume), started only once the host has written mgmt-token + cert.pem + key.pem (the cert race dies by construction), secrets read from their files at every respawn, bun's stdout finally captured in logs\web.log, doubling backoff 0.5s→60s that never gives up. Session switches never touch it; a service stop takes it down via the job. The PunktfunkWeb task is retired: web setup slims to password + legacy task delete + firewall, the 127-line web-run.cmd batch supervisor is deleted, an [InstallDelete] entry reaps the stale copy, and service install now sets SCM crash-recovery actions (restart 1s/5s/60s) since the console rides on the service process. StopBunRuntimes stays for the scripting runner + the one migrating upgrade. Design: punktfunk-planning design/windows-web-console-lifecycle.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
82 lines
3.6 KiB
Markdown
82 lines
3.6 KiB
Markdown
---
|
|
title: Forgot your Password?
|
|
description: Where the Punktfunk web console login password lives — and how to read or reset it — on each host platform.
|
|
---
|
|
|
|
The Punktfunk **web console** (status, paired devices, PIN pairing) is protected by a login
|
|
password. That password is generated — or, on Windows, chosen — when the console is first set up, and
|
|
it lives on the **host**. So if you can't get past the login screen, you recover or change it on the
|
|
host machine itself, not from the browser.
|
|
|
|
New to the console? See [The Web Console](/docs/web-console) to enable it and arm pairing.
|
|
|
|
> This is **only** the web console login. It is **not** your client/device pairing — if a client
|
|
> won't connect, that's [Pairing](/docs/pairing), not this password.
|
|
|
|
## Find your host
|
|
|
|
Find your host platform for exactly where the password lives, then read it back or change it below:
|
|
|
|
| Host | Where the password lives | Section |
|
|
|------|--------------------------|---------|
|
|
| **Linux packages (apt / RPM / Arch / Bazzite / NixOS)** | `~/.config/punktfunk/web-password` | [Login password](/docs/web-console#login-password) |
|
|
| **SteamOS (host)** | `~/.config/punktfunk/web.env` | [Login password](/docs/web-console#login-password) |
|
|
| **Windows host** | `%ProgramData%\punktfunk\web-password` | [Login password](/docs/web-console#login-password) · [Windows Host](/docs/windows-host) |
|
|
|
|
## Read it back, or set your own
|
|
|
|
The password is stored on the host as a `PUNKTFUNK_UI_PASSWORD=…` line, so you can read it straight
|
|
out of the file. On the **Linux packages** and the **SteamOS host**:
|
|
|
|
```sh
|
|
sed -n 's/^PUNKTFUNK_UI_PASSWORD=//p' ~/.config/punktfunk/web-password # Linux packages
|
|
sed -n 's/^PUNKTFUNK_UI_PASSWORD=//p' ~/.config/punktfunk/web.env # SteamOS host
|
|
```
|
|
|
|
On a **Windows host**, from an **elevated** PowerShell (the file is readable only by Administrators
|
|
and SYSTEM):
|
|
|
|
```powershell
|
|
Get-Content "$env:ProgramData\punktfunk\web-password"
|
|
```
|
|
|
|
To replace it with one you pick, follow [Login password](/docs/web-console#login-password). It has
|
|
the exact edit-and-restart steps for each of the three platforms above, and it's the one place that
|
|
procedure is kept up to date.
|
|
|
|
## The password is right and it still won't let you in
|
|
|
|
The login screen says **"Wrong password."** for every failure, including two that have nothing to do
|
|
with the password you typed.
|
|
|
|
- **Too many attempts.** Five wrong guesses from the same device are free; every one after that
|
|
arms a lockout that doubles — a second, two, four — up to **five minutes**. While it holds, even
|
|
the correct password is refused. Wait it out, or clear it at once by restarting the console (the
|
|
lockout is only kept in the console's memory):
|
|
|
|
```sh
|
|
systemctl --user restart punktfunk-web
|
|
```
|
|
|
|
```powershell
|
|
punktfunk-host service restart
|
|
```
|
|
|
|
(The PowerShell one is Windows, from an **elevated** prompt — the console runs under the
|
|
Punktfunk Host service there.)
|
|
- **No password is configured at all.** If the file is missing or empty, or a line lost its
|
|
`PUNKTFUNK_UI_PASSWORD=` prefix, the console fails closed and admits nobody — a page you open
|
|
answers `auth not configured: set PUNKTFUNK_UI_PASSWORD`. Put the line back —
|
|
`PUNKTFUNK_UI_PASSWORD=<your-password>`, on its own line, nothing else on it — and restart the
|
|
console as above. On the Linux packages you can instead **delete**
|
|
`~/.config/punktfunk/web-password` and run
|
|
|
|
```sh
|
|
systemctl --user restart punktfunk-web-init punktfunk-web
|
|
```
|
|
|
|
which generates a fresh password, prints it to the journal, and starts the console with it —
|
|
read it back with the command above.
|
|
|
|
Still stuck? See [Troubleshooting](/docs/troubleshooting).
|