Files
natascha-rieter-nl/CLAUDE.md
T
m038 8c93dfd7c9 Sync local state with remote after untracked local evolution
Local site-ai/ had diverged significantly from the last commit pushed
to Gitea (new remote-env-setup/remove targets, SITE_CONFIG_DIR/MAIN_REPO
split, credential cleanup in server-install.sh, migration docs) without
ever being committed. This catches the repo up to what's actually on disk.

Also untracks the legacy user/ subtree left over from before content was
split into its own standalone repo (natascha-rieter.nl-user) — user/ is
gitignored here and stays a separate git repo, unaffected by this commit.
2026-08-30 14:48:54 +02:00

2.2 KiB
Executable File

CLAUDE.md

0. Project specifics

Only ever write changes in this folder (site-ai/) or its subfolders.

Folder explanation

  • _resources/: Contains html, css files and fonts
  • ./: Grav CMS for natascha-rieter.nl

Environment

Never read .env — it contains sensitive credentials. You may pass it to commands (e.g. docker compose, make) but never read its contents directly. Ask the user if you need environment-specific information.

Remote operations

Always use make commands for anything on the production server (make remote-install-plugins, make remote-clean, etc.) — never SSH directly since credentials live in .env. If a remote operation isn't covered by an existing make command, either ask the user to run it manually or suggest adding a new make command if it seems reusable.

Content sync

  • make content-push — commit and push user/ to Gitea (triggers production pull via webhook)
  • make content-pull — pull latest from Gitea to local
  • plugins.txt is manually maintained — installing a plugin via Admin does NOT update it

git-sync direction (per environment)

sync.direction in user/config/plugins/git-sync.yaml is shared/synced, so setting it there fights between environments (this caused a production outage: direction: pull synced everywhere and silently disabled production's pushes for days). The fix is Grav's user/env/<hostname>/config/... override path — it's outside git-sync's tracked folders and gitignored (user/.gitignore only allow-lists pages/, themes/, config/, accounts/), so it never syncs and is safe to pin per machine.

  • make configure-env-local — pins this local checkout to direction: pull (never pushes)
  • make remote-configure-env — pins production (REMOTE_ENV_HOST, default nieuw.natascha-rieter.nl) to direction: both

Re-run configure-env-local after a fresh clone or a wiped local checkout — the override files are intentionally untracked, so they don't survive a re-clone on their own.

User repo gitignore

Only these folders are tracked in the user/ Git repo: pages/, config/, accounts/, themes/. The plugins/ and data/ folders are excluded.