diff --git a/CLAUDE.md b/CLAUDE.md index 350af73..fcbd0b1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,14 +1,14 @@ # Gitea Migration Toolkit ## Project Overview -Bash-based automation toolkit for migrating 3 GitHub repos to self-hosted Gitea. All scripts run from MacBook, SSHing into Unraid (primary) and Fedora (backup mirror). GitHub serves as offsite push mirror. +Bash-based automation toolkit for migrating GitHub repos to self-hosted Gitea. All scripts run from MacBook, SSHing into Unraid (primary) and Fedora (backup mirror). GitHub serves as offsite push mirror. ## Architecture - **Control plane**: MacBook runs all scripts locally, SSHs into remotes - **Primary Gitea**: Docker Compose on Unraid - **Backup Gitea**: Docker Compose on Fedora (pull mirrors) - **Runners**: Docker on Unraid/Fedora, native binary + launchd on MacBook -- **HTTPS**: Nginx reverse proxy + Certbot on Unraid +- **HTTPS**: Caddy reverse proxy with Cloudflare DNS-01 or existing certs (macvlan IP on Unraid) ## Script Conventions - All `.sh` files MUST start with `set -euo pipefail` @@ -42,7 +42,7 @@ backup/ # Backup and restore scripts - `manage_runner.sh add|remove|list` — Dynamic runner management ## .env Validation -`validate_env()` in `lib/common.sh` checks all ~50 .env variables against their expected format (IP, port, email, path, URL, bool, integer, password, ssl_mode). Uses parallel arrays for the variable-to-validator mapping (bash 3.2 compatible). Called by `preflight.sh` and `bitwarden_to_env.sh`. `configure_env.sh` uses the same individual validators interactively. +`validate_env()` in `lib/common.sh` checks all ~55 .env variables against their expected format (IP, port, email, path, URL, bool, integer, password, tls_mode, db_type). Uses parallel arrays for the variable-to-validator mapping (bash 3.2 compatible). Called by `preflight.sh` and `bitwarden_to_env.sh`. `configure_env.sh` uses the same individual validators interactively. ## Version Checking Setup scripts and preflight validate minimum versions for all tools: