Co-authored-by: Cursor <cursoragent@cursor.com>
4.9 KiB
Complete Deployment Guide - All Tasks
This document provides a comprehensive guide to complete all deployment tasks.
Current Status
✅ Completed:
- Proxmox connections verified
- Environment variables configured
- All setup scripts created
- Documentation complete
⏳ In Progress:
- VM creation (requires Proxmox Web UI)
Step-by-Step Deployment
Step 1: Create All VMs
Access Proxmox Web UI:
- URL: https://192.168.1.206:8006
- Username:
root@pam - Password: (from
.envfile:PVE_ROOT_PASS)
Create these VMs (see CREATE_VMS.md for details):
-
Cloudflare Tunnel VM (ID: 100)
- Name:
cloudflare-tunnel - IP: 192.168.1.60
- Specs: 2 CPU, 4GB RAM, 40GB disk
- Name:
-
K3s Master VM (ID: 101)
- Name:
k3s-master - IP: 192.168.1.188
- Specs: 4 CPU, 8GB RAM, 80GB disk
- Name:
-
Git Server VM (ID: 102)
- Name:
git-server - IP: 192.168.1.121
- Specs: 4 CPU, 8GB RAM, 100GB disk
- Name:
-
Observability VM (ID: 103)
- Name:
observability - IP: 192.168.1.82
- Specs: 4 CPU, 8GB RAM, 200GB disk
- Name:
Step 2: Install OS on Each VM
For each VM:
- Boot from Ubuntu 22.04 LTS ISO
- Complete installation
- Configure static IP addresses (see VM IPs above)
- Gateway: 192.168.1.254
- DNS: 8.8.8.8
Step 3: Run Setup Scripts
Option A: Automated (if SSH access configured)
./scripts/deploy-all-services.sh
Option B: Manual (recommended for first-time)
For each VM, SSH and run the appropriate script:
Cloudflare Tunnel VM:
ssh user@192.168.1.60
# Copy scripts/setup-cloudflare-tunnel.sh to VM
sudo bash /path/to/setup-cloudflare-tunnel.sh
K3s VM:
ssh user@192.168.1.188
# Copy scripts/setup-k3s.sh to VM
sudo bash /path/to/setup-k3s.sh
Git Server VM:
ssh user@192.168.1.121
# Copy scripts/setup-git-server.sh to VM
sudo bash /path/to/setup-git-server.sh
Observability VM:
ssh user@192.168.1.82
# Copy scripts/setup-observability.sh to VM
sudo bash /path/to/setup-observability.sh
Step 4: Configure Services
Cloudflare Tunnel
-
Complete tunnel authentication:
ssh user@192.168.1.60 sudo cloudflared tunnel login sudo cloudflared tunnel create azure-stack-hci -
Update
/etc/cloudflared/config.ymlwith your domain -
Configure DNS records in Cloudflare Dashboard
-
Set up Zero Trust policies
See docs/cloudflare-integration.md for details.
K3s
-
Verify cluster:
ssh user@192.168.1.188 export KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl get nodes -
Create namespaces:
kubectl create namespace blockchain kubectl create namespace monitoring kubectl create namespace hc-stack -
Deploy ingress controller and cert-manager
Git Server
-
Access Gitea: http://192.168.1.121:3000
-
Complete initial setup
-
Create GitOps repository
-
Configure SSH keys
Observability
-
Access Grafana: http://192.168.1.82:3000
- Default: admin/admin (change on first login)
-
Add Prometheus data source: http://localhost:9090
-
Import dashboards
-
Configure alerting
Step 5: Deploy HC Stack Services
Once K3s is ready:
# Deploy services via Helm or GitOps
kubectl apply -f gitops/apps/besu/
kubectl apply -f gitops/apps/firefly/
kubectl apply -f gitops/apps/chainlink-ccip/
kubectl apply -f gitops/apps/blockscout/
Step 6: Configure GitOps (Optional)
-
Set up Flux:
flux install flux create source git gitops-repo --url=http://192.168.1.121:3000/user/gitops-repo.git flux create kustomization apps --source=gitops-repo --path=./apps -
Verify sync:
flux get kustomizations
Verification Checklist
- All VMs created and running
- OS installed on all VMs
- Cloudflare Tunnel configured and running
- K3s cluster operational
- Git server accessible
- Observability stack running
- HC Stack services deployed
- All services accessible via Cloudflare Tunnel
Troubleshooting
VM Creation Issues
- Check Proxmox storage availability
- Verify network bridge configuration
- Ensure sufficient resources
Service Setup Issues
- Check network connectivity:
ping <vm-ip> - Verify SSH access
- Check service logs:
journalctl -u <service> -f
Cloudflare Tunnel Issues
- Verify tunnel token in
.env - Check DNS records
- Review tunnel logs:
journalctl -u cloudflared -f
Quick Reference
Proxmox:
- ML110: https://192.168.1.206:8006
- R630: https://192.168.1.49:8006
Services:
- Cloudflare Tunnel: 192.168.1.60
- K3s: 192.168.1.188:6443
- Gitea: http://192.168.1.121:3000
- Prometheus: http://192.168.1.82:9090
- Grafana: http://192.168.1.82:3000
Documentation:
CREATE_VMS.md- VM creation guideQUICK_START.md- Quick referenceDEPLOYMENT_WITHOUT_AZURE.md- Full deployment planDEPLOYMENT_CHECKLIST.md- Progress tracker