4.3 KiB
4.3 KiB
Uni-Wizard v4 — Deployment Checklist
Pre-Deployment
- VPS provisioned (Ubuntu 22.04 LTS recommended)
- SSH access configured
- Firewall rules set (ports 22, 80, 443, 3000, 8643)
- Domain/DNS configured (optional)
- SSL certificates ready (optional)
Base System
- Update system packages
sudo apt update && sudo apt upgrade -y - Install base dependencies
sudo apt install -y python3 python3-pip python3-venv sqlite3 curl git - Create timmy user
sudo useradd -m -s /bin/bash timmy - Configure sudo access (if needed)
Gitea Setup
- Gitea installed and running
- Repository created:
Timmy_Foundation/timmy-home - API token generated
- Webhooks configured (optional)
- Test API access
curl -H "Authorization: token TOKEN" http://localhost:3000/api/v1/user
Uni-Wizard Installation
- Clone repository
sudo -u timmy git clone http://143.198.27.163:3000/Timmy_Foundation/timmy-home.git /opt/timmy/repo - Run setup script
sudo ./scripts/setup-uni-wizard.sh - Verify installation
/opt/timmy/venv/bin/python -c "from uni_wizard import Harness; print('OK')"
Configuration
- Edit config file
sudo nano /opt/timmy/config/uni-wizard.yaml - Set Gitea API token
- Configure house identity
- Set log level (INFO for production)
- Verify config syntax
/opt/timmy/venv/bin/python -c "import yaml; yaml.safe_load(open('/opt/timmy/config/uni-wizard.yaml'))"
LLM Setup (if using local inference)
- llama.cpp installed
- Model downloaded (e.g., Hermes-4 14B)
- Model placed in
/opt/timmy/models/ - llama-server configured
- Test inference
curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "hermes4", "messages": [{"role": "user", "content": "Hello"}]}'
Service Startup
- Start Uni-Wizard
sudo systemctl start uni-wizard - Start health daemon
sudo systemctl start timmy-health - Start task router
sudo systemctl start timmy-task-router - Enable auto-start
sudo systemctl enable uni-wizard timmy-health timmy-task-router
Verification
- Check service status
sudo systemctl status uni-wizard - View logs
sudo journalctl -u uni-wizard -f - Test health endpoint
curl http://localhost:8082/health - Test tool execution
/opt/timmy/venv/bin/uni-wizard execute system_info - Verify Gitea polling
tail -f /opt/timmy/logs/task-router.log | grep "Polling"
Syncthing Mesh (if using multiple VPS)
- Syncthing installed on all nodes
- Devices paired
- Folders shared
/opt/timmy/logs//opt/timmy/data/
- Test sync
touch /opt/timmy/logs/test && ssh other-vps "ls /opt/timmy/logs/test"
Security
- Firewall configured
sudo ufw status - Fail2ban installed (optional)
- Log rotation configured
sudo logrotate -d /etc/logrotate.d/uni-wizard - Backup strategy in place
- Secrets not in git
grep -r "password\|token\|secret" /opt/timmy/repo/
Monitoring
- Health checks responding
- Metrics being collected
- Alerts configured (optional)
- Log aggregation setup (optional)
Post-Deployment
- Document any custom configuration
- Update runbooks
- Notify team
- Schedule first review (1 week)
Rollback Plan
If deployment fails:
# Stop services
sudo systemctl stop uni-wizard timmy-health timmy-task-router
# Disable auto-start
sudo systemctl disable uni-wizard timmy-health timmy-task-router
# Restore from backup (if available)
# ...
# Or reset to clean state
sudo rm -rf /opt/timmy/
sudo userdel timmy
Success Criteria
- All services running (
systemctl is-activereturns "active") - Health endpoint returns 200
- Can execute tools via CLI
- Gitea integration working (issues being polled)
- Logs being written without errors
- No critical errors in first 24 hours
Deployed by: _______________
Date: _______________
VPS: _______________