Skip to main content

Cloud Appliance

The CrabShack cloud appliance is a pre-built qcow2 disk image with CrabShack fully installed and cloud-init enabled. Import it into Proxmox, KVM, or any cloud provider that supports qcow2 images — no ISO installation required.

Download​

Download the latest cloud appliance qcow2 from your CrabShack Console under Downloads > Cloud Appliance.

Proxmox​

1. Upload the qcow2​

Copy the downloaded qcow2 to your Proxmox host:

scp crabshack-cloud-*.qcow2 root@proxmox:/var/lib/vz/images/

2. Create the VM​

VMID=200
VM_NAME=crabshack-1

# Create VM with the qcow2 disk
qm create ${VMID} \
--name ${VM_NAME} \
--cores 4 \
--memory 16384 \
--cpu host \
--ostype l26 \
--bios seabios \
--machine q35 \
--scsihw virtio-scsi-single \
--scsi0 local:${VMID}/vm-${VMID}-disk-0.qcow2,format=qcow2,iothread=1,discard=on \
--net0 virtio,bridge=vmbr0 \
--boot order=scsi0 \
--agent enabled=1 \
--onboot 1

# Move the qcow2 into the VM's disk directory
mkdir -p /var/lib/vz/images/${VMID}
mv /var/lib/vz/images/crabshack-cloud-*.qcow2 /var/lib/vz/images/${VMID}/vm-${VMID}-disk-0.qcow2

3. Configure cloud-init​

Cloud-init configures the instance on first boot. You need to provide user-data with your activation email and the public hostname.

# Add cloud-init drive
qm set ${VMID} --ide2 local:cloudinit

# Set the default user and SSH key
qm set ${VMID} --ciuser crabshack --sshkeys /path/to/your/key.pub

# Set networking (static IP example)
qm set ${VMID} --ipconfig0 ip=10.0.0.100/24,gw=10.0.0.1
qm set ${VMID} --nameserver 10.0.0.1

# Create user-data snippet with activation config
cat > /var/lib/vz/snippets/${VM_NAME}-userdata.yml << EOF
[email protected]
VM_HOSTNAME=crabshack.example.com
EOF

# Attach user-data
qm set ${VMID} --cicustom "user=local:snippets/${VM_NAME}-userdata.yml"

4. Start the VM​

qm start ${VMID}

On first boot, cloud-init will:

  1. Configure networking from --ipconfig0
  2. Inject your SSH key
  3. Read OWNER_EMAIL and VM_HOSTNAME from user-data
  4. Start the CrabShack services (conductor, backend, frontend, openclaw)

Once services are up, you'll receive an activation email at the address you specified.

User-Data Variables​

VariableRequiredDescription
OWNER_EMAILYesYour email address (must match your CrabShack account)
VM_HOSTNAMEProxmox onlyThe public hostname or IP for your instance (e.g. crabshack.example.com)

On cloud providers with metadata services (AWS, Azure), VM_HOSTNAME is auto-resolved from the instance's public IP.

User-Data Formats​

The cloud-init script accepts two formats:

Shell format (simplest):

[email protected]
VM_HOSTNAME=crabshack.example.com

Cloud-config YAML:

#cloud-config
crabshack:
owner_email: [email protected]
vm_hostname: crabshack.example.com

KVM / libvirt​

virt-install \
--name crabshack-1 \
--ram 16384 \
--vcpus 4 \
--os-variant debian12 \
--import \
--disk path=crabshack-cloud-*.qcow2,format=qcow2 \
--network bridge=br0 \
--cloud-init user-data=userdata.yml

AWS​

The cloud appliance qcow2 can be imported as an AMI using the AWS VM Import/Export service. Pass OWNER_EMAIL via EC2 user-data — VM_HOSTNAME is auto-resolved from the instance's public IP.

Requirements​

  • CPU: 4 cores minimum
  • RAM: 16 GB minimum
  • Disk: 40 GB (included in qcow2)
  • Network: Internet access required for activation and AI model API calls