# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Overview Personal `~/bin` repository containing Podman pod creation scripts for self-hosted services on a Linux server. Each script creates a rootless Podman pod with systemd user service integration. ## Repository - Main branch: `main` - Remote: `ssh://git@git.destengs.com:8085/pln/bin.git` (Gitea) - Run by user `pln` with rootless Podman permissions ## Shell script conventions All pod creation scripts follow the same pattern (see existing scripts and examples in `/home/lwc/bin/create_pod_langflow.sh`, `/home/krt/bin/create_pod_qdrant.sh`): - Naming: `create_pod_.sh` - `#!/bin/bash` shebang with `set -e` - Variables declared at top: `POD_NAME`, `CTR_NAME`, container images with pinned tags, ports, bind dirs - Data persisted under `$HOME/.local/share//` - Pod ports bound to `127.0.0.1` (localhost only) - Containers removed and recreated on each run (idempotent) - Systemd user service files generated via `podman generate systemd --name --new --files` - Pod stopped/removed after systemd generation, then re-started via `systemctl --user enable --now` - Readiness check loop using `curl` with 30 attempts, 2s interval ## Current services - **AFFiNE** (`create_pod_affine.sh`): AFFiNE v0.26.3 with pgvector/PostgreSQL and Redis. Web UI on port 8092, GraphQL API at `/graphql`.