From 518c78e512380e618192e09bbb23085cd6b9aa48 Mon Sep 17 00:00:00 2001 From: xarmian Date: Wed, 6 May 2026 19:24:55 -0400 Subject: [PATCH] chore(unraid): remove unraid/ directory (template moved to PerpetualSoftware/unraid-templates) (#430) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Unraid CA template has its own home now: https://github.com/PerpetualSoftware/unraid-templates That repo is required for the new ca.unraid.net/submit portal flow (needs ca_profile.xml + dedicated repo per submission). Pad has been submitted and auto-approved pending the next CA build, so the old pad/unraid/ files have no remaining consumers: - Docs (pad-web /docs/self-hosting/unraid) already point at the new repo's raw URLs (#96, merged 2026-05-06) - Forum support thread + ca_profile.xml + pad/pad.xml in the templates repo all reference the canonical new location - No CI / GoReleaser / Docker / Make targets touch unraid/ — verified with rg before deletion Refs IDEA-1184, PLAN-1185, TASK-1191. --- unraid/README.md | 166 ----------------------------------------------- unraid/icon.png | Bin 35107 -> 0 bytes unraid/pad.xml | 46 ------------- 3 files changed, 212 deletions(-) delete mode 100644 unraid/README.md delete mode 100644 unraid/icon.png delete mode 100644 unraid/pad.xml diff --git a/unraid/README.md b/unraid/README.md deleted file mode 100644 index eeb0a29e..00000000 --- a/unraid/README.md +++ /dev/null @@ -1,166 +0,0 @@ -# Pad on Unraid - -Run [Pad](https://getpad.dev) on your Unraid server — local-first project management for developers and AI coding agents. Single Go binary, SQLite by default, your data stays on your box. - -This directory holds the [Community Applications](https://forums.unraid.net/topic/38582-plug-in-community-applications/) (CA) template (`pad.xml`) and supporting docs. The full install walkthrough lives at . - -## Prerequisites - -- Unraid 6.12 or later. -- Community Applications plugin installed. - -## Install - -Once Pad is approved in the CA index (tracked in [PLAN-1166](https://github.com/PerpetualSoftware/pad)), the easy path: - -1. Open **Apps** in the Unraid web UI. -2. Search for **Pad**. -3. Click **Install** → adjust the form fields if you want non-default ports / appdata path → **Apply**. -4. Wait ~10 seconds for the container to come up healthy. -5. Click the container's **Logs** button. Look for the box that starts with `Pad first-run setup` and copy the URL — it looks like `http://:7777/setup#token=`. -6. Paste that URL into your browser. The token is read from the URL fragment (browser-only — never sent to a server log) and stripped from the address bar before you create the admin account. Fill in email, name, password → done. - -### Pre-CA install (manual, for early adopters) - -Before Pad lands in the CA index, you have two routes for installing the template manually. The "Add Repository" / "Template Repositories" feature in older Unraid versions [was removed in Unraid 6.10.0-rc1](https://forums.unraid.net/topic/114809-i-want-to-make-my-own-private-template-repository-but-it-doesnt-work/) and is not coming back, so the recommended path is now a direct sideload. - -#### Route A — CA Private Folder (recommended) - -The closest experience to what you'll get post-CA-approval. The template appears under CA's **Private** category and uses the same install form CA users will see. - -```bash -ssh root@ -mkdir -p /boot/config/plugins/community.applications/private/perpetualsoftware -wget -O /boot/config/plugins/community.applications/private/perpetualsoftware/pad.xml \ - https://raw.githubusercontent.com/PerpetualSoftware/pad/main/unraid/pad.xml -``` - -Then in the Unraid web UI: open **Apps**, search for "Pad" (or browse to the **Private** category). The listing shows the icon + Overview just like a CA-published app. Click **Install** → form → **Apply** — same flow as a CA-approved install. - -To remove later: delete the file. To update: re-run the `wget` (CA picks up the new file on next page load). - -#### Route B — Docker tab sideload (CA-less fallback) - -If you don't have CA installed, or want to skip CA's listing UI entirely: - -```bash -ssh root@ -wget -O /boot/config/plugins/dockerMan/templates-user/my-pad.xml \ - https://raw.githubusercontent.com/PerpetualSoftware/pad/main/unraid/pad.xml -``` - -Then in the Unraid web UI: **Docker** tab → **Add Container** → **Template** dropdown → pick **Pad**. - -Functionally identical container behavior; just skips the CA UX surface. - -## First-admin setup - -By default, the container generates a one-time bootstrap token at first start and logs it inside a banner you grab from **Logs**. That token is required to claim the first admin account from a remote browser. - -Two ways to skip the token-copy step on a trusted network: - -- **Open setup (web UI form)** — set the **Bypass Setup Token** template field to `true` (env var `PAD_BYPASS_SETUP_TOKEN=true`). Browse to `http://:7777/setup` and create the first admin directly — no token, no `docker exec`. The setting only matters before any user exists; once you've claimed an admin, the bootstrap surface is closed regardless of this flag. -- **Local CLI** — `docker exec -it Pad pad auth setup` from the Unraid console. Loopback-only so it works without a token. - -WARNING: leaving **Bypass Setup Token** on while the WebUI port is exposed to the open internet means anyone who reaches it first can claim the admin account. Use it on LAN-only / Tailscale-only / firewalled deployments. - -Cloud mode (`PAD_CLOUD=true` or `PAD_MODE=cloud`) ignores `PAD_BYPASS_SETUP_TOKEN` — cloud bootstrap stays loopback-only by design. - -## Where your data lives - -All persistent state lives under your appdata path (default `/mnt/user/appdata/pad/`): - -| Path | What | Critical? | -| --- | --- | --- | -| `pad.db` + `pad.db-wal` + `pad.db-shm` | SQLite database | yes | -| `encryption.key` | Encryption key for sensitive fields (TOTP seeds, OAuth tokens) | **yes — losing this bricks encrypted data** | -| `attachments/` | Uploaded attachment blobs | yes | -| `logs/server.log` | Server log | nice-to-have | -| `config.toml` | Workspace config | nice-to-have | -| `pad.pid` | PID file | ephemeral | -| `.bootstrap-token` | First-run setup token (auto-deleted on first admin claim) | one-time | - -One mount, complete coverage. The default appdata field in the template gives you all of this without thinking about it. - -## Backups - -Always stop the container first so SQLite isn't mid-write. Then: - -```bash -# Backup -tar -C /mnt/user/appdata -czf "pad-backup-$(date +%F).tar.gz" pad/ - -# Restore -tar -C /mnt/user/appdata -xzf "pad-backup-2026-05-06.tar.gz" -``` - -The `-C` flag makes both archive and restore relative to `/mnt/user/appdata`, so the `pad/` directory inside the tarball always lands at `/mnt/user/appdata/pad/` regardless of where you run the command. Without `-C`, GNU tar warns "Removing leading /" and stores relative paths anyway, but extracting from a different cwd would scatter the data — easy to get wrong. - -The container's entrypoint runs a `chown -R` to your configured `PUID:PGID` on every start, so PUID/PGID don't have to match between source and destination Unraid hosts. - -## Upgrading - -In Unraid → **Docker** → click the Pad container → **Force Update**. CA pulls a fresh `:latest`, recreates the container, and your appdata persists. - -Pad releases are at . Watching that repo on GitHub gets you a notification when a new version ships. - -## Reverse proxy - -If you front Pad with **SWAG** or **NGINX Proxy Manager** (recommended for HTTPS + a real hostname): - -1. In the template's **Public URL** field, enter your external URL: `https://pad.example.com`. -2. In your reverse proxy, point `pad.example.com` at `:7777`. -3. Standard reverse-proxy headers are fine — Pad doesn't need any special config. - -The **Public URL** is required if you want emailed invitations to point at your real hostname (otherwise links point at `http://:7777`, which recipients can't reach). - -## Email (optional) - -If you want Pad to send workspace invitations by email, fill in: - -- **Maileroo API Key** — sign up at (free tier is fine). -- **Email From** — sender address on a domain you control. -- **Email From Name** — display name (defaults to "Pad"). - -Without these, invitations fall back to copyable join codes you paste into the invitee's CLI. Not worse — just different. - -## Troubleshooting - -- **Port 7777 already in use** → change the **WebUI Port** field to a free port (e.g. 7778). -- **`/data` write errors in the logs** → the entrypoint validates `PUID`/`PGID` and rejects 0 or non-numeric. Stick to defaults (99/100) unless you have a specific reason; the entrypoint chowns appdata on every start, so a wrong-uid recovery is a single restart away. -- **Image won't pull** → verify GHCR is publicly pullable: `docker pull ghcr.io/perpetualsoftware/pad:latest` from any machine. -- **Reverse proxy returns 502** → the **Public URL** field must match the public-facing scheme + host (e.g. `https://pad.example.com`, not `http://`); also verify your proxy passes the request to the container's mapped port. -- **First-run banner not showing in logs** → it logs once on first start when zero users exist. If users already exist (you've already bootstrapped), the banner is suppressed. Restart only re-shows it on a fresh / wiped appdata. - -## Support - -- **Forum thread** *(once opened — see HT-1174)*: link will be added here and in the template's `` field. -- **GitHub Issues**: for bug reports and feature requests. -- **Documentation**: *(landing via TASK-1172 / pad-web PR #93)*. - -## Icon - -`unraid/icon.png` is a 256×256 PNG downsampled (LANCZOS) from `web/static/icon-512.png` — Pad's existing app icon. Reused rather than designed afresh so the CA listing matches getpad.dev favicons + PWA icons. Update both files in lockstep if the brand mark changes. - -## Template format conformity - -The Unraid wiki ([Docker Template Schema](https://wiki.unraid.net/DockerTemplateSchema)) is explicit: - -> "the only supported XML format is that which is generated by Unraid's docker tab when hitting SAVE on the template. Any manual editing of the XML files may present compatibility issues for CA and if they turn out to be incompatible, will result in the template being blacklisted within CA until brought into conformity with the dockerMan generated files." - -To stay safely on Squid's good side, keep `pad.xml` aligned with what dockerMan emits when an operator hits **Apply** on the install form. If you're editing this file by hand, validate by: - -1. Sideload your edited copy via the Route A path above. -2. Open it in CA, hit **Apply** to install it. -3. Diff your edited copy against `/boot/config/plugins/dockerMan/templates-user/.xml` (the post-SAVE serialized version). -4. Migrate any structural diff (added/removed/renamed elements, attribute-form changes) back into the canonical file. Cosmetic diffs (line endings, em dash → numeric entity) are XML-equivalent and OK to leave. - -Things to know about dockerMan's serializer that bit us on the first round: - -- **XML comments don't survive a SAVE round-trip** — dockerMan strips ``. Don't embed maintainer notes inside `pad.xml`; put them here in this README instead. -- **`` is not a recognized field** — dockerMan drops it. `` is the canonical CA-displayed text. -- **BBCode (`[b]...[/b]`) is stripped from ``** — use plain text for emphasis. -- **Empty `` elements should be self-closing** (`` not ``). -- **The schema includes empty marker elements** — ``, ``, ``, `` etc. dockerMan emits them all even when empty. - -Last verified against Unraid 7.x dockerMan output on 2026-05-06. diff --git a/unraid/icon.png b/unraid/icon.png deleted file mode 100644 index 4209388628cc776879cd9b83c22b8ecfba8e969b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35107 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%0D9!y#iKOEb|_A_u|_#GDJF+v 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 b;_?3nk=>QANa{D$00000NkvXXu0mjfWE7Ku diff --git a/unraid/pad.xml b/unraid/pad.xml deleted file mode 100644 index 1363acc6..00000000 --- a/unraid/pad.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - Pad - ghcr.io/perpetualsoftware/pad:latest - https://github.com/PerpetualSoftware/pad/pkgs/container/pad - bridge - - - sh - false - https://forums.unraid.net/topic/PLACEHOLDER-pad-support-thread/ - https://getpad.dev - - -Pad is local-first project management for developers and AI coding agents. -Single Go binary, SQLite by default, MCP-ready (Claude Code / Cursor / Windsurf). -Your data stays on your Unraid box — no telemetry, no account required, no -cloud lock-in. - -After install, click the container's Logs button to grab the -first-run bootstrap token, then visit the WebUI to claim the first admin. -See the install guide for screenshots: https://getpad.dev/docs/self-hosting/unraid - - Productivity: AI: - http://[IP]:[PORT:7777]/ - https://raw.githubusercontent.com/PerpetualSoftware/pad/main/unraid/pad.xml - https://raw.githubusercontent.com/PerpetualSoftware/pad/main/unraid/icon.png - - - - - - - - 7777 - /mnt/user/appdata/pad/ - 99 - 100 - info - false - - - - Pad - -