Add Caddy reverse proxy configuration and Kopia backup documentation

- Create INFRASTRUCTURE-COMPLETE.md: Comprehensive infrastructure overview
  * Network architecture and DNS configuration
  * Storage architecture for Nextcloud (1.4TB warm storage via LVM)
  * Kopia backup setup with Backblaze B2 integration
  * Caddy reverse proxy configuration (CT 202)
  * Security configuration and capacity planning

- Add Caddy reverse proxy configurations:
  * caddy-kopia-integration.md: Integration steps for CT 202
  * caddy-kopia-reverse-proxy.md: Complete configuration reference
  * caddy/Caddyfile: Production-ready configuration
  * caddy/docker-compose.yml: Docker deployment spec

- Add Kopia backup documentation:
  * kopia-nextcloud-backblaze-setup.md: Complete Kopia setup guide
  * Backup strategy, retention policies, and restore procedures

- Update related documentation with consolidated references

Status: Infrastructure documented and ready for deployment
This commit is contained in:
2026-04-27 11:46:47 -05:00
parent b792d5bf41
commit 821f954200
31 changed files with 2373 additions and 71 deletions
@@ -30,7 +30,7 @@ All VMs: automatically pull latest on startup
### Step 1: Create the Gitea Repository (2 minutes)
1. Go to: **http://192.168.88.200:3000**
1. Go to: **http://192.168.88.27:3002**
2. Click **+** (top right) → **New Repository**
3. Fill in:
- **Repository name**: `homelab-configs`
@@ -65,7 +65,7 @@ git add .
git commit -m "Initial homelab-configs setup"
# Add remote and push
git remote add origin http://192.168.88.200:3000/jgitta/homelab-configs.git
git remote add origin http://192.168.88.27:3002/jgitta/homelab-configs.git
git branch -M main
git push -u origin main
```
@@ -92,7 +92,7 @@ entrypoint: /bin/sh
command: |
-c "
mkdir -p /tmp/homelab-configs
git clone http://192.168.88.200:3000/jgitta/homelab-configs.git /tmp/homelab-configs || true
git clone http://192.168.88.27:3002/jgitta/homelab-configs.git /tmp/homelab-configs || true
mkdir -p /root/.opencode
cp /tmp/homelab-configs/opencode/config.json /root/.opencode/config.json
exec opencode
@@ -130,7 +130,7 @@ You should see:
```bash
# Clone the repo (or update if you have it)
git clone http://192.168.88.200:3000/jgitta/homelab-configs.git
git clone http://192.168.88.27:3002/jgitta/homelab-configs.git
cd homelab-configs
# Edit the config
@@ -180,14 +180,14 @@ homelab-configs/
### Check if Repository Created:
```bash
curl http://192.168.88.200:3000/api/v1/repos/jgitta/homelab-configs \
curl http://192.168.88.27:3002/api/v1/repos/jgitta/homelab-configs \
2>/dev/null | jq '.name'
# Should output: homelab-configs
```
### Check if Configs Are Accessible:
```bash
curl http://192.168.88.200:3000/jgitta/homelab-configs/raw/branch/main/opencode/config.json \
curl http://192.168.88.27:3002/jgitta/homelab-configs/raw/branch/main/opencode/config.json \
2>/dev/null | jq '.apiBase'
# Should output: "http://192.168.88.27:4000"
```
@@ -290,7 +290,7 @@ git push origin main
```
### "Could not fetch configs from Gitea"
- Check network access: `curl http://192.168.88.200:3000/`
- Check network access: `curl http://192.168.88.27:3002/`
- Verify Gitea repo exists and is public (or accessible)
- Check docker-compose logs: `docker-compose logs opencode`
+1 -1
View File
@@ -196,7 +196,7 @@ services:
entrypoint: /bin/sh
command: |
-c "
git clone http://192.168.88.200:3000/jgitta/homelab-configs.git /tmp/configs
git clone http://192.168.88.27:3002/jgitta/homelab-configs.git /tmp/configs
cp /tmp/configs/opencode/config.json ~/.opencode/config.json
exec ~/.opencode/bin/opencode
"
+2 -2
View File
@@ -7,7 +7,7 @@
-**LiteLLM Container**: Running on docker-server (siklos, 192.168.88.27:4000)
-**Docker Compose**: Configured and ready at `/opt/litellm/`
-**Configuration**: Git initialized with config files in `/opt/litellm/config/`
-**Gitea**: Ready at http://192.168.88.200:3000 for repository management
-**Gitea**: Ready at http://192.168.88.27:3002 for repository management
-**All VMs**: Network access confirmed to docker-server
---
@@ -162,7 +162,7 @@ Once tested, you can:
```bash
# Create litellm-config repo in Gitea, then:
cd /opt/litellm
git remote add gitea http://192.168.88.200:3000/jgitta/litellm-config.git
git remote add gitea http://192.168.88.27:3002/jgitta/litellm-config.git
git pull gitea master
```
+2 -2
View File
@@ -31,7 +31,7 @@ Master Key: litellm-local-key-change-in-production (⚠️ CHANGE THIS in produc
**Why?** This centralizes your API key management in version control. Updates to one place affect all VMs.
1. Open: **http://192.168.88.200:3000** (Your Gitea instance)
1. Open: **http://192.168.88.27:3002** (Your Gitea instance)
2. Login with your account (jgitta)
3. Click **"+"** icon (top right) → **"New Repository"**
4. Fill in:
@@ -147,7 +147,7 @@ docker-server (siklos @ 192.168.88.27)
├── litellm_config.yaml # Model definitions & API keys
└── README.md # Config documentation
Gitea (gitea @ 192.168.88.200:3000)
Gitea (gitea @ 192.168.88.27:3002)
└── jgitta/litellm-config/
└── (same files as above)
```
@@ -3,7 +3,7 @@
# This configuration pulls OpenCode config from centralized Gitea repository
# instead of managing per-VM configuration files
#
# Updated for centralized config management via http://192.168.88.200:3000
# Updated for centralized config management via http://192.168.88.27:3002
version: '3.8'
@@ -40,7 +40,7 @@ services:
mkdir -p /tmp/homelab-configs
# Clone the central configs repo
if git clone http://192.168.88.200:3000/jgitta/homelab-configs.git /tmp/homelab-configs; then
if git clone http://192.168.88.27:3002/jgitta/homelab-configs.git /tmp/homelab-configs; then
echo '✅ Configuration fetched successfully'
else
echo '⚠️ Could not fetch configs from Gitea, using defaults'
+5 -5
View File
@@ -3,7 +3,7 @@
**VM**: next (Nextcloud) @ 192.168.88.62
**OpenCode**: Running in Docker
**API Gateway**: LiteLLM @ 192.168.88.27:4000
**Config Source**: Gitea @ 192.168.88.200:3000
**Config Source**: Gitea @ 192.168.88.27:3002
---
@@ -70,7 +70,7 @@ docker exec opencode curl -s http://192.168.88.27:4000/models \
### 2.2 Can OpenCode Reach Gitea?
```bash
docker exec opencode curl -s http://192.168.88.200:3000/api/v1/version | jq '.version'
docker exec opencode curl -s http://192.168.88.27:3002/api/v1/version | jq '.version'
# Expected output: "1.21.4"
```
@@ -173,7 +173,7 @@ opencode
On your workstation:
```bash
# Clone the homelab-configs repo
git clone http://192.168.88.200:3000/jgitta/homelab-configs.git
git clone http://192.168.88.27:3002/jgitta/homelab-configs.git
cd homelab-configs
# Edit the config to use Claude instead
@@ -233,7 +233,7 @@ docker exec opencode curl -s http://192.168.88.27:4000/models \
echo ""
echo "Test 4: Gitea Reachability"
docker exec opencode curl -s http://192.168.88.200:3000/api/v1/version | jq '.version'
docker exec opencode curl -s http://192.168.88.27:3002/api/v1/version | jq '.version'
# Expected: "1.21.4"
echo ""
@@ -258,7 +258,7 @@ echo "✅ All tests completed!"
docker-compose logs opencode | grep -i "fetch\|clone"
# Check if Gitea is accessible
curl http://192.168.88.200:3000/
curl http://192.168.88.27:3002/
# If fails, Gitea might be down
# Manually update the config