blumeops/docs/zk/indri.md
Erich Blume a45a78b478 Convert wiki-links to title-based format (#89)
## Summary
- Add `doc-card-titles` mise task to enumerate all doc cards by title/id and detect duplicates
- Remove redundant aliases from zk cards where alias matched the id
- Rename `reference/storage/postgresql.md` title to "PostgreSQL Storage" to avoid duplicate with `reference/services/postgresql.md`
- Convert all 175 path-based wiki-links `[[reference/path|Title]]` to title-based `[[Title]]` format
- Add pre-commit hook to check for duplicate card titles on doc changes

## Deployment and Testing
- [x] Pre-commit hooks pass
- [x] `mise run doc-card-titles` shows no duplicates
- [ ] Verify wiki-links work correctly in Quartz build

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/89
2026-02-03 15:04:38 -08:00

2 KiB

id aliases tags
indri
mac-mini
blumeops

Indri Maintenance Log

Indri is a Mac Mini M1 (2020) serving as the primary 1767747119-YCPO server.

Host Details

  • Model: Mac mini M1, 2020 (Macmini9,1)
  • Storage: 2TB internal SSD
  • macOS: 15.7.3 (Sequoia)
  • Role: Primary server for homelab services

Passwordless Sudo

Configured passwordless sudo for erichblume user to allow ansible become: true tasks to run without password prompts:

# Config at /etc/sudoers.d/erichblume
erichblume ALL=(ALL) NOPASSWD: ALL

This is acceptable given the security model - tailnet access is the trust boundary.

Sleep Prevention

Indri must stay awake to serve network requests. Currently using Amphetamine (App Store) to prevent sleep.

Configuration:

  • Start Session At Launch: enabled
  • Default Duration: indefinite
  • Allow Closed-Display Sleep: enabled (no display attached)

Known Issue: Amphetamine can crash after extended uptime (~12 days observed), leaving the system unprotected. If this becomes a recurring problem, consider switching to system-level sleep prevention:

# Option 1: Disable sleep via pmset (requires sudo)
sudo pmset -c sleep 0 displaysleep 0

# Option 2: Use caffeinate daemon via LaunchAgent
# Create ~/Library/LaunchAgents/com.local.caffeinate.plist
caffeinate -s  # -s = prevent sleep on AC power

These could be managed via ansible for reliability.

Log

Mon Jan 20 2026

Amphetamine crash caused overnight sleep

  • Amphetamine 5.3.2 crashed at 19:08 on Jan 19 (segfault in objc_release during timer callback)
  • System went to sleep at 19:20, stayed asleep overnight
  • Discovered when services were unreachable; manually restarted Amphetamine at ~07:30
  • Crash report: ~/Library/Logs/DiagnosticReports/Amphetamine-2026-01-19-190921.ips
  • Root cause: Memory management bug in Amphetamine during long-running session (~12 days uptime)
  • Action: Monitoring for now; if recurs, will implement pmset/caffeinate via ansible