blumeops/CLAUDE.md
Erich Blume ef47c305fe Add grafana datasource provisioning and update workflow docs
- Configure grafana to use provisioned datasources instead of UI config
- Add prometheus datasource template managed by ansible
- Create minimal grafana.ini with custom provisioning path
- Move ansible_managed to group_vars (fixes deprecation warning)
- Add Remote Hosts and Git Workflow sections to CLAUDE.md
- Document feature branch workflow with tea CLI for PRs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 07:20:11 -08:00

2.2 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

blumeops is Erich Blume's GitOps repository for personal infrastructure management, orchestrated via tailnet tail8d86e.ts.net.

Documentation

Project documentation lives in the zettelkasten at ~/code/personal/zk. Start with the project card: 1767747119-YCPO.md.

You are encouraged to explore the zk, follow links, and propose updates to it as the project evolves.

Rules for all sessions

  1. Always start by consulting the project card.
  2. Expand and correct the cards of the zettelkasten.
  3. Use Brewfile and mise.toml to install tools.
  4. Use brew services or Launch Agents to control services on macos hosts.
  5. Test all changes before applying them - ie with ansible, use a --check --diff run.

Remote Hosts

This repo is typically edited from a workstation (e.g., gilbert), but services run on remote hosts in the tailnet. Use SSH to explore or check state on remote machines:

# Explore config paths on indri
ssh indri 'ls -la /opt/homebrew/etc/grafana/'

# Check service status
ssh indri 'brew services list'

Key hosts:

  • indri - Mac Mini M1 running services (prometheus, grafana, kiwix, forgejo, borgmatic)
  • sifaka - Synology NAS (backup target)

Git Workflow

Use feature branches for all changes. Do not commit directly to main.

# Create a feature branch
git checkout -b feature/description-of-change

# Make changes, then commit
git add -A
git commit -m "Description of change"

# Push and create PR using tea CLI
git push -u origin feature/description-of-change
tea pr create --title "Description of change" --description "Details..."

PRs are reviewed and merged via the Forgejo web UI at https://forge.tail8d86e.ts.net.

After creating a PR, offer to open it in the browser with open <pr-url>.

Ansible

Run playbooks from the ansible/ directory.

# Install collection dependencies
ansible-galaxy collection install -r requirements.yml

# Dry-run before committing changes
ansible-playbook playbooks/indri.yml --check --diff

# Apply changes
ansible-playbook playbooks/indri.yml