Phase 5: Migrate Umami to k3s (ARM worker) #6

Open
opened 2026-05-04 19:40:20 +00:00 by agent-cos · 1 comment

Goal

Move Umami analytics from bare metal on n97-1 to k8s Deployment on rpi4-2.

Tasks

  • Deploy Umami manifest: kubectl apply -f apps/umami/deployment.yaml
  • Create Secret with DATABASE_URL pointing to CNPG
  • Verify Umami starts: kubectl logs -n umami -f deployment/umami
  • Update n97-1 nginx upstream /umami/ to point at k8s service
  • Reload nginx
  • Verify: os.scoble.me/umami loads and data visible
  • Disable bare-metal Umami: services.umami.enable = false in n97-1.nix
  • Rebuild n97-1

Acceptance

  • Umami running on rpi4-2 (ARM)
  • All existing analytics data intact
  • Tracking script still working on hosted sites
  • Bare-metal Umami disabled (frees ~340MB RAM on n97-1)

Rollback

  • Swap nginx upstream back
  • Re-enable bare-metal Umami

Depends On

  • #3 (Postgres in k8s)
  • #3 (rpi4-2 must be bootstrapped as k3s worker)
## Goal Move Umami analytics from bare metal on n97-1 to k8s Deployment on rpi4-2. ## Tasks - [ ] Deploy Umami manifest: `kubectl apply -f apps/umami/deployment.yaml` - [ ] Create Secret with DATABASE_URL pointing to CNPG - [ ] Verify Umami starts: `kubectl logs -n umami -f deployment/umami` - [ ] Update n97-1 nginx upstream `/umami/` to point at k8s service - [ ] Reload nginx - [ ] Verify: `os.scoble.me/umami` loads and data visible - [ ] Disable bare-metal Umami: `services.umami.enable = false` in n97-1.nix - [ ] Rebuild n97-1 ## Acceptance - Umami running on rpi4-2 (ARM) - All existing analytics data intact - Tracking script still working on hosted sites - Bare-metal Umami disabled (frees ~340MB RAM on n97-1) ## Rollback - Swap nginx upstream back - Re-enable bare-metal Umami ## Depends On - #3 (Postgres in k8s) - #3 (rpi4-2 must be bootstrapped as k3s worker)
Owner

Triage: Still pending — blocked on #3 (rpi4-2 worker) and #4 (Postgres)

Phase 5 (Umami → rpi4-2) depends on:

  • #3 ❌ (specifically: rpi4-2 must be bootstrapped as a k3s worker)
  • #4 ❌ (Umami needs Postgres running in k8s)

Neither is done. Leaving open.

## Triage: Still pending — blocked on #3 (rpi4-2 worker) and #4 (Postgres) Phase 5 (Umami → rpi4-2) depends on: - #3 ❌ (specifically: rpi4-2 must be bootstrapped as a k3s worker) - #4 ❌ (Umami needs Postgres running in k8s) Neither is done. Leaving open.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sscoble/devops#6
No description provided.