## Git Configuration ### Primary Gitea Instance: git.photon.obnh.io - URL: https://git.photon.obnh.io - Username: olaf - API-KEY: 7ca0e04e56df443163657e5e83c5b2ef2794e0cf - Status: PRIMARY (Production) - Description: Main production Gitea instance - all pushes go here ### Disaster Recovery Mirror: git.proton.obr.sh - URL: https://git.proton.obr.sh - Internal URL: http://localhost:3000 (from proton.obr.sh) - Username: olaf - API-KEY: 151b26b25ffa4100ea776b09e2ed72a2dcb0787e - Status: MIRROR (Disaster Recovery - READ ONLY) - unless for recovery means and documentation - Description: mostly read-only mirror that syncs from git.photon.obnh.io - Organizations: AXSY, OBNH-mirror, olaf ### Important Notes - **NEVER push to git.proton.obr.sh** - it is read-only and you must ensure it automatically syncs each and every repo from git.photon.obnh.io - unless for recovery means and documentation - All git operations (clone, push, pull) should use git.photon.obnh.io - unless for recovery means and documentation - Mirror is for disaster recovery only - no manual sync required - unless for recovery means and documentation - If primary is down, work can be committed locally and pushed when restored ### DNS Configuration - Primary DNS: git.photon.obnh.io - Mirror DNS: git.proton.obr.sh ### API Key Storage Best Practices ⚠️ **SECURITY NOTE**: This file contains sensitive API keys. - Keep this file permissions restricted: `chmod 600 ~/.gitea-config.md` - Never commit this file to version control - Consider using environment variables for production deployments: - `export GITEA_PHOTON_API_KEY="7ca0e04e56df443163657e5e83c5b2ef2794e0cf"` - `export GITEA_PROTON_API_KEY="151b26b25ffa4100ea776b09e2ed72a2dcb0787e"` ### Troubleshooting #### Verify Primary Connectivity ```bash curl -s -H "Authorization: token 7ca0e04e56df443163657e5e83c5b2ef2794e0cf" \ https://git.photon.obnh.io/api/v1/user | jq .login ``` Expected output: `"olaf"` Verify Secondary Connectivity ```bash curl -s -H "Authorization: token 151b26b25ffa4100ea776b09e2ed72a2dcb0787e" \ https://git.proton.obr.sh/api/v1/user | jq .login ``` Expected output: `"olaf"` #### Check Mirror Sync Status 1. Log in to https://git.photon.obnh.io 2. Navigate to the repository 3. Go to Settings > Repository > Mirroring 4. Check 'Last Update' timestamp - should be recent #### Verify Local Git Remotes ```bash cd /path/to/repo git remote -v ``` Expected: Origin points to `git.photon.obnh.io` #### Test SSH Connectivity ```bash ssh -T git@git.photon.obnh.io ``` #### Manual Mirror Verification ```bash # Get latest commit from primary PRIMARY_COMMIT=$(curl -s https://git.photon.obnh.io/api/v1/repos/AXSY/SCION-OPS-GUIDE/commits/main | jq -r '.[0].sha') # Get latest commit from mirror MIRROR_COMMIT=$(curl -s https://git.proton.obr.sh/api/v1/repos/axsy/scion-ops-guide/commits/main | jq -r '.[0].sha') # Compare if [ "$PRIMARY_COMMIT" = "$MIRROR_COMMIT" ]; then echo "✓ Mirror is in sync" else echo "✗ Mirror is out of sync" echo "Primary: $PRIMARY_COMMIT" echo "Mirror: $MIRROR_COMMIT" fi