Some checks failed
Test / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
227 lines
4.9 KiB
Markdown
227 lines
4.9 KiB
Markdown
# 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 `.env` file: `PVE_ROOT_PASS`)
|
|
|
|
**Create these VMs (see CREATE_VMS.md for details):**
|
|
|
|
1. **Cloudflare Tunnel VM** (ID: 100)
|
|
- Name: `cloudflare-tunnel`
|
|
- IP: 192.168.1.60
|
|
- Specs: 2 CPU, 4GB RAM, 40GB disk
|
|
|
|
2. **K3s Master VM** (ID: 101)
|
|
- Name: `k3s-master`
|
|
- IP: 192.168.1.188
|
|
- Specs: 4 CPU, 8GB RAM, 80GB disk
|
|
|
|
3. **Git Server VM** (ID: 102)
|
|
- Name: `git-server`
|
|
- IP: 192.168.1.121
|
|
- Specs: 4 CPU, 8GB RAM, 100GB disk
|
|
|
|
4. **Observability VM** (ID: 103)
|
|
- Name: `observability`
|
|
- IP: 192.168.1.82
|
|
- Specs: 4 CPU, 8GB RAM, 200GB disk
|
|
|
|
### Step 2: Install OS on Each VM
|
|
|
|
For each VM:
|
|
1. Boot from Ubuntu 22.04 LTS ISO
|
|
2. Complete installation
|
|
3. Configure static IP addresses (see VM IPs above)
|
|
4. Gateway: 192.168.1.254
|
|
5. DNS: 8.8.8.8
|
|
|
|
### Step 3: Run Setup Scripts
|
|
|
|
**Option A: Automated (if SSH access configured)**
|
|
|
|
```bash
|
|
./scripts/deploy-all-services.sh
|
|
```
|
|
|
|
**Option B: Manual (recommended for first-time)**
|
|
|
|
For each VM, SSH and run the appropriate script:
|
|
|
|
**Cloudflare Tunnel VM:**
|
|
```bash
|
|
ssh user@192.168.1.60
|
|
# Copy scripts/setup-cloudflare-tunnel.sh to VM
|
|
sudo bash /path/to/setup-cloudflare-tunnel.sh
|
|
```
|
|
|
|
**K3s VM:**
|
|
```bash
|
|
ssh user@192.168.1.188
|
|
# Copy scripts/setup-k3s.sh to VM
|
|
sudo bash /path/to/setup-k3s.sh
|
|
```
|
|
|
|
**Git Server VM:**
|
|
```bash
|
|
ssh user@192.168.1.121
|
|
# Copy scripts/setup-git-server.sh to VM
|
|
sudo bash /path/to/setup-git-server.sh
|
|
```
|
|
|
|
**Observability VM:**
|
|
```bash
|
|
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
|
|
|
|
1. Complete tunnel authentication:
|
|
```bash
|
|
ssh user@192.168.1.60
|
|
sudo cloudflared tunnel login
|
|
sudo cloudflared tunnel create azure-stack-hci
|
|
```
|
|
|
|
2. Update `/etc/cloudflared/config.yml` with your domain
|
|
|
|
3. Configure DNS records in Cloudflare Dashboard
|
|
|
|
4. Set up Zero Trust policies
|
|
|
|
See `docs/cloudflare-integration.md` for details.
|
|
|
|
#### K3s
|
|
|
|
1. Verify cluster:
|
|
```bash
|
|
ssh user@192.168.1.188
|
|
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
|
kubectl get nodes
|
|
```
|
|
|
|
2. Create namespaces:
|
|
```bash
|
|
kubectl create namespace blockchain
|
|
kubectl create namespace monitoring
|
|
kubectl create namespace hc-stack
|
|
```
|
|
|
|
3. Deploy ingress controller and cert-manager
|
|
|
|
#### Git Server
|
|
|
|
1. Access Gitea: http://192.168.1.121:3000
|
|
|
|
2. Complete initial setup
|
|
|
|
3. Create GitOps repository
|
|
|
|
4. Configure SSH keys
|
|
|
|
#### Observability
|
|
|
|
1. Access Grafana: http://192.168.1.82:3000
|
|
- Default: admin/admin (change on first login)
|
|
|
|
2. Add Prometheus data source: http://localhost:9090
|
|
|
|
3. Import dashboards
|
|
|
|
4. Configure alerting
|
|
|
|
### Step 5: Deploy HC Stack Services
|
|
|
|
Once K3s is ready:
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
1. Set up Flux:
|
|
```bash
|
|
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
|
|
```
|
|
|
|
2. Verify sync:
|
|
```bash
|
|
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 guide
|
|
- `QUICK_START.md` - Quick reference
|
|
- `DEPLOYMENT_WITHOUT_AZURE.md` - Full deployment plan
|
|
- `DEPLOYMENT_CHECKLIST.md` - Progress tracker
|
|
|