# 5 Self-Hosted Apps Worth Running on Your Own Server

> Five open source apps worth self-hosting: analytics, automation, uptime, passwords and git. What each replaces, what it costs in RAM, and how to install it.

Canonical URL: https://levelrail.com/blog/best-self-hosted-apps-worth-running/

> [!TIP]
> Levelrail runs all five on one server with HTTPS, backups and rollback. It is open source (Apache 2.0): [star it on GitHub](https://github.com/glincker/levelrail) or [install it in one command](https://levelrail.com/install/).

Most "best self hosted apps" lists are a wall of 80 logos. This one has five, picked because each replaces a hosted tool people pay for every month, and each one is small enough to run on a single cheap server.

Every app below is a one-click template in Levelrail, a self-hosted platform that deploys apps to your own Linux server from a git push or a template. Each section ends with the install command.

## Run them on one server, not five

The hard part of self-hosting is not the first install. It is the fifth, when you have five apps, five upgrade schedules and no idea which volume holds what.

Levelrail gives you one place for that: HTTPS on your own domains, logs per app, deploy history with rollback, and backups of app volumes to an S3-compatible bucket. If you have not installed it yet, [the install guide](https://levelrail.com/install/) takes a few minutes, and [the five-minute walkthrough](https://levelrail.com/blog/install-levelrail-five-minutes/) shows the real output.

The templates are listed in the [template catalog](https://docs.levelrail.com/template-catalog). A [smoke run on 2026-10-25](https://docs.levelrail.com/templates-status) brought up the five below, and all of them passed. If you already run another platform, the [comparison with Coolify](https://levelrail.com/compare/coolify/) lists the differences with sources.

## 1. Uptime Kuma: know before your users do

![The Uptime Kuma dashboard listing monitors with their status and a response time chart](https://levelrail.com/blog/best-self-hosted-apps-worth-running/uptime-kuma-dashboard.webp "Screenshot: Uptime Kuma dashboard, from the project README (MIT license). Source: github.com/louislam/uptime-kuma")

**Replaces:** hosted uptime monitoring subscriptions.

Uptime Kuma checks HTTP, TCP, DNS and ping targets on a schedule and shows a dashboard. It is for anyone with more than one site or service who currently finds out about outages from a customer.

A concrete use: add every app you host here, plus the ones you do not. Put the monitor on the same server as the apps, and you will learn the one thing that breaks the setup: if the server dies, the monitor dies with it. Point a second check at it from somewhere else.

Watch out for:

- Memory is small. The template recommends 256 MB.
- Back up the `data` volume, which holds the SQLite database and uploads.
- Upgrades matter. The template pins the 1.23 line. Version 2 migrates the database to a layout that cannot be reversed, so back up first and upgrade on purpose.

Install it. This template ships with an install form, so you can set a domain in the same command:

```bash
levelrail-cli templates install uptime-kuma --domain kuma=status.example.com
```

## 2. Umami: analytics without a cookie banner

<figure class="app-mark"><svg role="img" aria-label="umami logo" height="44" fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2.203 8.611H.857a.845.845 0 0 0-.841.841v.858a13.31 13.31 0 0 0-.016.6c0 6.627 5.373 12 12 12 6.527 0 11.837-5.212 11.996-11.701 0-.025.004-.05.004-.075V9.452a.845.845 0 0 0-.841-.841h-1.346c-1.159-4.329-5.112-7.521-9.805-7.521-4.692 0-8.645 3.192-9.805 7.521Zm18.444 0H3.37c1.127-3.702 4.57-6.399 8.638-6.399 4.069 0 7.512 2.697 8.639 6.399Z"/></svg><figcaption>The Umami logo, shown only to identify the project. Visit <a href="https://umami.is">umami.is</a> for screenshots.</figcaption></figure>

**Replaces:** a paid analytics subscription for small sites.

Umami counts visits, pages and referrers without tracking cookies. It is for people who want to know which post got read, not to profile anyone.

A concrete use: one Umami instance can hold every site you run. Paste one script tag per site and you have a single dashboard instead of one login per project.

Watch out for:

- It runs with a Postgres container next to it. The template recommends 512 MB for the app.
- Back up `umami_db_data`. That volume is your whole history.
- Migrations run on boot and only go forward. Keep the `postgresql-` variant of the image tag and upgrade one release at a time.

Install it:

```bash
levelrail-cli templates deploy umami
```

## 3. n8n: automation you can see

<figure class="app-mark"><svg role="img" aria-label="n8n logo" height="44" viewBox="0 0 228 120" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M204 48C192.817 48 183.42 40.3514 180.756 30H153.248C147.382 30 142.376 34.241 141.412 40.0272L140.425 45.9456C139.489 51.5648 136.646 56.4554 132.626 60C136.646 63.5446 139.489 68.4352 140.425 74.0544L141.412 79.9728C142.376 85.759 147.382 90 153.248 90H156.756C159.42 79.6486 168.817 72 180 72C193.255 72 204 82.7452 204 96C204 109.255 193.255 120 180 120C168.817 120 159.42 112.351 156.756 102H153.248C141.516 102 131.504 93.5181 129.575 81.9456L128.588 76.0272C127.624 70.241 122.618 66 116.752 66H107.244C104.58 76.3514 95.183 84 84 84C72.817 84 63.4204 76.3514 60.7561 66H47.2439C44.5796 76.3514 35.183 84 24 84C10.7452 84 0 73.2548 0 60C0 46.7452 10.7452 36 24 36C35.183 36 44.5796 43.6486 47.2439 54H60.7561C63.4204 43.6486 72.817 36 84 36C95.183 36 104.58 43.6486 107.244 54H116.752C122.618 54 127.624 49.759 128.588 43.9728L129.575 38.0544C131.504 26.4819 141.516 18 153.248 18L180.756 18C183.42 7.64864 192.817 0 204 0C217.255 0 228 10.7452 228 24C228 37.2548 217.255 48 204 48ZM204 36C210.627 36 216 30.6274 216 24C216 17.3726 210.627 12 204 12C197.373 12 192 17.3726 192 24C192 30.6274 197.373 36 204 36ZM24 72C30.6274 72 36 66.6274 36 60C36 53.3726 30.6274 48 24 48C17.3726 48 12 53.3726 12 60C12 66.6274 17.3726 72 24 72ZM96 60C96 66.6274 90.6274 72 84 72C77.3726 72 72 66.6274 72 60C72 53.3726 77.3726 48 84 48C90.6274 48 96 53.3726 96 60ZM192 96C192 102.627 186.627 108 180 108C173.373 108 168 102.627 168 96C168 89.3726 173.373 84 180 84C186.627 84 192 89.3726 192 96Z" fill="#ea4b71"/></svg><figcaption>The n8n logo, shown only to identify the project. n8n is under the Sustainable Use License, so we link instead of copying its screenshots: <a href="https://n8n.io">n8n.io</a>.</figcaption></figure>

**Replaces:** hosted workflow automation with per-task pricing.

n8n is a visual editor where you connect services with nodes. It suits people who keep writing small scripts to move data between tools and would rather draw it.

A concrete use: a workflow that watches a form, writes the row to a sheet and posts to chat. You can run the same flow a thousand times without watching a task counter.

Watch out for:

- The template recommends 512 MB.
- Back up `n8n_data`. It holds the database and the encryption key. If you lose the key, every saved credential becomes unreadable.
- Read the release notes before changing the image tag, because nodes get removed between versions.
- The default template stores data in a SQLite file. For heavier workflow volumes there is an `n8n-postgres` template.

Install it:

```bash
levelrail-cli templates deploy n8n
```

## 4. Vaultwarden: a password manager you host

<figure class="app-mark"><svg role="img" aria-label="vaultwarden logo" height="44" fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M11.5405.4477c-.143.2381-.3334.5239-.4382.6286-.1715.181-.181.1715-.7334-.3715-.6667-.6666-.7715-.6476-1.086.2096-.1332.3524-.295.6-.4285.6762-.1905.0953-.2856.0667-.7619-.2761-.8001-.562-.9429-.4763-1.0954.619-.038.2763-.1143.4763-.2095.5144-.0762.0286-.4-.0667-.7049-.219-.781-.3716-.8953-.2858-.9048.619 0 .3715-.0476.7238-.0952.7715-.0667.0667-.3144.0476-.781-.0666-.9144-.2191-.9716-.162-.7525.7524.1142.4667.1333.7144.0666.781-.0476.0477-.4.0953-.7715.0953-.9143.0095-.9906.1238-.6095.9049.3714.781.2762 1.0096-.4477 1.1049-1.0669.1523-1.1335.2857-.543 1.0762.4763.6286.4477.724-.3429 1.0096-.8476.324-.8667.4286-.2 1.0954.543.5524.5525.562.3715.7334-.1047.1048-.3905.2953-.6286.4382-.5906.3428-.5906.5714 0 .9143.2381.143.5239.3333.6286.4381.181.1715.1715.181-.3715.7335-.6667.6667-.6476.7715.2096 1.0859.3525.1332.6.2951.6762.4285.0953.1905.0667.2857-.2761.762-.562.8-.4763.9428.6191 1.0953.2762.038.4762.1143.5143.2095.0286.0763-.0666.4-.219.705-.3716.7809-.2858.8953.619.9048.3715 0 .724.0476.7715.0951.0667.0667.0476.3144-.0666.7812-.219.9143-.162.9715.7524.7524.4667-.1143.7144-.1334.7811-.0667.0476.0476.0952.4.0952.7715.0095.9144.1239.9906.9049.6096.781-.3715 1.0096-.2762 1.1049.4476.1524 1.067.2857 1.1335 1.0762.543.6286-.4763.724-.4477 1.0097.343.3238.8476.419.8667 1.1049.1903.6666-.6476.6095-.6571 1.1619.2763.343.581.5715.581.9145 0 .5523-.9334.4952-.924 1.1619-.2763.6859.6764.781.6573 1.0954-.2.1333-.3523.2952-.6.4286-.6762.1905-.0953.2858-.0667.762.2762.8.562.943.4762 1.0953-.619.0381-.2763.1143-.4763.2096-.5144.0762-.0286.4.0666.7048.219.781.3715.8954.2857.905-.619 0-.3715.0474-.724.0951-.7716.0667-.0667.3143-.0476.781.0667.9145.219.9716.162.7525-.7524-.1143-.4668-.1333-.7145-.0667-.7812.0477-.0475.4-.0951.7715-.0951.9144-.0095.9906-.1238.6097-.905-.3715-.7809-.2763-1.0096.4476-1.1048 1.0667-.1523 1.1334-.2857.543-1.0762-.4763-.6287-.4478-.724.3428-1.0097.8477-.3238.8668-.419.1905-1.105-.6477-.6666-.6572-.6095.2762-1.1618.2953-.181.4382-.324.4382-.4573 0-.1334-.143-.2763-.4382-.4571-.9334-.5525-.924-.4954-.2762-1.1621.6763-.6858.6572-.781-.2-1.0953-.3524-.1334-.6001-.2953-.6763-.4287-.0952-.1905-.0667-.2857.2763-.7619.562-.8001.4761-.9429-.6192-1.0954-.2762-.038-.4762-.1143-.5143-.2096-.0286-.0762.0667-.4.219-.7048.3715-.781.2858-.8953-.619-.905-.3715 0-.7239-.0474-.7716-.0951-.0666-.0666-.0476-.3143.0667-.781.219-.9143.162-.9715-.7524-.7524-.4668.1142-.7144.1333-.781.0666-.0478-.0477-.0953-.4-.0953-.7715-.0095-.9144-.1238-.9906-.905-.6096-.7809.3714-1.0095.2763-1.1047-.4477-.1524-1.0667-.2858-1.1334-1.0763-.543-.6287.4764-.724.4478-1.0096-.3428-.324-.8476-.4287-.8667-1.0954-.2-.5525.543-.562.5525-.7335.3715-.1047-.1048-.2952-.3905-.438-.6286C12.2739.1429 12.1309 0 11.9976 0c-.1333 0-.2761.1429-.4571.4477zm.9334 1.9335c.1048.1048.1905.3143.1905.4762 0 .162-.0857.3715-.1905.4763-.4096.4095-1.143.1048-1.143-.4763 0-.362.3048-.6667.6667-.6667.162 0 .3715.0857.4763.1905zM11.007 4.0004c.924.8953 1.0573.8953 1.9812 0l.6858-.6667.6667.1905c.762.2095 1.9431.7143 1.9431.8382 0 .038-.8953 2.6287-1.9907 5.7434-1.0953 3.1146-2.0478 5.8386-2.105 6.0577-.0666.2286-.1524.4096-.1905.4096-.038 0-.1143-.162-.162-.3524-.057-.2-1-2.9432-2.1049-6.1054-1.1143-3.1622-2.0192-5.772-2.0192-5.791 0-.1143 2.1145-.9334 2.5622-.9811.0285-.0095.3524.2857.7333.6572zm-3.3432 9.601c1.3526 3.7908 2.4288 6.9054 2.4003 6.934-.0667.0762-1.0763-.219-1.5048-.4477-.343-.1715-.3525-.1905-.4763-1-.0763-.524-.1906-.905-.3049-1.0573-.1904-.2381-.219-.2381-.8667-.1715-1.4287.162-1.3715.181-1.9335-.5714-.6096-.8096-1.181-1.9431-1.4573-2.9051-.162-.5334-.219-1.0668-.2571-2.0954l-.0477-1.3812.8572-.4571c1.1525-.6 1.181-.7049.5905-1.8764-.4285-.8477-.4285-.8.124-1.6002.1523-.2286.3142-.381.3523-.3334.038.0381 1.1716 3.1717 2.524 6.9627Zm11.8203-6.2101.2382.4-.3906.7715c-.5905 1.181-.562 1.2858.581 1.8859l.8478.4476v1.0763c0 1.2478-.1715 2.2193-.581 3.2575-.3144.7905-.943 1.8383-1.448 2.4288l-.3237.381-.7524-.1143c-.4096-.0666-.8668-.1142-1.0096-.1142-.4 0-.6002.3523-.7335 1.2858l-.1238.8286-.5048.219c-.581.2573-1.2859.4668-1.3526.3906-.038-.038 4.01-11.5249 4.8482-13.7728l.0952-.2381.1905.2381c.1048.1238.2953.4096.419.6287zM3.7586 8.715c.4478.4382.181 1.0954-.4475 1.0954-.4 0-.6478-.2381-.6478-.6286 0-.6286.6573-.9144 1.0954-.4668zm17.221-.1332c.2761.1523.3523.2666.3523.5999 0 .381-.2477.6287-.6381.6287-.6382 0-.9144-.6477-.4573-1.0954.2572-.2666.4287-.2952.743-.1332zM7.2352 19.1543c.3429.8191-.8287 1.3239-1.2097.5144-.1429-.2953-.1429-.343.0095-.5716.3239-.4952.9906-.4666 1.2.0572zm10.563-.2572c.238.1905.3047.524.1523.8192-.3905.7619-1.524.219-1.1905-.562.1713-.4286.6667-.5524 1.0382-.2572z"/></svg><figcaption>The Vaultwarden logo, shown only to identify the project. Vaultwarden is AGPL-3.0, so we link instead of copying screenshots: <a href="https://github.com/dani-garcia/vaultwarden">github.com/dani-garcia/vaultwarden</a>.</figcaption></figure>

**Replaces:** a hosted password manager subscription.

Vaultwarden is a small server that works with the Bitwarden clients, so you keep the browser extension and phone apps and move only the server. It is for individuals and families who want the vault on hardware they control.

A concrete use: a shared family vault for the streaming logins and the router password, behind your own domain.

This is the one app on the list where a mistake costs the most, so be strict:

- Serve it over HTTPS only. The clients expect it.
- Back up `vaultwarden_data`, which holds the database, attachments and keys, and keep a copy offline.
- Tag bumps are safe and frequent, since the web vault has to match the server. Do not let it fall far behind.
- Memory is the lowest of the five. The template recommends 256 MB.

Install it:

```bash
levelrail-cli templates deploy vaultwarden
```

## 5. Gitea: your own git server

![The Gitea home dashboard showing the activity feed and repository list](https://levelrail.com/blog/best-self-hosted-apps-worth-running/gitea-home.webp "Screenshot: Gitea home page, from the project README (MIT license). Source: github.com/go-gitea/gitea")

**Replaces:** a hosted git service for private repositories.

Gitea is a light git host with issues, pull requests and a package registry. It is for solo developers and small teams who want private code on their own disk, or a place to mirror what lives elsewhere.

A concrete use: keep client work or infrastructure repos here, and connect it to Levelrail as a git provider so a push deploys the app. Levelrail lists Gitea next to GitHub, GitLab and Bitbucket in its git integrations.

Watch out for:

- The default template runs Gitea with a MariaDB container and recommends 512 MB. If you prefer one database engine everywhere, use `gitea-postgres`.
- Back up both `gitea_db_data` and `gitea_data`. The repositories live in the second one.
- Gitea migrates its database on boot and does not support downgrades. Move one minor version at a time and read the breaking changes first.

Install it:

```bash
levelrail-cli templates deploy gitea
```

The git port is published as 2222 by default, so open it in your firewall only if you want SSH clones.

## What all five need from you

The apps differ, but the chores are the same. Pick a backup target before you store anything you care about, and test a restore once. The docs on [backups and storage](https://docs.levelrail.com/backups-and-storage) cover app volume backups, and every section above names the volume to protect.

Upgrade on purpose, one version at a time, with a backup taken first. And keep a rollback in mind: [this walkthrough](https://levelrail.com/blog/rollback-failed-deploy-docker/) shows how a bad release gets undone.

On sizing, the five templates recommend 2 GB of memory in total. A 4 GB server runs them with room left for the platform. Browse the [templates page](https://levelrail.com/templates/) if you want more than five.

## Frequently asked questions

### What should I self-host first?

Start with something small that you will notice if it breaks, like an uptime monitor. Uptime Kuma is a good first pick: its template recommends 256 MB of memory and it keeps everything in one data volume. Move on to a password manager or analytics once you trust your backups.

### How much server do I need to self-host these apps?

The memory recommended by the five templates adds up to 2 GB: 256 MB each for Uptime Kuma and Vaultwarden, 512 MB each for Umami, n8n and Gitea. Add room for the platform itself, which boots on 1 GB of RAM, so a 4 GB server is a comfortable size for all five.

### Is self-hosting a password manager safe?

It is safe only if you keep it patched, serve it over HTTPS and back up its data volume somewhere other than the same server. Vaultwarden stores its database, attachments and keys in one volume. Keep an offline copy of that backup.

### Do I need Docker knowledge to self-host these?

Not to get them running. Each app is a ready-made template with its image, database and volumes defined, so you install it from the dashboard or one CLI command. You will want to understand volumes and backups before you trust it with real data.
