Run the Apus Gateway on any Linux server or cloud VPS. This page helps you pick a provider, explains how cloud deployments work, and covers generic Linux tuning that applies everywhere.

Pick a provider

Azure

Linux VM

Daytona

Cloud sandbox with preview URLs

DigitalOcean

Simple paid VPS

exe.dev

VM with HTTPS proxy

Fly.io

Fly Machines

GCP

Compute Engine

Hetzner

Docker on Hetzner VPS

Hostinger

VPS with one-click setup

Northflank

One-click, browser setup

Oracle Cloud

Always Free ARM tier

Railway

One-click, browser setup

Render

Managed web service

Raspberry Pi

ARM self-hosted

Upstash Box

SSH-managed sandbox box

AWS (EC2 / Lightsail / free tier) also works well. A community video walkthrough is available at x.com/techfrenAJ/status/2014934471095812547 (community resource -- may become unavailable).

How cloud setups work

Related pages: Gateway remote access, Platforms hub.

Harden admin access first

Before you install Apus on a public VPS, decide how you want to administer the box itself.

Tailscale-specific Gateway options live in Tailscale.

Shared company agent on a VPS

Running a single agent for a team is a valid setup when every user is in the same trust boundary and the agent is business-only.

Security model details: Security.

Using nodes with a VPS

You can keep the Gateway in the cloud and pair nodes on your local devices (Mac/iOS/Android/headless). Nodes provide local screen/camera and system.run capabilities while the Gateway stays in the cloud. A paired Mac can also present hosted widgets in its native panel.

Docs: Nodes, Nodes CLI.

Startup tuning for small VMs and ARM hosts

If CLI commands feel slow on low-power VMs (or ARM hosts), enable Node's module compile cache:

grep -q 'NODE_COMPILE_CACHE=/var/tmp/apus-compile-cache' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
export NODE_COMPILE_CACHE=/var/tmp/apus-compile-cache
mkdir -p /var/tmp/apus-compile-cache
export APUS_NO_RESPAWN=1
EOF
source ~/.bashrc

systemd tuning checklist (optional)

For VM hosts using systemd, consider:

The standard apus onboard --install-daemon path installs a systemd user unit; customize only host-specific startup settings with:

systemctl --user edit apus-gateway.service
[Service]
Environment=APUS_NO_RESPAWN=1
Environment=NODE_COMPILE_CACHE=/var/tmp/apus-compile-cache
TimeoutStartSec=90

If you deliberately installed a system unit instead, edit it via sudo systemctl edit apus-gateway.service.

For the canonical managed unit body and its restart policy, see the Gateway runbook.

For Linux OOM behavior, child process victim selection, and exit 137 diagnostics, see Linux memory pressure and OOM kills.

Related