# Starter apps

> Browse starter apps, check which one-click installers are available, and understand how WordPress and n8n use your project.

Source: https://docs.fortly.com/apps

A starter app is a ready-made application that Fortly installs into a project for you, with no code of your own to upload. Installing one creates an ordinary project: it has its own address, database, secrets, domains, schedules and backups, and you manage it exactly as you would a project you deployed yourself.

## Browse and select an app

Open **Apps** in the console. Choose a card to show that app in the preview above the catalogue. The logo strip scrolls horizontally; **Previous app** and **Next app** step through the apps matching your search and category. With a logo selected, use the left and right arrow keys to browse, or Home and End to reach the first and last result.

**View details** opens more information. **Deploy** appears only for an app marked **Ready to deploy**. A preview does not mean that a one-click installer is available.

## Current availability

You can install **WordPress** and **n8n** in one step. The other nine catalogue entries do not have registered one-click installers.

| App | Installer | Console status |
|---|---|---|
| [WordPress](#wordpress) | Implemented: PHP runtime, PostgreSQL, file storage, and a project address | Ready to deploy |
| [n8n](#n8n) | Implemented: Node.js runtime, PostgreSQL, and a project address | Ready to deploy |
| Shopify Storefront | No one-click installer | Not available |
| Ghost | No one-click installer | Not available |
| Strapi | No one-click installer | Not available |
| Directus | No one-click installer | Not available |
| Metabase | No one-click installer | Not available |
| Appsmith | No one-click installer | Not available |
| Umami | No one-click installer | Not available |
| Plausible | No one-click installer | Not available |
| Uptime Kuma | No one-click installer | Not available |

An unavailable app cannot be installed from the console. Previewing it does not create a project. You can also [deploy your own supported code](https://docs.fortly.com/deploy).

## Install an app

**Console**

For an app marked **Ready to deploy**:

1. Open **Apps**, choose the app, and select **Deploy**. You can also use **New project › Browse apps**.
2. Review the project name and any app-specific setup fields in the same panel.
3. Select **Deploy** to create the project and install the app.

The success panel offers **Open your app** and **Open project**. A failed install keeps the created project; **Edit settings and retry** reuses it. Apps marked **Unavailable** or **Not available** have no deploy action.

**API**

Installing through the API is two calls: create a project, then install the app into it by its slug.

```bash
curl -X POST https://api.fortly.com/projects \
  -H "Authorization: Bearer $FORTLY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-app"}'

# use the "name" from that reply, e.g. my-app-ada
curl -X POST https://api.fortly.com/projects/my-app-ada/app-templates/n8n/install \
  -H "Authorization: Bearer $FORTLY_TOKEN"
```

A successful install returns `200 OK` with the new release under `deploy` and the project's address under `url`. n8n takes no install parameters, so the body can be empty.

- `POST /projects/{name}/app-templates/{slug}/install` — Install an app into an existing project

If the project is created but the install fails, the project stays in your list and you can run the install again on it. An unknown slug returns `404` with `no app template named …`.

## WordPress

The WordPress installer asks for an admin email and a password of at least eight characters. The site title defaults to `My WordPress Site`, and the admin username defaults to `admin`. Its setup form offers **Generate** and **Show** for the password.

It uses Fortly's PHP runtime and the project's PostgreSQL database through the WordPress database bridge. Uploads use the project's file storage. The installer creates unique WordPress keys and salts and adds a `wp-cron` schedule that requests `/wp-cron.php` every fifteen minutes.

The template runs a bundled WordPress tree. Installing or updating themes, plugins, or WordPress core from its dashboard is not supported: those code changes are not retained across requests. The console shows this limit before installation. Site content is stored in PostgreSQL. The WordPress dashboard’s multipart media-upload path is not supported by this template. Upload files through Fortly’s [Storage](https://docs.fortly.com/files) workspace and insert their public URLs into your content instead.

### WordPress API parameters

Use the same install route with the `wordpress` slug. `email` and `password` are required; `title` and `user` are optional.

```bash
curl -X POST "https://api.fortly.com/projects/$PROJECT/app-templates/wordpress/install" --header "Authorization: Bearer $FORTLY_TOKEN" --header "Content-Type: application/json" --data @wordpress-install.json
```

Create `wordpress-install.json` with your own site details and admin password:

```json
{
  "title": "My WordPress Site",
  "user": "admin",
  "email": "you@example.com",
  "password": "replace-with-your-admin-password"
}
```

`$PROJECT` is the `name` returned when you created the project. Keep the password private; it becomes the WordPress admin credential.

## n8n

[n8n](https://n8n.io) is a workflow automation tool. You build workflows in its editor by connecting triggers (a webhook, a form, a timer) to steps that call other services.

### First visit

On the first visit, Fortly starts n8n and waits for its database, migrations, and server to become ready before forwarding the request. This uses its [readiness endpoint](https://docs.n8n.io/hosting/logging-monitoring/monitoring/), rather than the process-only health check.

Open the project's address. n8n asks you to create its owner account the first time anyone opens it, so do this straight after installing. Until you do, whoever opens the address first gets to create that account.

### Where it keeps its data

n8n stores its workflows and saved credentials in the project's PostgreSQL database. It connects with the credentials Fortly hands it when it starts, so there is nothing to configure. The database is backed up and exportable like any other project's; see [Backups](https://docs.fortly.com/data/backups).

### Its encryption key

The install generates a secret named `N8N_ENCRYPTION_KEY`, unique to this project, which n8n uses to encrypt the credentials you save in it. You can see its name, never its value, under the project's **Deployments › Environment**.

> **Warning:**
>
> Do not change or remove `N8N_ENCRYPTION_KEY`. n8n cannot read credentials saved under a different key, so every saved credential would have to be entered again.

### Workflows that run on a timer

n8n runs as a server process, so like any such project it is stopped after 15 minutes without a request and started again by the next one (see [idle projects](https://docs.fortly.com/concepts#idle-projects-and-waking-up)). n8n's own timers do not fire while it is stopped.

For a workflow that must run on time, start it with an n8n **Webhook** trigger instead, and add a Fortly [schedule](https://docs.fortly.com/deploy/schedules) that requests the webhook's path. A schedule's request wakes the project, so the workflow runs whether or not anyone has visited.

## After installing

An installed app is a normal project. You can:

- add your own domain on its **Domains** tab ([Domains](https://docs.fortly.com/domains));
- read its output on **Observability › Logs** ([Logs](https://docs.fortly.com/deploy/logs));
- query its database on the **Data** tab ([The database](https://docs.fortly.com/data));
- delete it like any project, which removes the app, its database and everything else it holds.
