Review gandi-operations doc and reorganize how-to guides (#200)

## Summary
- **Doc review:** Reviewed `gandi-operations.md` — added `last-reviewed` frontmatter, verified all wiki-links, confirmed Pulumi state has no drift
- **Gandi reference fix:** Added missing `cv.eblu.me` CNAME row to `gandi.md` DNS records table (was present in Pulumi but undocumented)
- **Pulumi comment fix:** Updated stale `README.md` reference in `__main__.py` to point to `docs/how-to/gandi-operations.md`
- **How-to reorg:** Moved 14 how-to guides into 3 subdirectories (`deployment/`, `configuration/`, `operations/`), collapsed the Documentation and Database index sections into Configuration and Operations respectively

## Verification
- `docs-check-links` — all 180 wiki-links valid
- `docs-check-filenames` — all 90 filenames unique
- `dns-preview` — 5 resources unchanged, no drift
- All pre-commit hooks pass

## Test plan
- [ ] Verify docs site builds correctly with new paths
- [ ] Spot-check a few wiki-links from other pages to moved how-to guides

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/200
This commit is contained in:
Erich Blume 2026-02-17 07:29:33 -08:00
commit 27d8f3cf1f
18 changed files with 8 additions and 15 deletions

View file

@ -0,0 +1 @@
Reorganize how-to guides into `deployment/`, `configuration/`, and `operations/` subdirectories; review and update gandi-operations doc; fix missing cv.eblu.me CNAME in gandi reference card.

View file

@ -1,6 +1,7 @@
--- ---
title: Gandi Operations title: Gandi Operations
modified: 2026-02-08 modified: 2026-02-17
last-reviewed: 2026-02-17
tags: tags:
- how-to - how-to
- dns - dns

View file

@ -1,6 +1,6 @@
--- ---
title: How-To title: How-To
modified: 2026-02-14 modified: 2026-02-17
tags: tags:
- how-to - how-to
--- ---
@ -26,11 +26,6 @@ Task-oriented instructions for common BlumeOps operations. These guides assume y
| [[gandi-operations]] | Manage DNS records and cycle the Gandi API token | | [[gandi-operations]] | Manage DNS records and cycle the Gandi API token |
| [[use-pypi-proxy]] | Configure pip and publish packages to devpi | | [[use-pypi-proxy]] | Configure pip and publish packages to devpi |
| [[expose-service-publicly]] | Expose a service to the public internet via Fly.io + Tailscale | | [[expose-service-publicly]] | Expose a service to the public internet via Fly.io + Tailscale |
## Documentation
| Guide | Description |
|-------|-------------|
| [[update-documentation]] | Publish docs via build-blumeops workflow | | [[update-documentation]] | Publish docs via build-blumeops workflow |
## Knowledge Base ## Knowledge Base
@ -40,16 +35,11 @@ Task-oriented instructions for common BlumeOps operations. These guides assume y
| [[review-documentation]] | Periodically review and maintain documentation | | [[review-documentation]] | Periodically review and maintain documentation |
| [[review-services]] | Periodically review services for version freshness | | [[review-services]] | Periodically review services for version freshness |
## Database
| Guide | Description |
|-------|-------------|
| [[connect-to-postgres]] | Connect to PostgreSQL as a superuser via psql |
## Operations ## Operations
| Guide | Description | | Guide | Description |
|-------|-------------| |-------|-------------|
| [[connect-to-postgres]] | Connect to PostgreSQL as a superuser via psql |
| [[restart-indri]] | Safely shut down and restart indri | | [[restart-indri]] | Safely shut down and restart indri |
| [[manage-flyio-proxy]] | Deploy, shutoff, and troubleshoot the public proxy | | [[manage-flyio-proxy]] | Deploy, shutoff, and troubleshoot the public proxy |
| [[restore-1password-backup]] | Recover 1Password credentials from borgmatic backup | | [[restore-1password-backup]] | Recover 1Password credentials from borgmatic backup |

View file

@ -1,6 +1,6 @@
--- ---
title: Gandi title: Gandi
modified: 2026-02-08 modified: 2026-02-17
tags: tags:
- infrastructure - infrastructure
- networking - networking
@ -42,6 +42,7 @@ Both records point to [[indri]], which runs [[caddy]] as the reverse proxy for a
| Record | Type | Value | TTL | | Record | Type | Value | TTL |
|--------|------|-------|-----| |--------|------|-------|-----|
| `docs.eblu.me` | CNAME | `blumeops-proxy.fly.dev` | 300s | | `docs.eblu.me` | CNAME | `blumeops-proxy.fly.dev` | 300s |
| `cv.eblu.me` | CNAME | `blumeops-proxy.fly.dev` | 300s |
Public CNAMEs point to [[flyio-proxy]] on Fly.io. See [[expose-service-publicly]] for adding new public services. Public CNAMEs point to [[flyio-proxy]] on Fly.io. See [[expose-service-publicly]] for adding new public services.

View file

@ -8,7 +8,7 @@ This program manages DNS records for blumeops infrastructure:
Authentication: Authentication:
Set GANDI_PERSONAL_ACCESS_TOKEN environment variable. Set GANDI_PERSONAL_ACCESS_TOKEN environment variable.
See README.md for PAT management instructions. See docs/how-to/gandi-operations.md for PAT management instructions.
""" """
import os import os