Getting started

Requirements

The server, network and accounts you need before installing, and the apps Self Host Layer can run.

A server

  • Operating system: Ubuntu 24.04, Ubuntu 26.04 or Debian 12, freshly installed.
  • CPU: x86_64 or arm64. Any provider works: Hetzner, DigitalOcean, Vultr, AWS and others.
  • Memory: 1 GB of RAM works. 2 GB is more comfortable for Next.js builds. On servers with less than 4 GB, the installer adds a 2 GB swap file so a build can't exhaust memory and take the server down.
  • Disk: 10 GB free.
  • systemd: the server must run systemd. Containers (LXC, Docker) and WSL aren't supported.

Network

  • Ports 80 and 443 free on the server and open in your provider's firewall. Caddy serves your apps on them and uses them to get certificates.
  • A public IP address. Without your own domain, the panel and your apps answer on free sslip.io addresses made from it, like https://203-0-113-7.sslip.io.

Access

  • Root over SSH, ideally with an SSH key. With a key in place, the installer can turn off password logins for you.

Optional

  • Your own domain for the panel, set during install or later from Settings.
  • A wildcard DNS record (*.apps.example.com), to give every app's free address your own domain instead of sslip.io.
  • A GitHub account. The panel connects to it through a GitHub App of your own to deploy your repositories. Public repositories can also be deployed from their URL.
  • S3-compatible storage for backups: AWS S3, Cloudflare R2, Backblaze B2, MinIO and others.

What it can run

  • Node apps: Next.js, Nuxt, Astro, Remix, React Router, Express, Fastify, Hono, or any app with a start command.
  • Static sites: Vite, Create React App, Astro's static output, or plain HTML. Caddy serves the files directly, with no process running.
  • Package managers: npm, pnpm, yarn and bun.
  • Node versions: whichever your project asks for, in .nvmrc, .node-version or engines.node, installed from official builds and checked against their published checksums.

Other languages, like Python, Go, Ruby or PHP, aren't supported yet.