Review restart-indri doc: fix Caddy/Jellyfin service management, fix docs-preview path handling

- Caddy is now a mcquack LaunchAgent, not brew services
- Add missing Jellyfin and Caddy to shutdown commands and autostart list
- docs-preview: accept paths with or without docs/ prefix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-03-14 10:09:38 -07:00
commit 8b3b17d555
2 changed files with 15 additions and 5 deletions

View file

@ -1,6 +1,7 @@
--- ---
title: Restart Indri title: Restart Indri
modified: 2026-02-10 modified: 2026-03-14
last-reviewed: 2026-03-14
tags: tags:
- how-to - how-to
- operations - operations
@ -40,7 +41,9 @@ Native services managed by launchd will stop automatically during macOS shutdown
ssh indri 'brew services stop forgejo' ssh indri 'brew services stop forgejo'
# LaunchAgent services # LaunchAgent services
ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.caddy.plist'
ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.zot.plist' ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.zot.plist'
ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.jellyfin.plist'
ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.alloy.plist' ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.alloy.plist'
ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.borgmatic.plist' ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.borgmatic.plist'
``` ```
@ -65,7 +68,7 @@ Or if you're at the console, use the Apple menu.
After indri boots, most services recover automatically. Only a few things need manual attention. After indri boots, most services recover automatically. Only a few things need manual attention.
**What autostarts:** Docker Desktop, brew services (Forgejo, Caddy), and all mcquack LaunchAgent services (Zot, Alloy, Borgmatic, metrics collectors). **What autostarts:** Docker Desktop, brew services (Forgejo), and all mcquack LaunchAgent services (Caddy, Zot, Jellyfin, Alloy, Borgmatic, metrics collectors).
**What needs manual action:** Amphetamine, AutoMounter, and minikube (including its Tailscale serve port). **What needs manual action:** Amphetamine, AutoMounter, and minikube (including its Tailscale serve port).

View file

@ -50,9 +50,16 @@ def main(
# Normalize: accept with or without .md suffix # Normalize: accept with or without .md suffix
card_stem = card.removesuffix(".md") card_stem = card.removesuffix(".md")
card_file = REPO_ROOT / "docs" / f"{card_stem}.md" # Try exact path first (e.g. "docs/how-to/..."), then inside docs/
if not card_file.exists(): exact_file = REPO_ROOT / f"{card_stem}.md"
console.print(f"[bold red]Card not found:[/bold red] {card_file}") docs_file = REPO_ROOT / "docs" / f"{card_stem}.md"
if exact_file.exists() and card_stem.startswith("docs/"):
card_stem = card_stem.removeprefix("docs/")
card_file = exact_file
elif docs_file.exists():
card_file = docs_file
else:
console.print(f"[bold red]Card not found:[/bold red] {docs_file}")
raise typer.Exit(code=1) raise typer.Exit(code=1)
url_path = "/" + card_stem url_path = "/" + card_stem