Install Aeroplane
Aeroplane is meant to start from a fresh Ubuntu or Debian server where it can own the deployment stack cleanly.
Requirements
Section titled “Requirements”- A server you control.
- Ubuntu or Debian with shell access.
- DNS access for any hostname you want to point at the server.
- Public ports
80and443available for Caddy. - Docker support. The installer starts the Docker-backed runtime services Aeroplane needs.
- Enough disk for builds, images, database volumes, static output, and local backups.
Run the Installer
Section titled “Run the Installer”curl -fsSL https://get.aeroplane.run | shThe installer creates /opt/aeroplane, clones Aeroplane into /opt/aeroplane/source, writes a production environment file, builds the control plane locally, and starts the host services.
What Gets Started
Section titled “What Gets Started”aeroplane, the systemd service for the control plane.deploy-buildkiton127.0.0.1:1234.deploy-caddyon ports80and443.
After the script finishes, open the printed URL and complete onboarding in the browser.
What Gets Stored
Section titled “What Gets Stored”The default install keeps Aeroplane under /opt/aeroplane. The source checkout lives in /opt/aeroplane/source; runtime state, generated Caddy config, static site output, database backup files, migration files, and maintenance history live under the configured DATA_DIR.
If you later export an Aeroplane migration bundle, the bundle includes logical Aeroplane data, system settings, runtime env, database dumps, static sites, backup files, Postgres TLS assets, and the Caddyfile when those files exist.
Installer Options
Section titled “Installer Options”Set environment variables before sh to override defaults:
curl -fsSL https://get.aeroplane.run | \ AEROPLANE_PUBLIC_URL=https://pilot.example.com \ AEROPLANE_REPO_BRANCH=main \ AEROPLANE_PORT=4310 \ shCommon options:
AEROPLANE_HOME: install directory. Defaults to/opt/aeroplane.AEROPLANE_REPO_URL: repository to clone. Defaults to the Aeroplane GitHub repository.AEROPLANE_REPO_BRANCH: branch to install and update from. Defaults tomain.AEROPLANE_PUBLIC_URL: public URL written toPUBLIC_URL.AEROPLANE_PORT: control plane port. Defaults to4310.
Use AEROPLANE_PUBLIC_URL when you already know the dashboard hostname. You can still set or change the dashboard hostname later in System Settings.
Inspect the Install
Section titled “Inspect the Install”sudo journalctl -u aeroplane -fcd /opt/aeroplane/source && git statuscd /opt/aeroplane && sudo docker compose logs -f caddy buildkitIf UFW is enabled, allow the public ports:
sudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw allow 4310/tcpAfter Install
Section titled “After Install”Continue to Browser Onboarding to create the owner user, configure the dashboard domain, set the wildcard root domain, connect GitHub, configure R2, or import an Aeroplane migration bundle.