Skip to content

Aeroplane Docs

Install the control plane, wire DNS, GitHub, R2, migrations, databases, and concurrent deployments from your own server.
  • Use a server you control, preferably a fresh Ubuntu or Debian host.
  • Keep ports 80 and 443 available for Caddy.
  • Decide the dashboard hostname, for example pilot.example.com.
  • Decide the wildcard service root, for example *.pilot.example.com.
  • Create a GitHub App when you want repository-based deployments and push webhooks.
  • Create a Cloudflare R2 bucket or token when you want off-server database backups.
  • Export a .aeroplane bundle first if you are moving from another Aeroplane instance.

For a new server, read Install Aeroplane first, then Browser Onboarding, then First Project.

For a first app, start with Source Services, then wire its hostname with Domains.

For a Railway move, start with Railway Import, then use Database Data Imports for Postgres and Redis follow-up imports.

For resilience, connect R2 Storage, choose Database Backups, and review Restore and Download.

Aeroplane runs a self-hosted control plane on your server. It coordinates GitHub-connected app services, direct Git URL services, prebuilt Docker images, Railpack and BuildKit builds, Docker workloads, Caddy routes, generated service domains, custom domains, environment variables, deployment logs, runtime logs, database access, database backups, Railway imports, encrypted migration bundles, R2 storage, DNS provider automation, system maintenance, updates, and deployment concurrency.