# One-click apps

> Have Docker, WordPress, WireGuard or another app installed on a new server's first boot, how to watch it happen, and what to do if it fails.

Source: https://rack4.io/help/one-click-apps · Updated: 2026-10-30

To get Docker, WordPress, WireGuard or another app on a new server, pick it under **One-click app** on the order form; it's installed on the server's first boot. A one-click app is ordinary software from the project's own repository, so you manage it afterwards like anything else on the server.

There's no special image behind an app. Your server boots from the distribution's official cloud image, like any other, and then installs the app from the project's own repository, or the distribution's. So you get the current version, set up the usual way, and you can manage it afterwards like anything else on the server. Each app has its own page at [rack4.io/apps](https://rack4.io/apps), with what gets installed and what to do next.

## The list

One app per server. The plan in brackets is the smallest one it runs well on; see [Choose a plan](https://rack4.io/help/choosing-a-plan) for the sizes.

**Containers**

- **Docker** (Budget): Docker Engine with the Buildx and Compose plugins, from Docker's own repository.
- **Coolify** (Standard): a self-hosted platform for deploying apps and databases from Git, with a web UI.

**Web servers and sites**

- **nginx + Certbot** (Budget): nginx with Certbot ready to fetch a free Let's Encrypt certificate.
- **Caddy** (Budget): the web server that gets and renews its own HTTPS certificates.
- **LEMP stack** (Budget): nginx, MariaDB and PHP-FPM, set up so `.php` files run straight away.
- **WordPress** (Budget): the latest WordPress on nginx, PHP-FPM and MariaDB, ready for its install screen.
- **Ghost** (Budget): Ghost's own Docker setup for blogs and newsletters; it starts once you give it your domain and mail service.

**Databases**

- **PostgreSQL** (Budget): PostgreSQL from the distribution, listening on localhost only.
- **MariaDB** (Budget): MariaDB on localhost, with root logging in through the Unix socket.
- **Redis** (Budget): Redis, or the Valkey fork where the distribution ships that instead, on localhost.

**Developer tools**

- **Node.js LTS** (Budget): the Node.js LTS release from NodeSource at install time (or the distribution's own Node.js if NodeSource's repository can't be set up), with npm, and pm2 to keep your app running.
- **n8n** (Standard): workflow automation you host yourself, in Docker.
- **OpenClaw** (Standard): your own always-on AI assistant, installed for its own user with its gateway kept private.
- **Forgejo** (Budget): a self-hosted Git forge from its signed long-term-support binaries.

**VPN and networking**

- **WireGuard VPN** (Budget): a personal VPN with one client profile ready to import.
- **Tailscale** (Budget): the Tailscale client, ready to join your tailnet with one command.
- **AdGuard Home** (Budget): ad and tracker blocking DNS that only answers your own devices.

**Monitoring**

- **Uptime Kuma** (Budget): a status page and uptime monitor, in Docker.

**Game servers**

- **Minecraft (Paper)** (Standard): a Minecraft Java server on Paper, run by systemd. You accept Mojang's EULA yourself.

**Files, docs and passwords**

- **Vaultwarden** (Budget): a Bitwarden-compatible password server, private until you claim it.
- **Nextcloud** (Standard): Nextcloud All-in-One, set up through a private page you open over SSH.
- **BookStack** (Budget): a documentation wiki on nginx, PHP-FPM and MariaDB.

**Photos and media**

- **Jellyfin** (Standard): a media server for your films, shows and music. There's no GPU, so plan on direct play.
- **Immich** (Extreme): photo and video backup from your phone, like Google Photos.

**Web analytics**

- **Plausible Analytics** (Standard): Plausible Community Edition, cookie-free analytics with ClickHouse.
- **Umami** (Budget): cookie-free analytics with PostgreSQL.

**Chat**

- **Matrix Synapse** (Standard): your own Matrix homeserver, named when you give it its domain.

**AI models**

- **Ollama + Open WebUI** (Standard): small open models on the CPU, with a chat interface.

Apps work on Ubuntu, Debian, AlmaLinux, Rocky Linux and Fedora. Coolify, WordPress and Matrix Synapse need Ubuntu or Debian, and BookStack needs Ubuntu 24.04 or later or Debian. Arch Linux has no apps; use a [setup script](https://rack4.io/help/setup-scripts) there instead.

## Pick one

**In the panel**, **One-click app** is the last part of **Choose your server** on the order form. Pick one, or leave it on **None: just the operating system** for a plain server. The first few apps show; search by name, pick a category, or choose **Show all apps**. Apps that don't run on the system you picked are hidden, and an app that needs a bigger plan says so. [Order your first server](https://rack4.io/help/order-your-first-server) walks through the whole form.

[Screenshot: The One-click app part of the order form: a search box, category buttons, and Docker picked among the first few apps, each with a line on what it installs] Notes in brackets name the systems an app needs, or the smallest plan it runs well on.

Every app page at [rack4.io/apps](https://rack4.io/apps) has an order link that opens the form with the app already picked.

**With the API**, add `app` to the order, using the app's id from its page (`docker`, `wordpress`, `wireguard` and so on):

```json
{"plan":"standard","image":"ubuntu-24.04","hostname":"web-1","sshKeyIds":["key_…"],"app":"docker"}
```

The [API reference](https://my.rack4.io/api) has every field. [API quickstart](https://rack4.io/help/api-quickstart) shows how to send it.

**With the CLI**:

```bash
rack4 servers create --plan standard --image ubuntu-24.04 --hostname web-1 --key key_… --app docker
```

You can add extra packages and your own first-boot script to the same order. [Extra packages and setup scripts](https://rack4.io/help/setup-scripts) explains how.

## Check on it

The server shows as running, and answers SSH, before the app is finished. Docker or Redis take under a minute. Coolify and WordPress can take several. Log in and watch:

```bash
tail -F /var/log/vps9-setup.log
```

The log starts once the app's packages are in; until then `tail -F` waits for it, and the package installs print to `/var/log/cloud-init-output.log`. Press Ctrl+C to stop watching. When setup has ended, this file holds its exit code:

```bash
cat /var/lib/vps9-setup.exit
```

`0` means everything worked. Anything else means something failed, and the log says what. If the file isn't there yet, setup is still running. `cloud-init status --wait` waits until first boot is done, but it can say `status: done` even when the app or your script failed, so the exit file is the one to trust.

Then follow the app's next steps, on its page at [rack4.io/apps](https://rack4.io/apps) and in the email that says your server is ready.

## Apps with an admin account to claim

Several apps would let the first visitor to a setup page become the admin. None of ours leaves that page open: here is what each one does on a fresh install.

| App | Where the setup page listens | How you claim it |
| --- | --- | --- |
| n8n | `127.0.0.1:5678`, not reachable from the internet | Through an SSH tunnel. [Self-host n8n](https://rack4.io/help/self-host-n8n) |
| Uptime Kuma | `127.0.0.1:3001`, not reachable from the internet | Through an SSH tunnel. [Uptime Kuma](https://rack4.io/apps/uptime-kuma) |
| OpenClaw | `127.0.0.1:18789`, and it asks for a token even there | Through an SSH tunnel or Tailscale. [Self-host OpenClaw](https://rack4.io/help/self-host-openclaw) |
| WordPress | Ports 80 and 443, behind an HTTP login | The login's password is only in `/root/wordpress-install.txt`. Until you add HTTPS it crosses the network unencrypted, so do the domain and certificate steps first. [WordPress on a VPS](https://rack4.io/help/wordpress-on-a-vps) |
| Vaultwarden, Plausible Analytics | `127.0.0.1`, not reachable from the internet | Create your account through an SSH tunnel, then run `vps9-https` with your domain. [Vaultwarden](https://rack4.io/apps/vaultwarden), [Plausible Analytics](https://rack4.io/apps/plausible) |
| Nextcloud | `127.0.0.1:8080`, not reachable from the internet | Open All-in-One's page through an SSH tunnel and copy its passphrase. [Nextcloud](https://rack4.io/apps/nextcloud) |
| Jellyfin, AdGuard Home, Forgejo, Umami, BookStack, Immich, Ollama + Open WebUI | No setup page: the installer creates the admin | The password is in a file only root can read, such as `/root/jellyfin-admin.txt`; the app's page names it. |
| Ghost, Matrix Synapse | Nothing runs until you give it a domain | `vps9-https` starts it and writes the admin login to `/root`. |
| Coolify | Port 8000 (6001 and 6002 for live updates and the terminal), blocked from outside the server | Coolify's own installer publishes these ports, so the server's firewall blocks them before it runs, over IPv4 and IPv6, until you run `vps9-coolify-open`. Claim the account through an SSH tunnel. Checked against the installer's source, not yet on a live server. [Deploy apps with Coolify](https://rack4.io/help/deploy-apps-with-coolify) |

Each app's page lists the ports it uses. The databases, Redis and Docker open none to the internet.

## Put an app on your domain with vps9-https

Most of the self-hosted apps (Vaultwarden to Ollama in the list above) listen on the server only, until you give them a domain. Point the domain's A record (and AAAA, once [IPv6 works](https://rack4.io/help/ipv6-setup)) at the server, allow ports 80 and 443 in the [panel firewall](https://rack4.io/help/server-firewall), then run:

```bash
vps9-https app.example.com
```

It installs Caddy from Caddy's own packages, puts the app behind it on your domain, sets the app's own address setting where it has one, and Caddy gets and renews a Let's Encrypt certificate. Run it again with another domain to move. Ghost's version also takes the owner's email, BookStack's uses nginx and Certbot, and Matrix Synapse's names the homeserver for good.

## If it failed

Read the end of the log first:

```bash
tail -n 50 /var/log/vps9-setup.log
```

If that file isn't there, or the app's commands are missing, the package step failed before the app's install began: look in `/var/log/cloud-init-output.log` instead.

The usual cause is a project's repository being briefly unreachable, which shows up as a download or `apt`/`dnf` error. Wait a few minutes and run the failed step again by hand, or reinstall the server with the same app. The app's page shows what a working install looks like.

If it fails the same way twice, [open a support ticket](https://my.rack4.io/support/new?category=server) with the server's name and the last 50 lines of the log.

## Apps and reinstalls

A reinstall wipes the disk and installs a fresh system: the same distribution by default, or another one you pick on the reinstall form. You can also keep the app the server had, choose a different one, or have none; an app only installs on a distribution it supports. The app installs again on the first boot after the reinstall, from scratch, so your data from the old install is gone unless you [backed it up](https://rack4.io/help/backups-you-should-run).

Taking an app off a running server is up to you: it's ordinary software, so remove it with `apt` or `dnf` the usual way. [Reinstall a server](https://rack4.io/help/reinstall-a-server) shows the app choices on the reinstall form.

## Next steps

- [Extra packages and setup scripts](https://rack4.io/help/setup-scripts)
- [The server overview page](https://rack4.io/help/server-overview), where the app's next steps and ports show
- [Use the panel firewall](https://rack4.io/help/server-firewall), for the ports an app opens
