mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
This squashes all local history (768 commits) onto the scrubbed PR #90 baseline. Individual commits were lost during filter-repo corruption; the working tree content is preserved intact. Build: N/A (working tree state only)
6.6 KiB
6.6 KiB
Proxmox VPS Deployment Status
REALITY CHECK — 2026-05-21: This document describes a historical state. The Netcup VPS (46.232.249.226) was reinstalled to Debian 13 and now appears in Tailscale as 361395-1 (100.72.130.76). The Proxmox/LXC/Authentik stack described below no longer exists on this machine. The current state is:
- OS: Debian 13 (OpenSSH_10.0p2 Debian-7+deb13u4)
- Tailscale: 361395-1 / 100.72.130.76
- SSH: key auth denied (needs root password or provider console recovery)
- Public IP: 46.232.249.226 (netcup upstream filtering ports 80/443) Keep this file as archive only.
Netcup VPS (46.232.249.226 / 2a03:4000:2b:468:980e:3bff:fea5:65aa)
Completed
1. Authentik in LXC 100
- Container: Debian 13, CT 100,
authentikhostname - Network:
192.168.100.100onvmbr0with NAT/MASQUERADE for external IPv4 - Services: Docker, PostgreSQL 16, Redis
- Authentik:
ghcr.io/goauthentik/server:2025.4running- Server on
192.168.100.100:9000 - Worker healthy
- Default admin:
akadmin/authentik(change on first login)
- Server on
2. Caddy Reverse Proxy
- Binary: Custom Caddy v2.11.3 with Porkbun DNS plugin at
/opt/caddy/caddy - Service: Enabled and running (
systemctl status caddy) - Domains configured:
researchstack.info-> Proxmox Web UI (localhost:8006)auth.researchstack.info-> Authentik (192.168.100.100:9000)
- DNS: Porkbun A records updated to
46.232.249.226 - Certificates: Let's Encrypt DNS-01 obtained for both domains
3. Tailscale
- Status: Authenticated and active
- Tailscale IP:
100.72.130.76(node:361395-1) - Mesh: Can see
qfox-1,microvm-racknerd,nixos-laptop,dracocomp - PQC: Tailscale 1.98+ uses X25519Kyber768 hybrid key exchange automatically
4. Post-Quantum Cryptography
- SSH (VPS):
mlkem768x25519-sha256explicitly configured and preferred insshd_configandssh_config - Tailscale: Hybrid PQ already active
- Document:
4-Infrastructure/docs/pqc-posture.md
5. age / SOPS Secret Management
- Keypair: Generated at
~/.config/sops/age/keys.txt - Public key:
age1tp4vr565zkmvnyulatpyaj6z8zrz7q9mpaypz85yz8rty99crdasualxyr - Encrypted files:
.env4-Infrastructure/storage/restic/restic.env4-Infrastructure/infra/secrets/credentials.json4-Infrastructure/infra/secrets/appflowy.env4-Infrastructure/infra/secrets/tailscale-auth.key4-Infrastructure/deploy/cupfox/pre-infect-backup/porkbun.envAPI KEYS/racknerd_510bd9c_root.txtAPI KEYS/racknerd_solusvm_api.txt
- Config:
.sops.yamlat repo root;4-Infrastructure/k3s-flake/.sops.yamlupdated
6. Proxmox Backups
- Schedule: Daily at 03:00 CEST
- Target:
localstorage (zstd compressed) - Scope: CT 100 (authentik)
- Command to verify:
pvesh get /cluster/backup
7. BraidRouter - Distributed Inference Mesh
- Location: LXC 100, Docker container
braid-router-braid-router-1 - Endpoint:
http://192.168.100.100:9200/api/generate - Caddy:
braid.researchstack.info(internal/Caddy), Tailscale serve361395-1.tail4e7094.ts.net/braid/ - Topology: 3-strand braid with Sidon labels (1, 2, 4)
- Compute nodes:
Node Host Port Capacity Status vps-local192.168.100.111434 0.5 (small) Online - Ollama on Proxmox host qfox-1100.88.57.9611434 0.0 (offline) Offline - no open SSH ports nixos-laptop192.168.100.1:11435(proxied)- 1.5 (large) Online - Ollama via socat proxy - Proxy:
ollama-nixos-proxy.serviceon Proxmox host forwards*:11435->100.119.165.120:11434viasocat - Crossing matrix: 50/50 split between
vps-localandnixos-laptop - Test model:
qwen2.5:0.5b(397MB) deployed on both nodes - Verification:
curl -s -X POST http://192.168.100.100:9200/api/generate \ -H "Content-Type: application/json" \ -d '{"prompt": "Say hello", "options": {"model": "qwen2.5:0.5b"}}'
Blockers
1. Netcup Upstream Port Filtering
- Symptom: Ports 80, 443, and 8006 are unreachable from the public internet
- Impact: Caddy HTTPS and Proxmox Web UI are only accessible via:
- SSH tunnel:
ssh -L 18006:localhost:8006 root@46.232.249.226 - Tailscale:
https://100.72.130.76:8006(if Caddy is bypassed) or direct Tailscale access
- SSH tunnel:
- Remediation options:
- Contact netcup support to open ports 80/443
- Use Tailscale Funnel for public HTTPS access
- Use a separate reverse proxy VPS with open ports
2. Garage S3 Backup Integration
- Symptom: Garage S3 endpoint (
100.88.57.96:3900) unreachable from VPS over Tailscale - Impact: Proxmox backups cannot be offloaded to Garage S3 mesh
- Root cause: Garage on
qfox-1binds S3 API to localhost only - Remediation options:
- Reconfigure Garage on
qfox-1to bind0.0.0.0:3900or100.88.57.96:3900 - Set up an SSH tunnel from VPS to
qfox-1port 3900 - Run a local Garage node on the VPS and join the cluster
- Reconfigure Garage on
Access Cheat Sheet
# SSH to VPS
ssh root@46.232.249.226
# SSH tunnel to Proxmox Web UI
ssh -L 18006:localhost:8006 root@46.232.249.226
# Then open https://localhost:18006 in browser
# Access Authentik setup flow (via Tailscale or SSH tunnel to Caddy)
# Via Tailscale directly to LXC:
tailscale ssh root@361395-1
curl http://192.168.100.100:9000
# Decrypt secrets with sops
cd /home/allaun/Research Stack
sops --decrypt 4-Infrastructure/storage/restic/restic.env
# Edit encrypted secret
sops 4-Infrastructure/infra/secrets/credentials.json
Next Steps
- Open netcup ports 80/443 or switch to Tailscale Funnel for public HTTPS
- Reconfigure Garage S3 binding on
qfox-1for Tailscale-accessible S3 endpoint - Migrate Proxmox backups from
localto Garage S3 once connectivity is resolved - Change Authentik default password (
akadmin/authentik) on first login - Configure Authentik as identity provider for Proxmox (OIDC)
- Reboot VPS to activate
amd_pstateand IOMMU (optional, if VM passthrough desired) - Pull larger models on
nixos-laptop(e.g.,qwen2.5:7b,llama3.1:8b) for heavier inference - Fix qfox-1 access - enable SSH or Tailscale SSH server on the node for Ollama deployment
- Install Tailscale in LXC 100 to eliminate the socat proxy hop for nixos-laptop
- Add
vps-localOllama to systemd - currently running as manualollama serveon Proxmox host - Monitor BraidRouter - consider adding health checks and automatic node failover