585 lines
13 KiB
Markdown
585 lines
13 KiB
Markdown
# 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! 🦞
|