Initial commit — OpenClaw VM infrastructure
- ansible/: VM provisioning playbooks and roles - provision-vm.yml: create KVM VM from Ubuntu cloud image - install.yml: install OpenClaw on guest (upstream) - customize.yml: swappiness, virtiofs fstab, linger - roles/vm/: libvirt domain XML, cloud-init templates - inventory.yml + host_vars/zap.yml: zap instance config - backup-openclaw-vm.sh: daily rsync + MinIO upload - restore-openclaw-vm.sh: full redeploy from scratch - README.md: full operational documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
# Release v2.0.0 - Multi-OS Support & Critical Fixes
|
||||
|
||||
## 🎉 Major Release
|
||||
|
||||
This release adds **multi-OS support** (macOS + Linux), **development mode**, and fixes **all critical issues** reported by users.
|
||||
|
||||
### ✨ New Features
|
||||
|
||||
#### Multi-OS Support
|
||||
- ✅ **macOS support** alongside Debian/Ubuntu
|
||||
- ✅ **Homebrew** automatically installed on both platforms
|
||||
- ✅ OS-specific tasks for clean separation
|
||||
- ✅ Automatic OS detection with proper fallback
|
||||
|
||||
#### Installation Modes
|
||||
- ✅ **Release Mode** (default): `pnpm install -g openclaw@latest`
|
||||
- ✅ **Development Mode**: Clone repo, build from source, symlink binary
|
||||
- ✅ Switch with `-e openclaw_install_mode=development`
|
||||
- ✅ Development aliases: `openclaw-rebuild`, `openclaw-dev`, `openclaw-pull`
|
||||
|
||||
### 🐛 Critical Bug Fixes
|
||||
|
||||
All issues from user feedback resolved:
|
||||
|
||||
1. ✅ **DBus Session Bus Errors**
|
||||
- Auto-configured `loginctl enable-linger`
|
||||
- Dynamic `XDG_RUNTIME_DIR=/run/user/$(id -u)`
|
||||
- Proper `DBUS_SESSION_BUS_ADDRESS` setup
|
||||
- No more manual `eval $(dbus-launch --sh-syntax)` needed!
|
||||
|
||||
2. ✅ **User Switch Command**
|
||||
- Fixed from `sudo -i -u openclaw` to `sudo su - openclaw`
|
||||
- Ensures proper login shell with environment
|
||||
|
||||
3. ✅ **Homebrew Integration**
|
||||
- Installed for both Linux and macOS
|
||||
- Added to PATH in both `.bashrc` and `.zshrc`
|
||||
- `brew shellenv` properly configured
|
||||
|
||||
4. ✅ **PNPM Configuration**
|
||||
- `PNPM_HOME` properly set in shell configs
|
||||
- PATH includes pnpm directories
|
||||
- Correct permissions on `~/.local/share/pnpm`
|
||||
|
||||
5. ✅ **User-ID Dynamic**
|
||||
- No longer hardcoded to 1000
|
||||
- Dynamically determined with `id -u`
|
||||
|
||||
### 🔧 Improvements
|
||||
|
||||
- ✅ **Better onboarding**: Recommends `openclaw onboard --install-daemon`
|
||||
- ✅ **No auto-config**: Config files created by openclaw itself
|
||||
- ✅ **Enhanced security**: systemd service hardening
|
||||
- ✅ **Linting**: yamllint & ansible-lint production profile passed
|
||||
|
||||
### 📦 Installation
|
||||
|
||||
#### Quick Start (Release Mode)
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw-ansible/main/install.sh | bash
|
||||
```
|
||||
|
||||
#### Development Mode
|
||||
```bash
|
||||
git clone https://github.com/openclaw/openclaw-ansible.git
|
||||
cd openclaw-ansible
|
||||
./run-playbook.sh -e openclaw_install_mode=development
|
||||
```
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- [README.md](README.md) - Getting started
|
||||
- [CHANGELOG.md](CHANGELOG.md) - Full changelog
|
||||
- [UPGRADE_NOTES.md](UPGRADE_NOTES.md) - Technical details
|
||||
- [docs/development-mode.md](docs/development-mode.md) - Development guide
|
||||
|
||||
### ⚠️ Breaking Changes
|
||||
|
||||
1. **User switch command changed**: Use `sudo su - openclaw` instead of `sudo -i -u openclaw`
|
||||
2. **No auto-configuration**: Config files no longer auto-generated, use `openclaw onboard`
|
||||
3. **No auto-service**: systemd service not auto-installed, use `--install-daemon` flag
|
||||
|
||||
### 🔄 Migration
|
||||
|
||||
For existing installations:
|
||||
```bash
|
||||
# Add environment variables
|
||||
echo 'export XDG_RUNTIME_DIR=/run/user/$(id -u)' >> ~/.bashrc
|
||||
echo 'export PNPM_HOME="$HOME/.local/share/pnpm"' >> ~/.bashrc
|
||||
|
||||
# Enable lingering
|
||||
sudo loginctl enable-linger openclaw
|
||||
|
||||
# Add Homebrew (Linux)
|
||||
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
|
||||
|
||||
# Reload
|
||||
source ~/.bashrc
|
||||
|
||||
# Reinstall openclaw
|
||||
pnpm install -g openclaw@latest
|
||||
```
|
||||
|
||||
### 📊 Testing
|
||||
|
||||
- ✅ yamllint: **PASSED**
|
||||
- ✅ ansible-lint: **PASSED** (production profile)
|
||||
- ✅ Tested on Debian 11/12
|
||||
- ✅ Tested on Ubuntu 20.04/22.04
|
||||
- ⚠️ macOS framework ready (needs real hardware testing)
|
||||
|
||||
### 🙏 Thanks
|
||||
|
||||
Special thanks to early adopters who provided feedback on the DBus and user switching issues!
|
||||
|
||||
---
|
||||
|
||||
**Full Changelog**: https://github.com/openclaw/openclaw-ansible/blob/main/CHANGELOG.md
|
||||
Reference in New Issue
Block a user