Self-Hosting
Self-hosting is the recommended deployment method for Arkenos. It gives you full features including custom agents, Docker sandboxes, and the AI coding assistant.One-Command Install
SSH into any Linux VPS and run:- Installs Docker and Docker Compose
- Clones the Arkenos repository
- Generates secure random credentials (Postgres, MinIO, auth secret)
- Sets up HTTPS (Let’s Encrypt with a domain, or self-signed for IP-only access)
- Builds and starts all services
- Builds the custom agent base image
Requirements
- OS: Ubuntu 22.04+, Debian 11+, CentOS 8+, Fedora 36+, or Amazon Linux 2
- RAM: 4GB minimum (2GB works for light usage)
- Disk: 30GB SSD
- Ports: 80 and 443 open (HTTP/HTTPS)
Recommended VPS Providers
| Provider | Plan | Price | Notes |
|---|---|---|---|
| Hetzner | CX22 (4GB / 2vCPU) | ~$7/mo | Best value |
| DigitalOcean | Droplet (4GB / 2vCPU) | ~$24/mo | Easiest UI, great docs |
| Vultr | Cloud Compute (4GB / 2vCPU) | ~$18/mo | Good API, many locations |
| Google Cloud | e2-medium (4GB / 2vCPU) | ~$25/mo | Free trial available |
| AWS Lightsail | 4GB / 2vCPU | ~$18/mo | For AWS users |
Step-by-Step: Google Cloud
Create a VM
Go to Google Cloud Console → Compute Engine → VM Instances → Create Instance.Configure:
- Name:
arkenos - Region: Pick closest to your users (e.g.
us-central1) - Machine type:
e2-medium(2 vCPU, 4GB RAM) - Boot disk: Ubuntu 24.04 LTS, x86, 30GB SSD
- Firewall: Check Allow HTTP traffic and Allow HTTPS traffic
SSH into the VM
In the VM Instances list, click the SSH button next to your VM. This opens a browser-based terminal.
Run the install script
- Enter your domain (e.g.
app.example.com) if you have one pointed at the VM’s IP — Caddy will auto-provision a Let’s Encrypt certificate - Press Enter to skip — Caddy will use a self-signed certificate (browser shows a one-time warning)
Open Arkenos
Find your VM’s External IP in the Google Cloud Console.Open
https://<your-ip> in your browser. If using a self-signed cert, click Advanced → Proceed.Configure
- Create your account on the sign-up page
- Go to Settings → API Keys and add your provider credentials:
- LiveKit — URL, API Key, API Secret (LiveKit Cloud)
- Google AI — API Key (Google AI Studio)
- Resemble AI — API Key (Resemble AI)
- STT Provider — AssemblyAI or Deepgram API key
- Create your first agent and test with Preview
HTTPS
Arkenos uses Caddy as a reverse proxy.| Setup | How HTTPS works |
|---|---|
| With a domain | Caddy auto-provisions a free Let’s Encrypt certificate. No warnings. |
| IP-only (no domain) | Caddy uses a self-signed certificate. Browser shows a one-time “not secure” warning — click through it. HTTPS is required for browser APIs. |
Architecture
The install script creates these containers on your VPS:Managing Your Deployment
Credentials
All credentials are stored in/opt/arkenos/.env (readable only by root). These are auto-generated and used internally between services — you never need to change them.
| Credential | Used by | User needs to know? |
|---|---|---|
POSTGRES_PASSWORD | Backend ↔ PostgreSQL | Only for direct DB access |
MINIO_ROOT_PASSWORD | Backend ↔ MinIO | Only for MinIO console access |
BETTER_AUTH_SECRET | Frontend session signing | Never |
Custom Agents on Self-Hosted
Custom agents are fully supported on self-hosted deployments. When you deploy a custom agent:- The backend builds a Docker image from your code
- Spawns a new container on the same machine
- The container connects to LiveKit and handles voice calls
- All environment variables (API keys, custom vars) are injected securely