docs: Add comprehensive setup guides
This commit is contained in:
parent
1b5269136a
commit
a2d063b328
|
|
@ -0,0 +1,295 @@
|
||||||
|
# DevMatrix Setup - CUSTOMIZED FOR YOUR PROXMOX
|
||||||
|
|
||||||
|
## Your Configuration Summary
|
||||||
|
|
||||||
|
| Setting | Value |
|
||||||
|
|---------|-------|
|
||||||
|
| **Proxmox IP** | 192.168.5.200 |
|
||||||
|
| **Network Bridge** | vmbr1 |
|
||||||
|
| **HDD Storage** | pve-main2 |
|
||||||
|
| **Future NVMe Storage** | pve-main |
|
||||||
|
| **TrueNAS IP** | 192.168.5.195 |
|
||||||
|
| **TrueNAS Dataset** | NAS2 |
|
||||||
|
| **VM ID Range** | 300-320 |
|
||||||
|
|
||||||
|
## VM Network Configuration
|
||||||
|
|
||||||
|
| VM ID | Name | IP Address | Purpose |
|
||||||
|
|-------|------|------------|---------|
|
||||||
|
| 300 | OpenClaw-DevMatrix | 192.168.5.210 | Main development environment |
|
||||||
|
| 301 | Windows-LTSC-Test | 192.168.5.211 | Windows testing VM |
|
||||||
|
| 302 | Android-Emulator | 192.168.5.212 | Android/mobile testing |
|
||||||
|
|
||||||
|
**Gateway:** 192.168.5.1
|
||||||
|
**DNS:** 8.8.8.8, 1.1.1.1
|
||||||
|
|
||||||
|
## Storage Layout
|
||||||
|
|
||||||
|
### Current (HDD - pve-main2)
|
||||||
|
|
||||||
|
| VM | OS Disk | Data Disk | Total |
|
||||||
|
|----|---------|-----------|-------|
|
||||||
|
| 300 | 200GB | 200GB | 400GB |
|
||||||
|
| 301 | 100GB | - | 100GB |
|
||||||
|
| 302 | 50GB | - | 50GB |
|
||||||
|
| Reserved | - | - | 150GB |
|
||||||
|
| **Total** | **350GB** | **200GB** | **550GB** |
|
||||||
|
|
||||||
|
### Future (NVMe - pve-main)
|
||||||
|
After migration, OS disks move to NVMe for better performance:
|
||||||
|
|
||||||
|
| VM | OS Disk (NVMe) | Data Disk (HDD) |
|
||||||
|
|----|----------------|-----------------|
|
||||||
|
| 300 | 200GB | 200GB |
|
||||||
|
| 301 | 100GB | - |
|
||||||
|
| 302 | 50GB | - |
|
||||||
|
|
||||||
|
## TrueNAS Integration
|
||||||
|
|
||||||
|
### Shares to Create on TrueNAS
|
||||||
|
|
||||||
|
Path: `NAS2/devmatrix/`
|
||||||
|
|
||||||
|
```
|
||||||
|
NAS2/
|
||||||
|
└── devmatrix/
|
||||||
|
├── projects/ # Project storage (read/write)
|
||||||
|
├── backups/ # Backup storage (read/write)
|
||||||
|
├── iso-archive/ # ISO storage (read-only)
|
||||||
|
└── shared/ # Shared files (read/write)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mount Points in VM 300
|
||||||
|
|
||||||
|
| TrueNAS Path | Local Mount | Usage |
|
||||||
|
|--------------|-------------|-------|
|
||||||
|
| `/mnt/NAS2/devmatrix/projects` | `/mnt/truenas/projects` | Store projects |
|
||||||
|
| `/mnt/NAS2/devmatrix/backups` | `/mnt/truenas/backups` | Automated backups |
|
||||||
|
| `/mnt/NAS2/devmatrix/iso-archive` | `/mnt/truenas/iso-archive` | Store ISOs |
|
||||||
|
| `/mnt/NAS2/devmatrix/shared` | `/mnt/truenas/shared` | Shared files |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Start Commands
|
||||||
|
|
||||||
|
### Step 1: Transfer Scripts to Proxmox
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# From any machine with SSH access to Proxmox
|
||||||
|
scp setup_devmatrix_proxmox_custom.sh root@192.168.5.200:/root/
|
||||||
|
scp setup_openclaw_dev.sh root@192.168.5.200:/root/
|
||||||
|
scp setup_windows_vm.ps1 root@192.168.5.200:/root/
|
||||||
|
scp setup_truenas.sh root@192.168.5.200:/root/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Run Proxmox Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# SSH into Proxmox
|
||||||
|
ssh root@192.168.5.200
|
||||||
|
|
||||||
|
# Make script executable and run
|
||||||
|
chmod +x setup_devmatrix_proxmox_custom.sh
|
||||||
|
./setup_devmatrix_proxmox_custom.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Install Ubuntu on VM 300
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start VM
|
||||||
|
qm start 300
|
||||||
|
|
||||||
|
# Connect to console (via Proxmox web UI or CLI)
|
||||||
|
qm console 300
|
||||||
|
|
||||||
|
# Install Ubuntu 22.04 Server with these settings:
|
||||||
|
# - Network: DHCP (will get 192.168.5.210)
|
||||||
|
# - Username: devmatrix
|
||||||
|
# - Import SSH key from Proxmox host
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Setup Dev Environment (Inside VM 300)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# SSH into VM 300
|
||||||
|
ssh devmatrix@192.168.5.210
|
||||||
|
|
||||||
|
# Run setup
|
||||||
|
chmod +x setup_openclaw_dev.sh
|
||||||
|
./setup_openclaw_dev.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Configure TrueNAS (Inside VM 300)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# After setting up shares on TrueNAS web UI
|
||||||
|
chmod +x setup_truenas.sh
|
||||||
|
./setup_truenas.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 6: Configure API Keys (YOU DO THIS)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Inside VM 300
|
||||||
|
~/scripts/configure_api_keys.sh
|
||||||
|
|
||||||
|
# Enter your:
|
||||||
|
# - Kimi API Key
|
||||||
|
# - Antigravity API Key
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 7: Install Windows on VM 301
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start Windows VM
|
||||||
|
qm start 301
|
||||||
|
|
||||||
|
# Install Windows via console
|
||||||
|
# Then run setup_windows_vm.ps1 as Administrator
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Daily Use Commands
|
||||||
|
|
||||||
|
### VM Control
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start/stop VMs from Proxmox
|
||||||
|
qm start 300 # Start Dev VM
|
||||||
|
qm stop 300 # Stop Dev VM
|
||||||
|
qm status 300 # Check status
|
||||||
|
|
||||||
|
# Or from inside VM 300
|
||||||
|
~/scripts/vm_control.sh win-start # Start Windows
|
||||||
|
~/scripts/vm_control.sh win-stop # Stop Windows
|
||||||
|
~/scripts/vm_control.sh win-status # Check Windows status
|
||||||
|
```
|
||||||
|
|
||||||
|
### Development
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Access VS Code Server
|
||||||
|
http://192.168.5.210:8080
|
||||||
|
# Password: devmatrix-setup-2024
|
||||||
|
|
||||||
|
# Create new project
|
||||||
|
~/scripts/create_project.sh MyApp mobile
|
||||||
|
|
||||||
|
# Test on Windows
|
||||||
|
~/scripts/test_on_windows.sh /path/to/project
|
||||||
|
|
||||||
|
# Backup to TrueNAS
|
||||||
|
~/scripts/backup_to_truenas.sh
|
||||||
|
|
||||||
|
# Restore from TrueNAS
|
||||||
|
~/scripts/restore_from_truenas.sh 2024-02-16
|
||||||
|
```
|
||||||
|
|
||||||
|
### Migration to NVMe (When Ready)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On Proxmox host, after installing NVMe and adding as 'pve-main' storage
|
||||||
|
/root/devmatrix-scripts/migrate_to_nvme.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Locations
|
||||||
|
|
||||||
|
### On Proxmox Host
|
||||||
|
|
||||||
|
| File | Location | Purpose |
|
||||||
|
|------|----------|---------|
|
||||||
|
| VM Info | `~/devmatrix_vm_info.txt` | Complete VM documentation |
|
||||||
|
| SSH Keys | `~/.ssh/devmatrix_id_rsa` | Private key for VM access |
|
||||||
|
| Migration Script | `/root/devmatrix-scripts/migrate_to_nvme.sh` | NVMe migration tool |
|
||||||
|
| ISOs | `/var/lib/vz/template/iso/` | VM installation media |
|
||||||
|
|
||||||
|
### Inside VM 300 (Main Dev VM)
|
||||||
|
|
||||||
|
| Directory | Purpose |
|
||||||
|
|-----------|---------|
|
||||||
|
| `~/projects` | Local project storage |
|
||||||
|
| `~/projects-nas` | TrueNAS project storage (symlink) |
|
||||||
|
| `~/scripts` | Helper scripts |
|
||||||
|
| `~/.openclaw` | OpenClaw configuration |
|
||||||
|
| `/mnt/truenas/` | Mounted TrueNAS shares |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Can't Access VM 300
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# From Proxmox, check VM status
|
||||||
|
qm status 300
|
||||||
|
qm log 300
|
||||||
|
|
||||||
|
# Check IP assignment
|
||||||
|
qm guest exec 300 -- ip addr show
|
||||||
|
|
||||||
|
# Reset network if needed
|
||||||
|
qm guest exec 300 -- netplan apply
|
||||||
|
```
|
||||||
|
|
||||||
|
### TrueNAS Mounts Not Working
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check connectivity
|
||||||
|
ping 192.168.5.195
|
||||||
|
|
||||||
|
# List available shares
|
||||||
|
showmount -e 192.168.5.195
|
||||||
|
|
||||||
|
# Check mounts
|
||||||
|
df -h | grep truenas
|
||||||
|
|
||||||
|
# Remount
|
||||||
|
sudo mount -a
|
||||||
|
```
|
||||||
|
|
||||||
|
### Slow Performance on HDD
|
||||||
|
|
||||||
|
Normal for initial setup. After migration to NVMe:
|
||||||
|
- VM boot time: ~10x faster
|
||||||
|
- Disk I/O: ~5x faster
|
||||||
|
- Compilation: ~2-3x faster
|
||||||
|
|
||||||
|
### Out of Disk Space
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check usage
|
||||||
|
pvesm status
|
||||||
|
|
||||||
|
# Expand VM disk if needed
|
||||||
|
qm resize 300 scsi0 +50G
|
||||||
|
|
||||||
|
# Then expand filesystem inside VM
|
||||||
|
sudo resize2fs /dev/sda1
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps After Setup
|
||||||
|
|
||||||
|
1. ✅ Install Ubuntu on VM 300
|
||||||
|
2. ✅ Run `setup_openclaw_dev.sh`
|
||||||
|
3. ✅ Configure TrueNAS shares and run `setup_truenas.sh`
|
||||||
|
4. ✅ Add API keys with `configure_api_keys.sh`
|
||||||
|
5. ✅ Install Windows on VM 301
|
||||||
|
6. ✅ Test everything works
|
||||||
|
7. 🚀 Start building with AI-powered development!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you encounter issues:
|
||||||
|
1. Check `~/devmatrix_vm_info.txt` for reference
|
||||||
|
2. Review logs: `qm log <vmid>`
|
||||||
|
3. Run diagnostics from this guide
|
||||||
|
4. Ask me for help with specific errors!
|
||||||
|
|
||||||
|
**Ready to set up your DevMatrix?** Start with Step 1 above! 🚀
|
||||||
|
|
@ -0,0 +1,433 @@
|
||||||
|
# DevMatrix Proxmox Setup - Complete Guide
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This guide will set up a complete autonomous development environment on your Proxmox server with:
|
||||||
|
- **VM 300**: OpenClaw DevMatrix (Ubuntu 22.04) - 32GB RAM, 16 cores
|
||||||
|
- **VM 301**: Windows 11 LTSC IoT Test VM - 16GB RAM, 8 cores
|
||||||
|
- **VM 302**: Android Emulator VM - 8GB RAM, 4 cores
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Proxmox VE 7.x or 8.x
|
||||||
|
- Network bridge `vmbr1` configured
|
||||||
|
- At least 56GB RAM available (32+16+8)
|
||||||
|
- At least 750GB storage available
|
||||||
|
- Root access to Proxmox host
|
||||||
|
|
||||||
|
## Files Included
|
||||||
|
|
||||||
|
1. `setup_devmatrix_proxmox.sh` - Main Proxmox setup script
|
||||||
|
2. `setup_openclaw_dev.sh` - Ubuntu VM environment setup
|
||||||
|
3. `setup_windows_vm.ps1` - Windows VM post-install setup
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 1: Transfer Scripts to Proxmox
|
||||||
|
|
||||||
|
### Option A: SSH (Recommended)
|
||||||
|
```bash
|
||||||
|
# From your local machine, copy scripts to Proxmox
|
||||||
|
scp setup_devmatrix_proxmox.sh root@192.168.5.200:/root/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option B: Proxmox Shell
|
||||||
|
1. Go to https://192.168.5.200:8006
|
||||||
|
2. Select your node → Shell
|
||||||
|
3. Use `wget` or `curl` to download scripts
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 2: Run Proxmox Setup Script
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# SSH into Proxmox
|
||||||
|
ssh root@192.168.5.200
|
||||||
|
|
||||||
|
# Make script executable
|
||||||
|
chmod +x setup_devmatrix_proxmox.sh
|
||||||
|
|
||||||
|
# Run setup
|
||||||
|
./setup_devmatrix_proxmox.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### What the script does:
|
||||||
|
1. ✅ Checks vmbr1 exists
|
||||||
|
2. ✅ Shows available storage - you pick one
|
||||||
|
3. ✅ Verifies VM IDs 300-302 are available
|
||||||
|
4. ✅ Checks available RAM and disk space
|
||||||
|
5. ✅ Downloads Ubuntu 22.04 Server ISO
|
||||||
|
6. ✅ Prompts for Windows ISO (you provide LTSC IoT)
|
||||||
|
7. ✅ Creates VM 300: OpenClaw DevMatrix
|
||||||
|
8. ✅ Creates VM 301: Windows LTSC Test
|
||||||
|
9. ✅ Creates VM 302: Android Emulator
|
||||||
|
10. ✅ Generates SSH keys for access
|
||||||
|
11. ✅ Saves VM info to ~/devmatrix_vm_info.txt
|
||||||
|
|
||||||
|
### Expected Output:
|
||||||
|
```
|
||||||
|
[DevMatrix] 🔍 Running pre-flight checks...
|
||||||
|
[DevMatrix] ✓ Network bridge 'vmbr1' found
|
||||||
|
[DevMatrix] 📦 Checking available storage...
|
||||||
|
...
|
||||||
|
[DevMatrix] 🎉 DevMatrix VMs Created Successfully!
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 3: Install Ubuntu on VM 300
|
||||||
|
|
||||||
|
### Start the VM:
|
||||||
|
```bash
|
||||||
|
qm start 300
|
||||||
|
```
|
||||||
|
|
||||||
|
### Access Console:
|
||||||
|
- Proxmox Web UI → VM 300 → Console
|
||||||
|
- Or: `qm console 300` from Proxmox shell
|
||||||
|
|
||||||
|
### Install Ubuntu 22.04 Server:
|
||||||
|
1. Select "Try or Install Ubuntu Server"
|
||||||
|
2. Language: English
|
||||||
|
3. Keyboard layout: Your preference
|
||||||
|
4. Network: DHCP (should get IP from vmbr1)
|
||||||
|
5. Proxy: Leave blank
|
||||||
|
6. Mirror: Default
|
||||||
|
7. Storage: Use entire disk
|
||||||
|
8. Profile:
|
||||||
|
- Name: `devmatrix`
|
||||||
|
- Server name: `devmatrix`
|
||||||
|
- Username: `devmatrix`
|
||||||
|
- Password: [Choose a strong password]
|
||||||
|
9. SSH: Import SSH key (copy from ~/.ssh/devmatrix_id_rsa.pub on Proxmox)
|
||||||
|
10. Featured Server Snaps: None (we'll install everything manually)
|
||||||
|
11. Wait for installation to complete
|
||||||
|
12. Reboot when prompted
|
||||||
|
|
||||||
|
### After Reboot:
|
||||||
|
```bash
|
||||||
|
# Find VM IP address
|
||||||
|
qm guest exec 300 -- ip addr show | grep inet
|
||||||
|
|
||||||
|
# SSH into VM from Proxmox host
|
||||||
|
ssh -i ~/.ssh/devmatrix_id_rsa devmatrix@<vm-ip>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 4: Setup Dev Environment on VM 300
|
||||||
|
|
||||||
|
### Transfer setup script:
|
||||||
|
```bash
|
||||||
|
# From Proxmox host, copy script to VM
|
||||||
|
scp -i ~/.ssh/devmatrix_id_rsa setup_openclaw_dev.sh devmatrix@<vm-ip>:/home/devmatrix/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run setup:
|
||||||
|
```bash
|
||||||
|
# Inside VM (SSH session)
|
||||||
|
chmod +x setup_openclaw_dev.sh
|
||||||
|
./setup_openclaw_dev.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### This installs:
|
||||||
|
- OpenClaw (AI orchestrator)
|
||||||
|
- Node.js 20
|
||||||
|
- Python + development tools
|
||||||
|
- Docker
|
||||||
|
- Flutter (mobile development)
|
||||||
|
- .NET 8 (cross-platform)
|
||||||
|
- Rust
|
||||||
|
- Go
|
||||||
|
- Wine (Windows compatibility)
|
||||||
|
- Playwright (UI testing)
|
||||||
|
- PostgreSQL & Redis
|
||||||
|
- AWS CLI & Google Cloud SDK
|
||||||
|
- Kubernetes tools (kubectl, helm)
|
||||||
|
- Terraform
|
||||||
|
- VS Code Server (web-based IDE)
|
||||||
|
- VM control scripts
|
||||||
|
|
||||||
|
### Expected Duration:
|
||||||
|
- 15-30 minutes depending on internet speed
|
||||||
|
- Downloads ~5GB of packages
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 5: Configure API Keys (YOU DO THIS)
|
||||||
|
|
||||||
|
**⚠️ IMPORTANT: This is the ONLY step requiring your API keys**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Inside VM 300
|
||||||
|
~/scripts/configure_api_keys.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
You will be prompted for:
|
||||||
|
1. **Kimi API Key** - Get from https://kimi.moonshot.cn/
|
||||||
|
2. **Antigravity API Key** - From your provider
|
||||||
|
|
||||||
|
The script creates:
|
||||||
|
- `~/.openclaw/config/kimi.yaml`
|
||||||
|
- `~/.openclaw/config/antigravity.yaml`
|
||||||
|
|
||||||
|
Files are set to 600 permissions (owner read/write only).
|
||||||
|
|
||||||
|
### Test Configuration:
|
||||||
|
```bash
|
||||||
|
openclaw models list
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 6: Install Windows on VM 301
|
||||||
|
|
||||||
|
### Prerequisites:
|
||||||
|
You need Windows 11 Enterprise LTSC IoT ISO:
|
||||||
|
- Download from Microsoft Volume Licensing Service Center
|
||||||
|
- Or your organization's licensing portal
|
||||||
|
- Filename: `Win11_Ent_LTSC_IoT.iso`
|
||||||
|
- Place in: `/var/lib/vz/template/iso/` on Proxmox
|
||||||
|
|
||||||
|
### Start VM:
|
||||||
|
```bash
|
||||||
|
qm start 301
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install Windows:
|
||||||
|
1. Connect via Proxmox Console
|
||||||
|
2. Standard Windows 11 LTSC installation
|
||||||
|
3. Region/keyboard: Your preference
|
||||||
|
4. Network: Let it connect to vmbr1
|
||||||
|
5. Microsoft account: Skip (use offline account)
|
||||||
|
6. Username: `testuser`
|
||||||
|
7. Password: `DevMatrix2024!` (or your choice)
|
||||||
|
|
||||||
|
### Post-Install Setup:
|
||||||
|
1. Log in as testuser
|
||||||
|
2. Open PowerShell as Administrator
|
||||||
|
3. Transfer setup script:
|
||||||
|
```powershell
|
||||||
|
# From Proxmox, copy to VM
|
||||||
|
scp setup_windows_vm.ps1 testuser@<win-vm-ip>:C:/Scripts/
|
||||||
|
```
|
||||||
|
4. Run setup:
|
||||||
|
```powershell
|
||||||
|
cd C:\Scripts
|
||||||
|
.\setup_windows_vm.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
### This installs on Windows:
|
||||||
|
- OpenSSH Server
|
||||||
|
- Remote Desktop
|
||||||
|
- Chocolatey package manager
|
||||||
|
- Git, Python, Node.js, .NET, VS Code
|
||||||
|
- Playwright for UI testing
|
||||||
|
- Test automation scripts
|
||||||
|
|
||||||
|
### Reboot when complete.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 7: Install Android Emulator (VM 302 - Optional)
|
||||||
|
|
||||||
|
VM 302 is pre-configured with Ubuntu. You can either:
|
||||||
|
|
||||||
|
### Option A: Use as-is (lightweight Linux VM)
|
||||||
|
Good for testing Linux-specific code.
|
||||||
|
|
||||||
|
### Option B: Install Android Emulator
|
||||||
|
```bash
|
||||||
|
qm start 302
|
||||||
|
# Install Ubuntu Server
|
||||||
|
# Then install Android SDK + Emulator
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
### Start Development Session:
|
||||||
|
```bash
|
||||||
|
# SSH into main dev VM
|
||||||
|
ssh -i ~/.ssh/devmatrix_id_rsa devmatrix@192.168.5.x
|
||||||
|
|
||||||
|
# Access VS Code in browser
|
||||||
|
# http://192.168.5.x:8080
|
||||||
|
# Password: devmatrix-setup-2024
|
||||||
|
```
|
||||||
|
|
||||||
|
### Create New Project:
|
||||||
|
```bash
|
||||||
|
# Example: Create Flutter mobile app
|
||||||
|
openclaw swarm create "MyMobileApp" --type flutter --agents 4
|
||||||
|
|
||||||
|
# Example: Create React web app
|
||||||
|
openclaw swarm create "MyWebApp" --type react --agents 5
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test on Windows:
|
||||||
|
```bash
|
||||||
|
# From VM 300
|
||||||
|
~/scripts/vm_control.sh win-start
|
||||||
|
# Wait 60 seconds
|
||||||
|
~/scripts/test_on_windows.sh /path/to/your/dotnet/project
|
||||||
|
~/scripts/vm_control.sh win-stop
|
||||||
|
```
|
||||||
|
|
||||||
|
### Control VMs:
|
||||||
|
```bash
|
||||||
|
# Start Windows VM
|
||||||
|
~/scripts/vm_control.sh win-start
|
||||||
|
|
||||||
|
# Check status
|
||||||
|
~/scripts/vm_control.sh win-status
|
||||||
|
|
||||||
|
# Stop Windows VM
|
||||||
|
~/scripts/vm_control.sh win-stop
|
||||||
|
|
||||||
|
# Same for Android
|
||||||
|
~/scripts/vm_control.sh android-start
|
||||||
|
~/scripts/vm_control.sh android-stop
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Network Configuration
|
||||||
|
|
||||||
|
### Default IPs (via DHCP on vmbr1):
|
||||||
|
- VM 300 (Ubuntu): Assigned by DHCP
|
||||||
|
- VM 301 (Windows): Assigned by DHCP
|
||||||
|
- VM 302 (Android): Assigned by DHCP
|
||||||
|
|
||||||
|
### To Set Static IPs (recommended):
|
||||||
|
|
||||||
|
**On VM 300 (Ubuntu):**
|
||||||
|
```bash
|
||||||
|
sudo nano /etc/netplan/00-installer-config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Change to:
|
||||||
|
```yaml
|
||||||
|
network:
|
||||||
|
ethernets:
|
||||||
|
ens18:
|
||||||
|
dhcp4: no
|
||||||
|
addresses:
|
||||||
|
- 192.168.5.150/24
|
||||||
|
routes:
|
||||||
|
- to: default
|
||||||
|
via: 192.168.5.1
|
||||||
|
nameservers:
|
||||||
|
addresses: [8.8.8.8, 1.1.1.1]
|
||||||
|
version: 2
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo netplan apply
|
||||||
|
```
|
||||||
|
|
||||||
|
**On VM 301 (Windows):**
|
||||||
|
Settings → Network → Ethernet → Edit → Manual
|
||||||
|
- IP: 192.168.5.151
|
||||||
|
- Subnet: 255.255.255.0
|
||||||
|
- Gateway: 192.168.5.1
|
||||||
|
- DNS: 8.8.8.8
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### VM Won't Start:
|
||||||
|
```bash
|
||||||
|
# Check logs
|
||||||
|
qm log 300
|
||||||
|
|
||||||
|
# Check status
|
||||||
|
qm status 300
|
||||||
|
|
||||||
|
# Start with verbose
|
||||||
|
qm start 300 --verbose
|
||||||
|
```
|
||||||
|
|
||||||
|
### Can't SSH to VM:
|
||||||
|
```bash
|
||||||
|
# Test from Proxmox
|
||||||
|
qm guest exec 300 -- ping -c 1 8.8.8.8
|
||||||
|
|
||||||
|
# Check IP
|
||||||
|
qm guest exec 300 -- ip addr
|
||||||
|
|
||||||
|
# Check SSH service
|
||||||
|
qm guest exec 300 -- systemctl status ssh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows VM No Network:
|
||||||
|
```powershell
|
||||||
|
# In Windows PowerShell (Admin)
|
||||||
|
Get-NetAdapter
|
||||||
|
Get-NetIPAddress
|
||||||
|
Test-NetConnection 8.8.8.8
|
||||||
|
```
|
||||||
|
|
||||||
|
### Out of Disk Space:
|
||||||
|
```bash
|
||||||
|
# On Proxmox
|
||||||
|
pvesm status
|
||||||
|
|
||||||
|
# Expand VM disk
|
||||||
|
qm resize 300 scsi0 +100G
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Security Notes
|
||||||
|
|
||||||
|
1. **API Keys**: Only stored on VM 300, never transmitted
|
||||||
|
2. **SSH Keys**: Generated on Proxmox, private key stays on Proxmox
|
||||||
|
3. **Windows Password**: Change after setup if desired
|
||||||
|
4. **VS Code Password**: Change in ~/.config/code-server/config.yaml
|
||||||
|
5. **Firewall**: VMs use vmbr1 (presumably internal network)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Backup Strategy
|
||||||
|
|
||||||
|
### Create Snapshots:
|
||||||
|
```bash
|
||||||
|
# Snapshot before major changes
|
||||||
|
qm snapshot 300 pre-experiment
|
||||||
|
|
||||||
|
# Rollback if needed
|
||||||
|
qm rollback 300 pre-experiment
|
||||||
|
```
|
||||||
|
|
||||||
|
### Backup VM Configs:
|
||||||
|
```bash
|
||||||
|
# Backup to NAS/external
|
||||||
|
vzdump 300 301 302 --compress zstd --storage <your-backup-storage>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. ✅ Run Proxmox setup script
|
||||||
|
2. ✅ Install Ubuntu on VM 300
|
||||||
|
3. ✅ Run dev environment setup
|
||||||
|
4. ✅ Add your API keys
|
||||||
|
5. ✅ Install Windows on VM 301
|
||||||
|
6. ✅ Test the setup
|
||||||
|
7. 🚀 Start building with AI-powered development!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you encounter issues:
|
||||||
|
1. Check logs: `qm log <vmid>`
|
||||||
|
2. Review this guide
|
||||||
|
3. Check OpenClaw docs: https://docs.openclaw.ai
|
||||||
|
4. Ask me for help!
|
||||||
|
|
||||||
|
**Ready to build something amazing?** 🚀
|
||||||
|
|
@ -0,0 +1,584 @@
|
||||||
|
# DevMatrix Setup Checklist - TOMORROW'S TASKS
|
||||||
|
|
||||||
|
## 📋 Complete Setup Guide for Tomorrow
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 1: Gitea Setup (First Priority)
|
||||||
|
|
||||||
|
### Step 1.1: Create Gitea Repository for Scripts
|
||||||
|
|
||||||
|
**On your Gitea server (git.lemonlink.eu):**
|
||||||
|
|
||||||
|
1. **Log into Gitea web UI**
|
||||||
|
- URL: `https://git.lemonlink.eu`
|
||||||
|
- Login with your admin account
|
||||||
|
|
||||||
|
2. **Create New Repository**
|
||||||
|
- Click **+** → **New Repository**
|
||||||
|
- Owner: `impulsivefps` (or your username)
|
||||||
|
- Repository Name: `devmatrix-scripts`
|
||||||
|
- Description: `DevMatrix Proxmox/OpenClaw setup scripts`
|
||||||
|
- Visibility: ☑️ Private (recommended)
|
||||||
|
- Initialize: ☑️ Add README
|
||||||
|
- Click **Create Repository**
|
||||||
|
|
||||||
|
3. **Upload Scripts**
|
||||||
|
|
||||||
|
**Option A: Web Upload (Easiest)**
|
||||||
|
- Go to repository → **Upload File**
|
||||||
|
- Drag and drop these files:
|
||||||
|
- `setup_devmatrix_proxmox_custom.sh`
|
||||||
|
- `setup_openclaw_dev.sh`
|
||||||
|
- `setup_windows_vm.ps1`
|
||||||
|
- `setup_truenas.sh`
|
||||||
|
- `setup_truenas_shares.sh`
|
||||||
|
- Commit message: "Initial DevMatrix setup scripts"
|
||||||
|
- Click **Commit**
|
||||||
|
|
||||||
|
**Option B: Command Line**
|
||||||
|
```bash
|
||||||
|
# On your local machine where scripts are saved
|
||||||
|
mkdir devmatrix-scripts
|
||||||
|
cd devmatrix-scripts
|
||||||
|
|
||||||
|
# Copy scripts here
|
||||||
|
cp /path/to/scripts/*.sh .
|
||||||
|
cp /path/to/scripts/*.ps1 .
|
||||||
|
|
||||||
|
# Initialize and push
|
||||||
|
git init
|
||||||
|
git add .
|
||||||
|
git commit -m "Initial DevMatrix setup scripts"
|
||||||
|
git remote add origin https://git.lemonlink.eu/impulsivefps/devmatrix-scripts.git
|
||||||
|
git push -u origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Step 1.2: Create Gitea User for OpenClaw
|
||||||
|
|
||||||
|
**Purpose:** This user will be dedicated to the DevMatrix environment for automated git operations.
|
||||||
|
|
||||||
|
1. **Create New User**
|
||||||
|
- Gitea: **Site Administration** → **User Accounts** → **Create New Account**
|
||||||
|
- Username: `devmatrix-bot`
|
||||||
|
- Email: `devmatrix@yourdomain.com`
|
||||||
|
- Password: Generate strong password (save in password manager)
|
||||||
|
- ☑️ Send user registration notification (optional)
|
||||||
|
- Click **Create User**
|
||||||
|
|
||||||
|
2. **Generate Access Token**
|
||||||
|
- Log in AS the new `devmatrix-bot` user
|
||||||
|
- Go to **Settings** → **Applications** → **Generate New Token**
|
||||||
|
- Token Name: `devmatrix-access`
|
||||||
|
- Scopes: ☑️ `repo`, ☑️ `write:packages`
|
||||||
|
- Click **Generate Token**
|
||||||
|
- **COPY THE TOKEN IMMEDIATELY** (you can't see it again!)
|
||||||
|
- Save as: `GITEA_TOKEN=your_token_here`
|
||||||
|
|
||||||
|
3. **Add Bot User to Repository**
|
||||||
|
- Go to `devmatrix-scripts` repository
|
||||||
|
- **Settings** → **Collaborators** → **Add Collaborator**
|
||||||
|
- Username: `devmatrix-bot`
|
||||||
|
- Permission: **Write** (not Admin)
|
||||||
|
- Click **Add**
|
||||||
|
|
||||||
|
4. **Test Access**
|
||||||
|
```bash
|
||||||
|
# From DevMatrix VM (once it's running)
|
||||||
|
curl -H "Authorization: token YOUR_GITEA_TOKEN" \
|
||||||
|
https://git.lemonlink.eu/api/v1/user
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 2: TrueNAS Share Setup
|
||||||
|
|
||||||
|
### Step 2.1: SSH into TrueNAS
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# From any machine on your network
|
||||||
|
ssh admin@192.168.5.195
|
||||||
|
|
||||||
|
# Switch to root
|
||||||
|
sudo -i
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2.2: Run the Share Setup Script
|
||||||
|
|
||||||
|
Copy and paste this entire script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
# TrueNAS Share Setup Script for DevMatrix
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
DATASET_NAME="NAS2"
|
||||||
|
SHARE_PREFIX="devmatrix"
|
||||||
|
NETWORK_ALLOW="192.168.5.0/24"
|
||||||
|
|
||||||
|
echo "☁️ Setting up TrueNAS shares for DevMatrix..."
|
||||||
|
|
||||||
|
# Create dataset structure
|
||||||
|
echo "📁 Creating datasets..."
|
||||||
|
if ! zfs list "$DATASET_NAME/$SHARE_PREFIX" >/dev/null 2>&1; then
|
||||||
|
zfs create "$DATASET_NAME/$SHARE_PREFIX"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for subdir in projects backups iso-archive shared; do
|
||||||
|
dataset_path="$DATASET_NAME/$SHARE_PREFIX/$subdir"
|
||||||
|
if ! zfs list "$dataset_path" >/dev/null 2>&1; then
|
||||||
|
zfs create "$dataset_path"
|
||||||
|
echo "✓ Created: $dataset_path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Set permissions
|
||||||
|
echo "🔐 Setting permissions..."
|
||||||
|
for subdir in projects backups iso-archive shared; do
|
||||||
|
mountpoint=$(zfs get -H -o value mountpoint "$DATASET_NAME/$SHARE_PREFIX/$subdir")
|
||||||
|
chown -R nobody:nogroup "$mountpoint"
|
||||||
|
chmod -R 777 "$mountpoint"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Create NFS shares
|
||||||
|
echo "🔗 Creating NFS shares..."
|
||||||
|
mountpoint_base=$(zfs get -H -o value mountpoint "$DATASET_NAME")
|
||||||
|
|
||||||
|
for share in projects backups iso-archive shared; do
|
||||||
|
path="$mountpoint_base/$SHARE_PREFIX/$share"
|
||||||
|
if ! midclt call sharing.nfs.query "[[\"path\",\"=\",\"$path\"]]" | grep -q "$path"; then
|
||||||
|
midclt call sharing.nfs.create "{
|
||||||
|
\"path\": \"$path\",
|
||||||
|
\"comment\": \"DevMatrix $share\",
|
||||||
|
\"hosts\": [\"$NETWORK_ALLOW\"],
|
||||||
|
\"ro\": false,
|
||||||
|
\"maproot_user\": \"root\",
|
||||||
|
\"maproot_group\": \"root\",
|
||||||
|
\"security\": [\"sys\"]
|
||||||
|
}" > /dev/null
|
||||||
|
echo "✓ NFS share: $share"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Enable NFS service
|
||||||
|
if ! midclt call service.query "[[\"service\",\"=\",\"nfs\"]]" | grep -q '"state": "RUNNING"'; then
|
||||||
|
midclt call service.start "nfs" > /dev/null
|
||||||
|
midclt call service.update "nfs" '{"enable": true}' > /dev/null
|
||||||
|
echo "✓ NFS service enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create SMB shares
|
||||||
|
echo "🖥️ Creating SMB shares..."
|
||||||
|
if ! midclt call service.query "[[\"service\",\"=\",\"cifs\"]]" | grep -q '"state": "RUNNING"'; then
|
||||||
|
midclt call service.start "cifs" > /dev/null
|
||||||
|
midclt call service.update "cifs" '{"enable": true}' > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
for share in projects backups shared; do
|
||||||
|
path="$mountpoint_base/$SHARE_PREFIX/$share"
|
||||||
|
if ! midclt call sharing.smb.query "[[\"path\",\"=\",\"$path\"]]" | grep -q "$path"; then
|
||||||
|
midclt call sharing.smb.create "{
|
||||||
|
\"path\": \"$path\",
|
||||||
|
\"name\": \"devmatrix-$share\",
|
||||||
|
\"comment\": \"DevMatrix $share\",
|
||||||
|
\"browseable\": true,
|
||||||
|
\"readonly\": false,
|
||||||
|
\"guestok\": true
|
||||||
|
}" > /dev/null
|
||||||
|
echo "✓ SMB share: devmatrix-$share"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🎉 TrueNAS shares setup complete!"
|
||||||
|
echo "NFS: $mountpoint_base/$SHARE_PREFIX/{projects,backups,iso-archive,shared}"
|
||||||
|
echo "SMB: \\\\$(hostname)\\devmatrix-{projects,backups,shared}"
|
||||||
|
```
|
||||||
|
|
||||||
|
**After running, verify:**
|
||||||
|
```bash
|
||||||
|
# List datasets
|
||||||
|
zfs list | grep devmatrix
|
||||||
|
|
||||||
|
# List NFS shares
|
||||||
|
midclt call sharing.nfs.query | grep path
|
||||||
|
|
||||||
|
# List SMB shares
|
||||||
|
midclt call sharing.smb.query | grep name
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 3: Proxmox VM Creation
|
||||||
|
|
||||||
|
### Step 3.1: Download Scripts from Gitea
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# SSH into Proxmox
|
||||||
|
ssh root@192.168.5.200
|
||||||
|
|
||||||
|
# Create directory
|
||||||
|
mkdir -p /root/devmatrix-setup
|
||||||
|
cd /root/devmatrix-setup
|
||||||
|
|
||||||
|
# Download scripts from Gitea
|
||||||
|
wget https://git.lemonlink.eu/impulsivefps/devmatrix-scripts/raw/main/setup_devmatrix_proxmox_custom.sh
|
||||||
|
wget https://git.lemonlink.eu/impulsivefps/devmatrix-scripts/raw/main/setup_openclaw_dev.sh
|
||||||
|
wget https://git.lemonlink.eu/impulsivefps/devmatrix-scripts/raw/main/setup_truenas.sh
|
||||||
|
|
||||||
|
# Make executable
|
||||||
|
chmod +x *.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3.2: Run Proxmox Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /root/devmatrix-setup
|
||||||
|
./setup_devmatrix_proxmox_custom.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**What this does:**
|
||||||
|
- ✅ Checks storage (pve-main2)
|
||||||
|
- ✅ Downloads Ubuntu ISO
|
||||||
|
- ✅ Creates VM 300 (32GB RAM, 16 cores, 400GB)
|
||||||
|
- ✅ Creates VM 301 (16GB RAM, 8 cores, 100GB)
|
||||||
|
- ✅ Creates VM 302 (8GB RAM, 4 cores, 50GB)
|
||||||
|
- ✅ Sets static IPs (210, 211, 212)
|
||||||
|
- ✅ Generates SSH keys
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 4: Install Ubuntu on VM 300
|
||||||
|
|
||||||
|
### Step 4.1: Start VM and Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On Proxmox
|
||||||
|
qm start 300
|
||||||
|
|
||||||
|
# Open console (via web UI or CLI)
|
||||||
|
qm console 300
|
||||||
|
```
|
||||||
|
|
||||||
|
**Installation Steps:**
|
||||||
|
1. Select "Try or Install Ubuntu Server"
|
||||||
|
2. Language: English
|
||||||
|
3. Keyboard: Your layout
|
||||||
|
4. Network: ☑️ DHCP (will get 192.168.5.210)
|
||||||
|
5. Proxy: Leave blank
|
||||||
|
6. Mirror: Default (Ubuntu archive)
|
||||||
|
7. Storage: Use entire disk
|
||||||
|
8. Profile:
|
||||||
|
- Your name: `DevMatrix`
|
||||||
|
- Server name: `devmatrix`
|
||||||
|
- Username: `devmatrix`
|
||||||
|
- Password: [Choose strong password]
|
||||||
|
- ☑️ Import SSH key: Paste contents of `~/.ssh/devmatrix_id_rsa.pub` from Proxmox
|
||||||
|
9. Featured Server Snaps: None
|
||||||
|
10. Wait for install → Reboot
|
||||||
|
|
||||||
|
### Step 4.2: Verify Network
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# After VM reboots, from Proxmox check IP
|
||||||
|
qm guest exec 300 -- ip addr show
|
||||||
|
|
||||||
|
# Should show 192.168.5.210
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 5: Setup Dev Environment (Inside VM 300)
|
||||||
|
|
||||||
|
### Step 5.1: SSH and Run Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# From Proxmox or your machine
|
||||||
|
ssh -i ~/.ssh/devmatrix_id_rsa devmatrix@192.168.5.210
|
||||||
|
|
||||||
|
# Download script from Gitea
|
||||||
|
wget https://git.lemonlink.eu/impulsivefps/devmatrix-scripts/raw/main/setup_openclaw_dev.sh
|
||||||
|
chmod +x setup_openclaw_dev.sh
|
||||||
|
|
||||||
|
# Run setup (takes 20-30 minutes)
|
||||||
|
./setup_openclaw_dev.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5.2: Configure TrueNAS Mounts
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Still inside VM 300
|
||||||
|
wget https://git.lemonlink.eu/impulsivefps/devmatrix-scripts/raw/main/setup_truenas.sh
|
||||||
|
chmod +x setup_truenas.sh
|
||||||
|
./setup_truenas.sh
|
||||||
|
|
||||||
|
# Verify mounts
|
||||||
|
ls -la /mnt/truenas/
|
||||||
|
df -h | grep truenas
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5.3: Configure API Keys (YOU DO THIS)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Inside VM 300
|
||||||
|
~/scripts/configure_api_keys.sh
|
||||||
|
|
||||||
|
# Enter when prompted:
|
||||||
|
# - Kimi API Key: [from kimi.moonshot.cn]
|
||||||
|
# - Antigravity API Key: [from your provider]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5.4: Configure Gitea Access
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Inside VM 300, configure git
|
||||||
|
mkdir -p ~/.config/openclaw
|
||||||
|
cat > ~/.config/openclaw/gitea.conf << 'EOF'
|
||||||
|
GITEA_URL=https://git.lemonlink.eu
|
||||||
|
GITEA_USER=devmatrix-bot
|
||||||
|
GITEA_TOKEN=your_token_here
|
||||||
|
EOF
|
||||||
|
chmod 600 ~/.config/openclaw/gitea.conf
|
||||||
|
|
||||||
|
# Test access
|
||||||
|
curl -H "Authorization: token your_token_here" \
|
||||||
|
https://git.lemonlink.eu/api/v1/user
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 6: Install Windows on VM 301
|
||||||
|
|
||||||
|
### Step 6.1: Start and Install Windows
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On Proxmox
|
||||||
|
qm start 301
|
||||||
|
qm console 301
|
||||||
|
```
|
||||||
|
|
||||||
|
**Installation:**
|
||||||
|
1. Standard Windows 11 LTSC IoT install
|
||||||
|
2. Network: Let it get IP (should be 192.168.5.211)
|
||||||
|
3. Account: Create `testuser` with password
|
||||||
|
4. Complete installation
|
||||||
|
|
||||||
|
### Step 6.2: Run Windows Setup Script
|
||||||
|
|
||||||
|
Inside Windows VM (as Administrator in PowerShell):
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Download script
|
||||||
|
Invoke-WebRequest -Uri "https://git.lemonlink.eu/impulsivefps/devmatrix-scripts/raw/main/setup_windows_vm.ps1" -OutFile "C:\Scripts\setup_windows_vm.ps1"
|
||||||
|
|
||||||
|
# Run script
|
||||||
|
C:\Scripts\setup_windows_vm.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
**Reboot when complete.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 7: Verification & Testing
|
||||||
|
|
||||||
|
### Step 7.1: Test VM Communication
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# From VM 300 (Ubuntu)
|
||||||
|
ping 192.168.5.211 # Windows VM
|
||||||
|
ping 192.168.5.195 # TrueNAS
|
||||||
|
ping 192.168.5.200 # Proxmox
|
||||||
|
ping git.lemonlink.eu # Gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 7.2: Test TrueNAS Mounts
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On VM 300
|
||||||
|
echo "test" > /mnt/truenas/projects/test.txt
|
||||||
|
cat /mnt/truenas/projects/test.txt
|
||||||
|
rm /mnt/truenas/projects/test.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 7.3: Test OpenClaw
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On VM 300
|
||||||
|
openclaw models list
|
||||||
|
openclaw status
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 7.4: Test Windows VM Control
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On VM 300
|
||||||
|
~/scripts/vm_control.sh win-start
|
||||||
|
# Wait 60 seconds
|
||||||
|
~/scripts/vm_control.sh win-status
|
||||||
|
~/scripts/vm_control.sh win-stop
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ PHASE 8: Documentation & Backup
|
||||||
|
|
||||||
|
### Step 8.1: Save Configuration
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On Proxmox
|
||||||
|
cat > ~/devmatrix_config_summary.txt << 'EOF'
|
||||||
|
DevMatrix Configuration Summary
|
||||||
|
================================
|
||||||
|
Date: $(date)
|
||||||
|
|
||||||
|
PROXMOX
|
||||||
|
-------
|
||||||
|
IP: 192.168.5.200
|
||||||
|
Storage HDD: pve-main2
|
||||||
|
Storage NVMe: pve-main (future)
|
||||||
|
|
||||||
|
VMS
|
||||||
|
---
|
||||||
|
VM 300: OpenClaw-DevMatrix
|
||||||
|
- IP: 192.168.5.210
|
||||||
|
- RAM: 32GB
|
||||||
|
- Disk: 400GB (200 OS + 200 data)
|
||||||
|
- User: devmatrix
|
||||||
|
|
||||||
|
VM 301: Windows-LTSC-Test
|
||||||
|
- IP: 192.168.5.211
|
||||||
|
- RAM: 16GB
|
||||||
|
- Disk: 100GB
|
||||||
|
- User: testuser
|
||||||
|
|
||||||
|
VM 302: Android-Emulator
|
||||||
|
- IP: 192.168.5.212
|
||||||
|
- RAM: 8GB
|
||||||
|
- Disk: 50GB
|
||||||
|
|
||||||
|
TRUENAS
|
||||||
|
-------
|
||||||
|
IP: 192.168.5.195
|
||||||
|
Dataset: NAS2/devmatrix
|
||||||
|
Shares: projects, backups, iso-archive, shared
|
||||||
|
|
||||||
|
GITEA
|
||||||
|
-----
|
||||||
|
URL: https://git.lemonlink.eu
|
||||||
|
Bot User: devmatrix-bot
|
||||||
|
Repo: devmatrix-scripts
|
||||||
|
|
||||||
|
ACCESS
|
||||||
|
------
|
||||||
|
SSH Key: ~/.ssh/devmatrix_id_rsa
|
||||||
|
VS Code: http://192.168.5.210:8080
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 8.2: Create VM Snapshots
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# On Proxmox
|
||||||
|
qm snapshot 300 clean-install
|
||||||
|
qm snapshot 301 clean-install
|
||||||
|
qm snapshot 302 clean-install
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 SUMMARY CHECKLIST
|
||||||
|
|
||||||
|
Copy this and check off as you go:
|
||||||
|
|
||||||
|
```
|
||||||
|
□ PHASE 1: Gitea
|
||||||
|
□ Create repository: devmatrix-scripts
|
||||||
|
□ Upload all 5 scripts
|
||||||
|
□ Create user: devmatrix-bot
|
||||||
|
□ Generate API token
|
||||||
|
□ Add bot to repository
|
||||||
|
|
||||||
|
□ PHASE 2: TrueNAS
|
||||||
|
□ SSH into TrueNAS
|
||||||
|
□ Run share setup script
|
||||||
|
□ Verify datasets created
|
||||||
|
□ Verify NFS/SMB shares
|
||||||
|
|
||||||
|
□ PHASE 3: Proxmox
|
||||||
|
□ Download scripts from Gitea
|
||||||
|
□ Run setup_devmatrix_proxmox_custom.sh
|
||||||
|
□ Verify VMs created (300, 301, 302)
|
||||||
|
|
||||||
|
□ PHASE 4: Ubuntu Install
|
||||||
|
□ Start VM 300
|
||||||
|
□ Install Ubuntu 22.04
|
||||||
|
□ Verify IP 192.168.5.210
|
||||||
|
|
||||||
|
□ PHASE 5: Dev Environment
|
||||||
|
□ SSH into VM 300
|
||||||
|
□ Run setup_openclaw_dev.sh
|
||||||
|
□ Run setup_truenas.sh
|
||||||
|
□ Configure API keys
|
||||||
|
□ Configure Gitea access
|
||||||
|
|
||||||
|
□ PHASE 6: Windows
|
||||||
|
□ Install Windows on VM 301
|
||||||
|
□ Run setup_windows_vm.ps1
|
||||||
|
□ Verify IP 192.168.5.211
|
||||||
|
|
||||||
|
□ PHASE 7: Testing
|
||||||
|
□ Test VM communication
|
||||||
|
□ Test TrueNAS mounts
|
||||||
|
□ Test OpenClaw
|
||||||
|
□ Test Windows control
|
||||||
|
|
||||||
|
□ PHASE 8: Documentation
|
||||||
|
□ Save config summary
|
||||||
|
□ Create VM snapshots
|
||||||
|
□ Celebrate! 🎉
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆘 TROUBLESHOOTING
|
||||||
|
|
||||||
|
### Can't SSH to VM 300
|
||||||
|
```bash
|
||||||
|
# From Proxmox
|
||||||
|
qm guest exec 300 -- systemctl status ssh
|
||||||
|
qm guest exec 300 -- ip addr show
|
||||||
|
```
|
||||||
|
|
||||||
|
### TrueNAS Mounts Fail
|
||||||
|
```bash
|
||||||
|
# On VM 300
|
||||||
|
showmount -e 192.168.5.195
|
||||||
|
sudo mount -a
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows VM Won't Start
|
||||||
|
```bash
|
||||||
|
# Check Proxmox logs
|
||||||
|
qm log 301
|
||||||
|
qm status 301
|
||||||
|
```
|
||||||
|
|
||||||
|
### OpenClaw Won't Start
|
||||||
|
```bash
|
||||||
|
# On VM 300
|
||||||
|
openclaw status
|
||||||
|
openclaw logs
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 YOU'RE READY!
|
||||||
|
|
||||||
|
Everything is prepared. Tomorrow just work through the checklist in order!
|
||||||
|
|
||||||
|
**Estimated time:** 2-3 hours (mostly automated)
|
||||||
|
|
||||||
|
**Questions?** Just ask - I'm here to help! 🦞
|
||||||
Loading…
Reference in New Issue