Self-Hosting
Orchard is designed to be self-hosted on your own infrastructure. This page covers system requirements and deployment options.
System Requirements
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8+ GB |
| Disk | 20 GB | 50+ GB |
| Java | 25+ | 25+ |
| Docker | 24.0+ | 24.0+ |
QEMU
Orchard's default VM provider uses QEMU to provision isolated VMs. Install on Ubuntu/Debian:
apt install qemu-system-x86 qemu-utilsKVM acceleration is enabled by default. Ensure your host supports hardware virtualization (/dev/kvm must exist).
For cloud deployments, Orchard has native AWS EC2 support — no nested virtualization required. See the AWS EC2 guide.
Supported Architectures
- linux/amd64 — fully supported
- linux/arm64 — fully supported
- macOS/arm64 — supported via HVF acceleration (build from source required; no prebuilt binary yet)
Database
Orchard uses PostgreSQL for all persistent state. A Docker Compose file is included for running just the database:
docker compose up -d postgresBack up the database regularly:
pg_dump -U orchard orchard > orchard-backup.sqlRunning the Server
Option A: Download a release (recommended)
Download the latest server binary from the releases page:
# Linux amd64
curl -LO https://github.com/orchard-cde/orchard/releases/latest/download/orchard-server-linux-amd64.tar.gz
tar xzf orchard-server-linux-amd64.tar.gz
# Linux arm64
curl -LO https://github.com/orchard-cde/orchard/releases/latest/download/orchard-server-linux-arm64.tar.gz
tar xzf orchard-server-linux-arm64.tar.gz
./orchard-serverOption B: Build from source
git clone https://github.com/orchard-cde/orchard.git
cd orchard
./gradlew :trellis:bootRunThe API server starts on port 8080.
Network Requirements
- Port
8080accessible to Trowel CLI users (API) - SSH port range
49152–49999accessible for grove SSH connections (configurable viaorchard.qemu.ssh-port-range-start/endinapplication.yml)
Deployment Options
- Docker Compose — start PostgreSQL and the server
- Deployment guide — production configuration and health checks
- Cloud Providers — provision grove VMs on AWS EC2 and other cloud platforms
VM Providers
Orchard supports pluggable VM providers for grove provisioning. Set the active provider in application.yml:
orchard:
nursery:
provider: aws # aws | qemu| Provider | Status | Docs |
|---|---|---|
| QEMU | Available | Default for bare-metal and local deployments |
| AWS EC2 | Available | AWS EC2 |
| GCP Compute | Planned | — |
| Azure VM | Planned | — |