Fix critical bugs and improve reliability, compatibility, and usability

- Fix Homebrew installation: install sudo, set sudoers permissions, and add transparent root wrapper
- Add Debian 12 fallback when Debian 13 template is unavailable
- Ensure proper OpenClaw token authentication configuration
- Dynamically resolve binary paths in systemd services
- Configure SSH root password login
- Clean stale VNC locks on startup and prevent screen-blanking
- Add --skip-daemon flag to onboarding shortcut to avoid service conflict
- Enable nesting and onboot autostart for container
- Prompt for VMID and storage pools with auto-detected defaults
This commit is contained in:
sarah
2026-09-26 13:12:47 +02:00
parent f281a44c0f
commit 1b92d1bff7
3 changed files with 211 additions and 121 deletions

View File

@@ -47,10 +47,10 @@ After the script finishes, you'll have a fully configured LXC container with:
| What | How to access |
|------|---------------|
| **OpenClaw Dashboard** | `http://<container-ip>:18789/#token=<your-token>` |
| **Remote Desktop** | `http://<container-ip>:6080/vnc.html` |
| **Remote Desktop** | `http://<container-ip>:6080/vnc.html?autoconnect=true&resize=scale` |
| **SSH** | `ssh root@<container-ip>` |
The script prints all of this (including the token) at the end.
The script prints all of this (including the direct token link) at the end.
## Desktop Shortcuts
@@ -58,38 +58,41 @@ Once you open the remote desktop via noVNC, you'll find two shortcuts ready to g
| Shortcut | What it does |
|----------|-------------|
| **OpenClaw Setup Wizard** | Opens the interactive onboarding wizard (`openclaw onboard`) to configure your channels, workspace, and skills |
| **OpenClaw Setup Wizard** | Opens the interactive onboarding wizard (`openclaw onboard --skip-daemon`) to configure your channels, workspace, and skills |
| **OpenClaw Dashboard** | Opens Chrome with the dashboard URL and auth token pre-filled — no manual token entry needed |
## Requirements
- Proxmox VE 8.x+
- Proxmox VE 8.x+ (x86_64 / amd64)
- Root access on the Proxmox host
- Internet connectivity (for downloading packages)
## Configuration
The script prompts you interactively (all optional except password):
The script prompts you interactively (all optional with smart auto-detection except password):
| Option | Default | Description |
|--------|---------|-------------|
| Password | *(required)* | Container root password (also used for VNC) |
| VMID | *(next free)* | Container ID (auto-detected, customizable) |
| Password | *(required)* | Container root password (VNC uses first 8 characters) |
| Rootfs storage | *(auto-detected)* | Storage pool for container rootfs (`local-lvm`, `local-zfs`, etc.) |
| Template storage | *(auto-detected)* | Storage pool for template cache (`local`, etc.) |
| Disk size | 32 GB | Container root filesystem size |
| Memory | 4096 MB | RAM allocation |
| CPU cores | 4 | Number of CPU cores |
| VNC resolution | 1920x1080 | Remote desktop resolution |
Everything else is auto-detected — VMID, storage, networking (DHCP).
Everything else is auto-detected — networking (DHCP bridge `vmbr0`), nesting, and onboot autostart.
## What the script installs
All inside the container (nothing is installed on the Proxmox host):
- **Debian 13** LXC (privileged)
- **Debian 13 or 12** LXC (privileged, nested, onboot)
- **Node.js 22** + **OpenClaw**
- **Homebrew** (for OpenClaw skills)
- **LXQt** desktop + **TigerVNC** + **noVNC**
- **Google Chrome** (with OpenClaw browser extension)
- **Homebrew** (preconfigured with non-root user + transparent root wrapper for OpenClaw skills)
- **LXQt** desktop + **TigerVNC** + **noVNC** (with auto-scaling & no screen-blanking)
- **Google Chrome** (configured for root with `--no-sandbox` & OpenClaw browser extension)
- **Noto Color Emoji** font (for proper terminal rendering)
- Three **systemd services**: `openclaw-gateway`, `vncserver`, `novnc`
@@ -104,11 +107,10 @@ pct status <VMID> # Check container status
## Notes on the onboarding wizard
When you run the **OpenClaw Setup Wizard** from the desktop shortcut, you may see two messages that look like errors but are perfectly normal:
When you run the **OpenClaw Setup Wizard** from the desktop shortcut:
**"Gateway service install failed"** — The wizard tries to create its own systemd service for the gateway, but our script already set up `openclaw-gateway.service` and it's already running. This is safe to ignore.
**"SECURITY ERROR: ws:// to a non-loopback address"** — This is a warning that the gateway uses unencrypted WebSocket over LAN. This is expected for a local setup. If you're on a trusted home or office network, it's completely fine.
- The shortcut automatically includes `--skip-daemon` so the wizard won't attempt to reinstall or overwrite the existing systemd service.
- **"SECURITY ERROR: ws:// to a non-loopback address"** — This is a standard warning that the gateway uses unencrypted WebSocket over LAN. This is expected for a local setup. If you're on a trusted home or office network, it's completely fine.
As long as you see your **channels connected**, a **Control UI URL**, and an **agent workspace** listed at the end of the wizard, everything worked.