Skip to content

Create a Docker Compose App

Creating an app involves four steps: Choose the app, Domain, Environment and Confirm and deploy. You can navigate back to earlier steps at any point before you deploy.

Review the prerequisites in Before you begin on the overview page. Only team owners and team admins can create apps.

Open your server's Sites page, click Create New Site, and select Docker Compose App in the dialog. The card displays a Beta badge.

The Create Site dialog with the Docker Compose App card ringed

Choose your server first. If a server can't host an app, its card explains why, such as a trial server, a server that is still being set up, or a server with too little memory.

On Choose the app, pick one of four ways to provide your app configuration:

  • Paste a file lets you paste the text of a Compose file (up to 64 KB). Click Start with a sample to load a starter example.
  • From GitHub imports a Compose file from a GitHub repository. Choose the repository, branch, and Compose file path, then click Read File. Connect your GitHub account first if your repository isn't listed.
  • From a link fetches a Compose file from a URL. Paste the full URL to the file (starting with https://), then click Fetch. FlyWP imports the file once, so subsequent updates at that link won't change your app.
  • Template starts from one of our built-in templates.

The Choose the app step with its four sources and the template list

FlyWP validates your file as you work. If there is an issue, FlyWP flags it next to the offending line with a clear explanation. Resolve any issues before continuing. To learn what the validator accepts and blocks, see Compose file rules.

The template catalogue includes these apps:

  • Directus
  • Ghost
  • Mautic
  • Metabase
  • n8n
  • Nextcloud
  • Open WebUI
  • Plausible Community Edition
  • Umami
  • Vaultwarden

Each card displays the memory the app requires. If a template fits in your server's free memory, it displays its size (such as 256 MB memory). If it needs more memory than the server has available, the card flags it with Needs and the required amount (such as Needs 1.3 GB). Select any template to see the services it runs, its requirements, and next steps. Some templates ask for configuration values under the card before you continue, such as Admin email for Directus.

On Domain, configure how visitors reach your app:

  • Turn on Use flywp.xyz test domain to have FlyWP generate a testing subdomain.
  • Enter your own hostname in Domain Name for a custom domain.

The Domain step with a custom domain and its DNS record

For a custom domain, you can tick Add DNS record on Cloudflare to let FlyWP create the DNS record for you automatically. Otherwise, point the hostname to your server yourself, then verify the domain on the app's Domains page after deployment. Enable HTTPS is always on for an app.

Test domains are intended for testing only. Use your own domain for a live site.

On Environment, FlyWP lists the variables declared in your Compose file. Each variable includes a Value field. Turn on Secret to hide sensitive values on screen.

The Environment step with two variables, one of them secret

To fill multiple variables at once, paste the text of a .env file and click Import .env. FlyWP automatically ignores comment lines and empty lines, and strips surrounding quotes from values. Only variables used by your app will receive values from the pasted text.

On Confirm and deploy, enter a Name for your app. Review the summary (source, server, domain, services and resources), then click Deploy.

The Confirm and deploy step with the app name, server, domain and safety check

The deploy runs in the background, so you can safely leave the page while it finishes. Open the app from the server's site list to follow its progress. When deployment completes, the app status switches to running and the domain starts serving your app.

If an initial deploy fails, your app stays in the dashboard alongside its deploy log. Check the last lines of the log to diagnose the problem, adjust your Compose file or environment variables, and deploy again from the Deploys page. See Deploys.

Still stuck? How can we help?

View as Markdown