dankhostself-host anything

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.

How the answer is worked out

What this cannot tell you

The machines

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.

  1. 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

  2. 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

  3. 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

  4. Vaultwarden

    RAM: no published figure.

    Disk: no published figure.

    Builds for every image: amd64 yes, arm64 yes. Registry pages: vaultwarden. checked 2026-09-23

  5. 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

  6. 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

  7. 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

  8. Audiobookshelf

    RAM: no published figure.

    Disk: no published figure.

    Builds for every image: amd64 yes, arm64 yes. Registry pages: audiobookshelf. checked 2026-09-23

  9. Navidrome

    RAM: no published figure.

    Disk: no published figure.

    Builds for every image: amd64 yes, arm64 yes. Registry pages: navidrome. checked 2026-09-23

  10. FreshRSS

    RAM: no published figure.

    Disk: no published figure.

    Builds for every image: amd64 yes, arm64 yes. Registry pages: freshrss. checked 2026-09-23

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. Syncthing

    RAM: no published figure.

    Disk: no published figure.

    Builds for every image: amd64 yes, arm64 yes. Registry pages: syncthing. checked 2026-09-23