From 98d7a41cdd6f336137d400680d5666d848fdf0b6 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 10 Aug 2026 00:11:23 +1000 Subject: [PATCH 1/3] docs: the docs repo is docs-mantis, not mantis-docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every documentation link in this repo — 17 across 9 files — pointed at github.com/privacykey/mantis-docs. That repo was renamed to docs-mantis, so the links only still work because GitHub redirects renames. That redirect is not a guarantee: it breaks the moment anyone creates a new repo under the old name. Four of these ship to users rather than sitting in a README: src/app/(app)/layout.tsx the dashboard's Docs link src/app/login/page.tsx the login screen src/app/(app)/keys/[id]/… the file-key download panel cli/src/commands/init.ts printed by `mantis init` Verified all ten linked pages exist in docs-mantis at main. Deliberately NOT switched to docs.mantis.privacykey.org. That is where these should eventually point, but the hostname has no DNS yet — moving shipping product links onto a dead domain would replace working links with broken ones. Worth a follow-up once the docs site is published. --- README.md | 14 +++++++------- cli/README.md | 2 +- cli/src/commands/init.ts | 2 +- deploy/fly-launch.sh | 2 +- deploy/fly.toml.example | 2 +- deploy/render.yaml.example | 2 +- src/app/(app)/keys/[id]/download-formats.tsx | 2 +- src/app/(app)/layout.tsx | 2 +- src/app/login/page.tsx | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 7311823..808217b 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ mantis --key mantis_live_... login --url http://localhost:3000 mantis new "first mantis" -w http://localhost:3000/inbox/demo ``` -This is fine for evaluation but **don't rely on a laptop deploy for canaries that need to fire when you're away from your machine.** For a real public-reachable deploy — Tailscale Funnel, Cloudflare Tunnel, Railway, Fly.io, or Render — see **[deployment options](https://github.com/privacykey/mantis-docs/blob/main/deployment/README.md)**. +This is fine for evaluation but **don't rely on a laptop deploy for canaries that need to fire when you're away from your machine.** For a real public-reachable deploy — Tailscale Funnel, Cloudflare Tunnel, Railway, Fly.io, or Render — see **[deployment options](https://github.com/privacykey/docs-mantis/blob/main/deployment/README.md)**. For Fly.io specifically, one command provisions the app, a Managed Postgres cluster, the secrets and the first admin key: @@ -148,15 +148,15 @@ the Kandji API. ## Docs -Full documentation: **[github.com/privacykey/mantis-docs](https://github.com/privacykey/mantis-docs)**. +Full documentation: **[github.com/privacykey/docs-mantis](https://github.com/privacykey/docs-mantis)**. Common starting points: -- [Getting started](https://github.com/privacykey/mantis-docs/blob/main/getting-started.md) — five steps from `brew install` to first key -- [Use cases](https://github.com/privacykey/mantis-docs/blob/main/use-cases.md) — defensive / detective / operational / adversarial patterns -- [HTTP API](https://github.com/privacykey/mantis-docs/blob/main/api.md) — endpoints, response kinds, webhook payload shape -- [File keys](https://github.com/privacykey/mantis-docs/blob/main/file-keys.md) and [host-event keys](https://github.com/privacykey/mantis-docs/blob/main/host-events.md) -- [Updating](https://github.com/privacykey/mantis-docs/blob/main/updating.md) — update commands per component +- [Getting started](https://github.com/privacykey/docs-mantis/blob/main/getting-started.md) — five steps from `brew install` to first key +- [Use cases](https://github.com/privacykey/docs-mantis/blob/main/use-cases.md) — defensive / detective / operational / adversarial patterns +- [HTTP API](https://github.com/privacykey/docs-mantis/blob/main/api.md) — endpoints, response kinds, webhook payload shape +- [File keys](https://github.com/privacykey/docs-mantis/blob/main/file-keys.md) and [host-event keys](https://github.com/privacykey/docs-mantis/blob/main/host-events.md) +- [Updating](https://github.com/privacykey/docs-mantis/blob/main/updating.md) — update commands per component ## License diff --git a/cli/README.md b/cli/README.md index 4f2d52e..5b6a7b4 100644 --- a/cli/README.md +++ b/cli/README.md @@ -542,7 +542,7 @@ secret-tool search service mantis-cli-edge | xargs -r secret-tool clear service ## Cloudflare Access auth (when your mantis API is gated) -If you've put `/api/*` behind Cloudflare Access (see [mantis-docs: deployment/cloudflare.md](https://github.com/privacykey/mantis-docs/blob/main/deployment/cloudflare.md#step-6-optional--cloudflare-access)), the CLI needs to authenticate to Cloudflare *before* it can reach the mantis API. Two modes: +If you've put `/api/*` behind Cloudflare Access (see [mantis-docs: deployment/cloudflare.md](https://github.com/privacykey/docs-mantis/blob/main/deployment/cloudflare.md#step-6-optional--cloudflare-access)), the CLI needs to authenticate to Cloudflare *before* it can reach the mantis API. Two modes: **SSO** (interactive; uses your real Cloudflare identity): ```bash diff --git a/cli/src/commands/init.ts b/cli/src/commands/init.ts index de3e185..cb98c48 100644 --- a/cli/src/commands/init.ts +++ b/cli/src/commands/init.ts @@ -68,7 +68,7 @@ export async function initCmd(): Promise { w(`${c.dim("2. Set the edge key as a secret on the now-deployed worker:")}\n`); w(` npx wrangler secret put MANTIS_EDGE_KEY\n`); w(` ${c.dim("# paste this value:")} ${key}\n\n`); - w(`${c.dim("Deploy docs:")} mantis-edge/README.md ${c.dim("·")} https://github.com/privacykey/mantis-docs\n\n`); + w(`${c.dim("Deploy docs:")} mantis-edge/README.md ${c.dim("·")} https://github.com/privacykey/docs-mantis\n\n`); let worker = ""; while (!URL_RE.test(worker)) { diff --git a/deploy/fly-launch.sh b/deploy/fly-launch.sh index e7fd16b..a2d4578 100755 --- a/deploy/fly-launch.sh +++ b/deploy/fly-launch.sh @@ -301,6 +301,6 @@ cat < for Immich / Paperless / Joplin / calendar / contacts etc. — see{" "} )} — or set via{" "} BOOTSTRAP_API_KEY. See the{" "} Date: Tue, 11 Aug 2026 02:20:10 +1000 Subject: [PATCH 2/3] docs: rename the two visible mantis-docs labels too The href rename left the link text naming the old repo, so the dashboard download panel and the CLI README displayed "mantis-docs" while pointing at docs-mantis. Co-Authored-By: Claude Opus 5 --- cli/README.md | 2 +- src/app/(app)/keys/[id]/download-formats.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/README.md b/cli/README.md index 5b6a7b4..811feb2 100644 --- a/cli/README.md +++ b/cli/README.md @@ -542,7 +542,7 @@ secret-tool search service mantis-cli-edge | xargs -r secret-tool clear service ## Cloudflare Access auth (when your mantis API is gated) -If you've put `/api/*` behind Cloudflare Access (see [mantis-docs: deployment/cloudflare.md](https://github.com/privacykey/docs-mantis/blob/main/deployment/cloudflare.md#step-6-optional--cloudflare-access)), the CLI needs to authenticate to Cloudflare *before* it can reach the mantis API. Two modes: +If you've put `/api/*` behind Cloudflare Access (see [docs-mantis: deployment/cloudflare.md](https://github.com/privacykey/docs-mantis/blob/main/deployment/cloudflare.md#step-6-optional--cloudflare-access)), the CLI needs to authenticate to Cloudflare *before* it can reach the mantis API. Two modes: **SSO** (interactive; uses your real Cloudflare identity): ```bash diff --git a/src/app/(app)/keys/[id]/download-formats.tsx b/src/app/(app)/keys/[id]/download-formats.tsx index 4f70de4..5dc9251 100644 --- a/src/app/(app)/keys/[id]/download-formats.tsx +++ b/src/app/(app)/keys/[id]/download-formats.tsx @@ -96,7 +96,7 @@ export function DownloadFormats({ rel="noopener noreferrer" className="text-blue-400 no-underline hover:underline" > - mantis-docs: self-hosted-apps.md + docs-mantis: self-hosted-apps.md . From d64b9c3f1864cbdefd5a42d69561a3b7e88941b9 Mon Sep 17 00:00:00 2001 From: adamXbot <111877622+adamXbot@users.noreply.github.com> Date: Tue, 11 Aug 2026 02:37:42 +1000 Subject: [PATCH 3/3] docs: point documentation links at docs.mantis.privacykey.org Move all 17 documentation links off the GitHub Markdown source and onto the Mintlify site, mapping each path to its rendered slug (drop the .md, and deployment/README.md -> /deployment, which is the nav root). Also refresh the prose and link labels that described the old target: the README no longer says the site isn't live, and two link labels that read as repo filenames now read as docs pages. Note: docs.mantis.privacykey.org does not resolve yet (NXDOMAIN). These links will fail until DNS is pointed at the Mintlify deployment, which includes the dashboard Docs link, the login page, the file-key download panel, and `mantis init` output. Co-Authored-By: Claude Opus 5 --- README.md | 10 +++++----- cli/README.md | 2 +- cli/src/commands/init.ts | 2 +- deploy/fly-launch.sh | 2 +- deploy/fly.toml.example | 2 +- deploy/render.yaml.example | 2 +- docs/GETTING-STARTED.md | 2 +- src/app/(app)/keys/[id]/download-formats.tsx | 4 ++-- src/app/(app)/layout.tsx | 2 +- src/app/login/page.tsx | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 5484814..7cfecd7 100644 --- a/README.md +++ b/README.md @@ -68,12 +68,12 @@ Every component — CLI, edge worker, LAN helper, benchmarks, deploy assets — ## Docs -The prose documentation lives in [`privacykey/docs-mantis`](https://github.com/privacykey/docs-mantis). It is a Mintlify source and the rendered site is not live yet, so these link to the Markdown on GitHub. +The prose documentation lives at [docs.mantis.privacykey.org](https://docs.mantis.privacykey.org), built with Mintlify from [`privacykey/docs-mantis`](https://github.com/privacykey/docs-mantis). -- [Getting started](https://github.com/privacykey/docs-mantis/blob/main/getting-started.md) — five steps from `brew install` to first key -- [Use cases](https://github.com/privacykey/docs-mantis/blob/main/use-cases.md) — defensive, detective, operational and adversarial patterns -- [HTTP API](https://github.com/privacykey/docs-mantis/blob/main/api.md) — endpoints, response kinds, webhook payload shape -- [File keys](https://github.com/privacykey/docs-mantis/blob/main/file-keys.md), [host-event keys](https://github.com/privacykey/docs-mantis/blob/main/host-events.md), [deployment](https://github.com/privacykey/docs-mantis/blob/main/deployment/README.md), [updating](https://github.com/privacykey/docs-mantis/blob/main/updating.md) +- [Getting started](https://docs.mantis.privacykey.org/getting-started) — five steps from `brew install` to first key +- [Use cases](https://docs.mantis.privacykey.org/use-cases) — defensive, detective, operational and adversarial patterns +- [HTTP API](https://docs.mantis.privacykey.org/api) — endpoints, response kinds, webhook payload shape +- [File keys](https://docs.mantis.privacykey.org/file-keys), [host-event keys](https://docs.mantis.privacykey.org/host-events), [deployment](https://docs.mantis.privacykey.org/deployment), [updating](https://docs.mantis.privacykey.org/updating) ## Contributing diff --git a/cli/README.md b/cli/README.md index 811feb2..57ac89d 100644 --- a/cli/README.md +++ b/cli/README.md @@ -542,7 +542,7 @@ secret-tool search service mantis-cli-edge | xargs -r secret-tool clear service ## Cloudflare Access auth (when your mantis API is gated) -If you've put `/api/*` behind Cloudflare Access (see [docs-mantis: deployment/cloudflare.md](https://github.com/privacykey/docs-mantis/blob/main/deployment/cloudflare.md#step-6-optional--cloudflare-access)), the CLI needs to authenticate to Cloudflare *before* it can reach the mantis API. Two modes: +If you've put `/api/*` behind Cloudflare Access (see [docs: deployment/cloudflare](https://docs.mantis.privacykey.org/deployment/cloudflare#step-6-optional--cloudflare-access)), the CLI needs to authenticate to Cloudflare *before* it can reach the mantis API. Two modes: **SSO** (interactive; uses your real Cloudflare identity): ```bash diff --git a/cli/src/commands/init.ts b/cli/src/commands/init.ts index cb98c48..1d26180 100644 --- a/cli/src/commands/init.ts +++ b/cli/src/commands/init.ts @@ -68,7 +68,7 @@ export async function initCmd(): Promise { w(`${c.dim("2. Set the edge key as a secret on the now-deployed worker:")}\n`); w(` npx wrangler secret put MANTIS_EDGE_KEY\n`); w(` ${c.dim("# paste this value:")} ${key}\n\n`); - w(`${c.dim("Deploy docs:")} mantis-edge/README.md ${c.dim("·")} https://github.com/privacykey/docs-mantis\n\n`); + w(`${c.dim("Deploy docs:")} mantis-edge/README.md ${c.dim("·")} https://docs.mantis.privacykey.org\n\n`); let worker = ""; while (!URL_RE.test(worker)) { diff --git a/deploy/fly-launch.sh b/deploy/fly-launch.sh index a2d4578..ce5c6ed 100755 --- a/deploy/fly-launch.sh +++ b/deploy/fly-launch.sh @@ -301,6 +301,6 @@ cat < [!CAUTION] > **Serve it over HTTPS, never plain HTTP.** Mantis authenticates with an API diff --git a/src/app/(app)/keys/[id]/download-formats.tsx b/src/app/(app)/keys/[id]/download-formats.tsx index 5dc9251..d1e070c 100644 --- a/src/app/(app)/keys/[id]/download-formats.tsx +++ b/src/app/(app)/keys/[id]/download-formats.tsx @@ -91,12 +91,12 @@ export function DownloadFormats({ for Immich / Paperless / Joplin / calendar / contacts etc. — see{" "} - docs-mantis: self-hosted-apps.md + docs: self-hosted apps . diff --git a/src/app/(app)/layout.tsx b/src/app/(app)/layout.tsx index 27d8575..e374af4 100644 --- a/src/app/(app)/layout.tsx +++ b/src/app/(app)/layout.tsx @@ -63,7 +63,7 @@ export default async function AppLayout({ children }: { children: ReactNode }) { )} — or set via{" "} BOOTSTRAP_API_KEY. See the{" "}