Will it run on my machine?
Tick the self-hosted apps you want and pick the machine. This page adds up the RAM and disk figures each app's own documentation publishes, compares them with the machine, and checks that every container image in each app's compose file has a build for its CPU. Where an app publishes no figure, it says so instead of guessing.
Tick at least one app.
Memory
Not included in any total: the operating system, Docker itself and the Caddy proxy container also need memory and disk. None of these is added here, because no figure for them is cited on this page; leave headroom for them.
CPU architecture
Disk
How the answer is worked out
- Only published figures. Each RAM and disk figure is the one the app's own site or repository states, copied with its conditions and the date it was checked. Of the twenty apps, six publish a RAM figure for the whole server (Immich, Jellyfin, Home Assistant, PhotoPrism, Stirling-PDF and Grafana), Nextcloud publishes one per PHP process, and thirteen publish none. Only Jellyfin and Stirling-PDF publish a disk size.
- No figure is never zero. Vaultwarden, Paperless-ngx, Uptime Kuma, Audiobookshelf, Navidrome, FreshRSS, Forgejo, Mealie, Actual Budget, linkding, Miniflux, Kavita and Syncthing publish no RAM figure, so they are listed as no published figure, not counted. Adding them as 0 would make every set look as if it fits.
- Per-process is not per-server. Nextcloud's 128 MB minimum and 512 MB recommended are per PHP process; the total depends on how many run at once, which depends on users and activity. The page shows those figures next to the total but never adds them to it.
- Three verdicts. Fits comfortably when the recommended figures add up to no more than the machine's RAM; tight when only the minimums fit; does not fit when even the minimums are over. Where an app publishes only one of the two figures, that figure is used for both and the table says so (Home Assistant publishes a 2 GB minimum and no recommended figure).
- What to drop first. When a set does not fit, the apps with figures are ordered by minimum RAM, largest first. Dropping from the top until the rest fits leaves the largest number of apps that still fit on their minimums.
- Architecture, image by image. An app counts as running on a Raspberry Pi only if every image in its compose file (the app, its database, its cache) publishes a
linux/arm64build; on a mini PC, laptop or x86 VPS the same check is made forlinux/amd64. The lists were read from each image's manifest on its registry on the checked date; the links go to the registry page that shows the same OS/Arch list. On 2026-09-23 every image of all twenty apps had both builds.
What this cannot tell you
- How much the apps really use. Published figures are the projects' own guidance, not measurements of your library. Immich's docs say it can run in 4 GB only with machine learning (face and smart search) turned off; Jellyfin says 4 GB "may be enough" on a Linux server without a desktop. Those conditions are shown next to the figures.
- The operating system, Docker and Caddy. They need memory and disk too and are not in any total.
- CPU speed. The check covers architecture, not speed. What the apps say about CPUs (Jellyfin's CPU figures assume hardware-accelerated transcoding; Immich's machine learning on x86 needs the x86-64-v2 level) is listed under the architecture table when you pick them.
- A 32-bit Raspberry Pi OS. The Pi rows assume a 64-bit OS, where Docker pulls the
linux/arm64builds. - Tags move. Most images follow
latest,stableor a major tag, so a later release could add or drop a platform. The date each list was read is shown with it.
The machines
- Raspberry Pi 4 Model B: Broadcom BCM2711, quad-core Cortex-A72 (Arm v8) 64-bit at 1.8 GHz; RAM 1, 2, 3, 4 or 8 GB. Source: Raspberry Pi 4 Model B product brief checked 2026-09-23
- Raspberry Pi 5: Broadcom BCM2712, quad-core 64-bit Arm Cortex-A76 at 2.4 GHz; RAM 1, 2, 4, 8 or 16 GB. Source: Raspberry Pi 5 product brief checked 2026-09-23
- Mini PC, old laptop, small VPS: x86-64 (
linux/amd64). These vary too much for one figure, so you type your own RAM and free disk.
The figures behind every answer
Each figure links to the page it comes from. The same data, with each app's compose file, is on the app pages; to run a set together, tick them in the builder.
-
Nextcloud
RAM: minimum 128 MB per PHP process, recommended 512 MB per PHP process. Per PHP process, not per server: Nextcloud says the total varies greatly with the number of users, apps, files and server activity. The built-in updater needs at least 256 MB. checked 2026-09-23
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: db, redis, app. checked 2026-09-23
-
Immich
RAM: minimum 6 GB, recommended 8 GB. With 4 GB, Immich can run only with machine learning (face and smart search) disabled. If you set Docker resource limits, the Postgres container needs at least 2 GB of its own. checked 2026-09-23
Disk: no published figure. No size is published. Thumbnails and transcoded video add 10-20% to the size of the library on average; the Postgres files are typically 1-3 GB and should be on local SSD, never a network share. (Immich docs: Requirements) checked 2026-09-23
Builds for every image: amd64 yes, arm64 yes. Registry pages: immich-server, immich-machine-learning, redis, database. checked 2026-09-23
-
Jellyfin
RAM: minimum 4 GB, recommended 8 GB. 8 GB is the recommendation for an average deployment; 4 GB "may be enough" for a Linux server without a desktop. Add more on Windows 11. checked 2026-09-23
Disk: recommended 100 GB SSD, no minimum published. For the OS, Jellyfin's own files and the transcoding cache; the media library is extra and may sit on any storage faster than your media's bitrate, network shares included. checked 2026-09-23
Builds for every image: amd64 yes, arm64 yes. Registry pages: jellyfin. checked 2026-09-23
-
Vaultwarden
RAM: no published figure.
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: vaultwarden. checked 2026-09-23
-
Home Assistant
RAM: minimum 2 GB, no recommended figure published. Published as the minimum for a Home Assistant OS virtual machine. The Container instructions on the same page, which this compose file follows, give no separate figure. checked 2026-09-23
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: homeassistant. checked 2026-09-23
-
Paperless-ngx
RAM: no published figure.
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: broker, db, webserver. checked 2026-09-23
-
Uptime Kuma
RAM: no published figure.
Disk: no published figure. No size published, but network file systems such as NFS are not supported: map the data folder to a local directory or volume. (Uptime Kuma README (Docker Compose)) checked 2026-09-23
Builds for every image: amd64 yes, arm64 yes. Registry pages: uptime-kuma. checked 2026-09-23
-
Audiobookshelf
RAM: no published figure.
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: audiobookshelf. checked 2026-09-23
-
FreshRSS
RAM: no published figure.
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: freshrss. checked 2026-09-23
-
Forgejo
RAM: no published figure. No figure. The project only says Forgejo "requires an order of magnitude less resources than other forges". (forgejo.org front page (Lightweight and performant)) checked 2026-09-23
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: server. checked 2026-09-23
-
Mealie
RAM: no published figure. No minimum is published. The official compose file caps the container at 1000M, and the docs recommend an explicit limit because Python can pre-allocate far more memory than it needs on a machine with a lot of RAM. (Mealie docs: Installation, SQLite (Recommended)) checked 2026-09-23
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: mealie. checked 2026-09-23
-
Actual Budget
RAM: no published figure.
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: actual-server. checked 2026-09-23
-
Stirling-PDF
RAM: recommended 4 GB, no minimum published. For a small team of 1-10 users; the same page recommends 8-16 GB for 10-50 users. A 50 MB PDF with complex graphics can take 200-500 MB of memory while it is processed, and OCR and PDF-to-image are the heaviest operations. checked 2026-09-23
Disk: recommended 10 GB free space, no minimum published. For a small team of 1-10 users; 50 GB (SSD recommended) for 10-50 users. checked 2026-09-23
Builds for every image: amd64 yes, arm64 yes. Registry pages: stirling-pdf. checked 2026-09-23
-
linkding
RAM: no published figure. No figure. The installation page only says the 'plus' image variant, which runs Chromium to save page snapshots, needs more memory; this file uses the plain image. (linkding docs: Installation (Using Docker)) checked 2026-09-23
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: linkding. checked 2026-09-23
-
Miniflux
RAM: no published figure.
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: miniflux, db. checked 2026-09-23
-
Grafana
RAM: minimum 512 MB, no recommended figure published. Published as "Minimum recommended memory". Some features might need more, and the figure covers the Grafana server only, not the data sources such as Prometheus or Loki that it reads from. checked 2026-09-23
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: grafana. checked 2026-09-23
-
PhotoPrism
RAM: minimum 3 GB, no recommended figure published. Physical memory, plus at least 4 GB of swap. Beyond the minimum, RAM should match the number of CPU cores. The docs advise against a hard memory limit, because the indexer temporarily needs more for large files, RAW images and panoramas. checked 2026-09-23
Disk: no published figure. No size is published. Indexing large collections benefits greatly from local SSD storage, especially for the database and cache files. (PhotoPrism docs: Getting Started (System Requirements)) checked 2026-09-23
Builds for every image: amd64 yes, arm64 yes. Registry pages: photoprism, mariadb. checked 2026-09-23
-
Kavita
RAM: no published figure. No requirement is published; the wiki says "most modern systems should be fine" and that users have reported running it on as little as 256 MB of RAM and a single-core 1 GHz CPU. (Kavita wiki: Getting Started (System Requirements)) checked 2026-09-23
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: kavita. checked 2026-09-23
-
Syncthing
RAM: no published figure.
Disk: no published figure.
Builds for every image: amd64 yes, arm64 yes. Registry pages: syncthing. checked 2026-09-23