Skip to main content

Self-Hosting

Self-hosting is the recommended deployment method for Nenyax. 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:
The script handles everything:
  1. Installs Docker and Docker Compose
  2. Clones the Nenyax repository
  3. Generates secure random credentials (Postgres, MinIO, auth secret)
  4. Sets up HTTPS (Let’s Encrypt with a domain, or self-signed for IP-only access)
  5. Builds and starts all services
  6. Builds the custom agent base image
When finished, you’ll see:

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)

Step-by-Step: Google Cloud

1

Create a VM

Go to Google Cloud ConsoleCompute EngineVM InstancesCreate Instance.Configure:
  • Name: nenyax
  • 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
Click Create.
2

SSH into the VM

In the VM Instances list, click the SSH button next to your VM. This opens a browser-based terminal.
3

Run the install script

When prompted for a domain:
  • 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)
Wait 3-5 minutes for the build to complete.
4

Open Nenyax

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.
5

Configure

  1. Create your account on the sign-up page
  2. Go to Settings → API Keys and add your provider credentials:
  3. Create your first agent and test with Preview

HTTPS

Nenyax uses Caddy as a reverse proxy. To add a domain later, re-run the install script — it will ask for the domain and update the Caddyfile.

Architecture

The install script creates these containers on your VPS:
When a user creates and deploys a custom agent, the backend talks to Docker via the mounted socket and spawns a new container on the same machine.

Managing Your Deployment

Credentials

All credentials are stored in /opt/nenyax/.env (readable only by root). These are auto-generated and used internally between services — you never need to change them. API keys for providers (LiveKit, Google, Resemble, STT, Twilio) are managed through the dashboard Settings page, encrypted with AES-256 in the database.

Custom Agents on Self-Hosted

Custom agents are fully supported on self-hosted deployments. When you deploy a custom agent:
  1. The backend builds a Docker image from your code
  2. Spawns a new container on the same machine
  3. The container connects to LiveKit and handles voice calls
  4. All environment variables (API keys, custom vars) are injected securely
This requires Docker socket access, which is why custom agents only work on self-hosted deployments — not on Railway or Render.