Files
bin/CLAUDE.md
2026-03-15 18:03:08 +01:00

1.4 KiB

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_<service>.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_name>/
  • 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.