Independent Australian Storage & Infrastructure Authority

Running Multiple Self-Hosted Apps on One NAS

RAM is often the first limit when you stack self-hosted apps on one NAS. This guide gives illustrative memory figures for Immich, Jellyfin, Vaultwarden, Nextcloud and Paperless-ngx and shows how to measure your own stack so you can add apps without hitting the ceiling.

This page contains affiliate links. If you purchase via our links we may earn a small commission, at no extra cost to you. Editorial independence policy.

Ask AI about this page: ChatGPT, Claude, Perplexity · or read the plain-text version.

Recommended for This Guide

UGREEN DXP4800 Pro

For running multiple self-hosted Docker containers on one NAS, the DXP4800 Pro pairs a 6-core, 8-thread Intel Core i3-1315U with 8GB DDR5 memory expandable to 96GB, four SATA bays, two M.2 NVMe slots and Intel Quick Sync hardware transcoding for Plex and Jellyfin. It is $1,019.99 at the UGREEN AU store. Suitability for this application stack still depends on app versions, workload, available RAM, CPU architecture and container-image support.

  • CPU: Intel Core i3-1315U, 6 cores, 8 threads (x86)
  • RAM: 8GB DDR5 (expandable to 96GB)
  • Drive Bays: 4x SATA 3.5"/2.5", 2x M.2 NVMe. Network: 1x 10GbE + 1x 2.5GbE

Market price: about $1,118 across 10 Australian retailers

You set up a NAS, a network-attached storage device that connects to your home router and gives every device in your house access to the same files and backups, and then discovered it can run apps too. Photo backup with Immich. Password manager with Vaultwarden. Media server with Jellyfin. Document scanning with Paperless-ngx. Within a week the question becomes: can one NAS handle all of this at once, or will it fall over?

ⓘ

In short: Capacity depends on app versions, configuration, workload and NAS operating-system overhead. Immich currently specifies 6GB minimum and 8GB recommended, with 4GB supported only when machine learning is disabled; size and test the complete stack rather than treating 4GB, 8GB or 16GB as universal thresholds. The bottleneck may be memory, CPU or GPU capacity, storage I/O, or network throughput depending on the workload.

How Apps Run on a NAS: Docker

Many self-hosted NAS apps are deployed in Docker containers, software that runs applications in isolated containers without affecting the core operating system. Think of each Docker container like a separate apartment in a building: it has its own plumbing and electricity, but it shares the building's foundation (the NAS hardware and operating system). Containers provide process isolation, but they share the host kernel and hardware resources; without appropriate permissions and resource limits, one container can affect other containers or the host.

Docker is available on Synology's DSM (Synology's operating system), QNAP's QTS (QNAP's operating system), Ugreen's UGOS Pro (Ugreen's operating system), and third-party platforms like Unraid and TrueNAS SCALE. Application availability and compatibility vary by NAS model, operating-system version, CPU architecture and container-image support, in addition to the underlying hardware capacity.

RAM Is the Ceiling: What Each App Actually Needs

Every running container consumes RAM whether you are actively using it or not. RAM works like a desk: you can only have so many files spread out at once. Under memory pressure, a host may use slower swap if it is configured, reclaim memory, or invoke out-of-memory handling and terminate processes. On a NAS, swap-heavy operation means sluggish response times for every app on the device.

The RAM figures below should be treated only as illustrative measurements, not vendor requirements; actual use varies by version, configuration, library size, concurrency and background work. Peak consumption can be substantially higher during machine learning, transcoding and indexing, and should be measured using the intended configuration and workload. Reserve memory for the NAS operating system and background services based on vendor guidance and observed peak use.

Illustrative Self-Hosted App RAM Measurements

App Idle RAM Peak RAM Notes
Vaultwarden (password manager) Vaultwarden~80MB~150MBExtremely lightweight. Runs fine on any NAS with 1GB+ free.
Paperless-ngx (document archive) Paperless-ngx~300MB~600MBSpikes during OCR processing of new documents.
Jellyfin (media server, no transcode) Jellyfin~400MB~700MBDirect play only. Transcoding adds 800MB-2GB per stream.
Jellyfin (media server, 1080p transcode) Jellyfin~400MB~1.5GBCPU transcode. Hardware transcode needs NAS with iGPU.
Immich (photo backup, AI off) Immich~600MB~1.2GBMultiple containers: server, microservices, Redis, PostgreSQL.
Immich (with machine learning) Immich~600MB~2.5GBML model loads into RAM during facial recognition and search indexing.
Nextcloud (file sync) Nextcloud~400MB~800MBPlus database (MariaDB or PostgreSQL) adds 200-400MB.
Home Assistant (smart home) Home Assistant~500MB~1GBGrows with number of integrations and automations.
Plex Media Server Plex~500MB~1.5GBSimilar to Jellyfin. Plex Pass enables hardware transcode on supported NAS.
Uptime Kuma (monitoring) Uptime Kuma~60MB~100MBNegligible. Can run alongside any stack.
Portainer (Docker manager) Portainer~50MB~80MBNegligible. Useful for managing containers via web UI.

What Fits on 4GB, 8GB and 16GB

NAS RAM is the single most important spec when building a self-hosted stack. Most entry-level NAS models ship with 2-4GB, mid-range models with 4-8GB, and only upper-mid and business models exceed 8GB. Here is what a realistic stack looks like at each tier.

4GB RAM NAS Vaultwarden, Paperless-ngx and Uptime Kuma may fit on some 4GB systems, but available headroom depends on the NAS OS, app versions, OCR workload and other services and should be measured. Immich can run on a 4GB system only with its machine learning features disabled, and Jellyfin should be kept to direct play (no transcoding).
8GB RAM NAS Vaultwarden, Paperless-ngx, Uptime Kuma, Immich and Jellyfin may run together on some 8GB systems, but no fixed spare-memory margin can be assumed; validate peak use with the intended Immich, OCR and media workloads. Add Nextcloud and you are at the edge. Enable hardware transcoding if the CPU supports it, so video playback does not strain the CPU.
16GB RAM NAS A 16GB system provides more scope for that five-app stack plus Nextcloud, but headroom and simultaneous-transcode capacity must be tested with the intended codecs, resolutions, hardware acceleration and background workloads.
32GB RAM NAS A 32GB system provides additional capacity for containers or a VM, but supported library size, user concurrency and transcode count depend on CPU/GPU performance, storage and workload testing.
⚠

RAM upgrade first. On most Synology Plus-series and QNAP mid-range NAS models, RAM is upgradeable. The DS225+ ships with 2GB and supports up to 6GB. The DS925+ ships with 4GB and supports up to 32GB. Upgrading RAM before adding apps is cheaper than buying a new NAS.

The CPU Problem: Transcoding and AI Scans

RAM is the ceiling, but CPU determines whether certain apps feel fast or painful. Two workloads push NAS CPUs hard: video transcoding and AI-based tasks.

Transcoding means converting a video file from one format in real time so it plays on a device that cannot handle the original format. Software transcoding of 4K media can consume substantial CPU and affect other services, depending on the codec, bitrate, scaling, processor and configured resource limits. Hardware transcoding, available on NAS models with an integrated GPU (the DS925+ uses an AMD Ryzen V1500B without integrated graphics, the TS-464 uses an Intel Celeron N5095 with iGPU), offloads much of this work to dedicated hardware and generally reduces CPU load; actual CPU use and codec support vary.

Immich's machine-learning features can substantially increase CPU and memory use after a large import; duration varies with library size, model, concurrency and hardware. Machine-learning jobs normally enter the queue as new assets are processed; only some other Immich jobs run nightly by default. If your NAS is underpowered, disable the ML container entirely and use Immich as a pure photo backup tool. You lose smart search but gain stability for the rest of your stack.

Storage Overhead: Containers vs Your Data

Each Docker container stores its application data on your NAS drives. This is separate from your actual files (photos, documents, media). Container data is generally small: Vaultwarden is a few megabytes, Paperless-ngx a few gigabytes depending on your document library. The exception is Immich, which creates a separate optimised thumbnail and preview copy of every photo it ingests. Immich says generating thumbnails and transcoded video can increase the size of a photo library by 10-20% on average.

Keep container data on a separate volume or folder from your primary media. This makes backup and troubleshooting cleaner, and lets you wipe and rebuild a container without touching your actual data. Synology's DSM and QNAP's QTS both support volume isolation for Docker container storage.

Practical Stacking: Start Small and Add

The most reliable way to build a self-hosted stack is to add one app at a time and observe RAM and CPU usage for a week before adding the next. Synology Container Manager, QNAP Container Station and Portainer provide container resource information; the exact statistics and history available vary by platform and version.

Start with the lightest apps first: Vaultwarden, Uptime Kuma, Paperless-ngx. These are the ones that will sit quietly in the background without affecting anything else. Add Immich next, but disable the ML model until you have confirmed baseline RAM usage. Add Jellyfin last, with hardware transcoding enabled from the start if your NAS supports it.

💡

Monitor before you add. Check RAM usage after 24 hours of running a new container, not immediately after launch. Some containers (Immich ML, Nextcloud) spike during initial indexing and settle at a lower idle footprint after the first run.

When One NAS Is Not Enough

Some stacks genuinely need a second device. If you are running Plex or Jellyfin with multiple simultaneous transcodes for a household of 4-6 people, while also running Immich with AI on and Nextcloud with multiple concurrent users, some entry-level and mid-range NAS models may struggle with this workload even after a RAM upgrade, depending on their CPU/GPU, codec support, storage and actual concurrency. The CPU becomes the bottleneck.

A practical split: keep your file storage and backup workloads (Nextcloud, backup jobs, document archive) on your primary NAS, and move media serving (Jellyfin or Plex) to a dedicated mini-PC or a secondary NAS with a stronger CPU. Mini-PCs with supported Intel N-series processors may provide Quick Sync hardware transcoding, but compare codec support, current pricing and workload performance before moving media services.

Australian Buyers: Current NAS Models Worth Considering

If you are buying a NAS specifically to run a self-hosted stack, prioritise models with at least 8GB RAM (or a clear upgrade path to 8GB) and, if you want hardware transcoding, a CPU your media server supports for it. Not every model below meets both. The DS225+ and DS425+ ship with 2GB and top out at 6GB, the TS-433 has 4GB that cannot be expanded, and the DS925+ has no integrated graphics. Plex's NAS compatibility list does not show hardware transcoding for the DS225+, DS425+, DS925+ or TS-433. The TS-464 and DXP4800 Pro ship with 8GB and support hardware transcoding. Here are the current options available through Australian retailers, with what each can and cannot do.

NAS Models Compared for Self-Hosted Stacks (AU Retail)

Model RAM (stock/max) CPU Transcode AU market price
Synology DS225+ DS225+2GB / 6GBIntel Celeron J4125Not supported in Plex (per Plex)about $599
Synology DS425+ DS425+2GB / 6GBIntel Celeron J4125Not supported in Plex (per Plex)about $899
Synology DS925+ DS925+4GB / 32GBAMD Ryzen V1500BNo (no integrated graphics)about $1,099
QNAP TS-433 TS-4334GB / 4GB (not expandable)Cortex-A55 (ARM)Yes per QNAP; not supported in Plexabout $692
QNAP TS-464 TS-4648GB / 16GBIntel Celeron N5095Yes (iGPU)about $1,099
UGREEN DXP4800 Pro DXP4800 Pro8GB / 96GBIntel Core i3-1315UYes (Quick Sync)about $1,118

Australian Consumer Law protections apply when purchasing from Australian retailers. Manufacturer warranty periods vary by model; Australian Consumer Law consumer guarantees apply independently and may continue beyond an express warranty period. Depending on the nature of the failure and remedy sought, Australian consumers may have rights against the retailer and, in some circumstances, the manufacturer or importer. The ACCC explains the consumer guarantees and how to seek a remedy at accc.gov.au.

Related reading: our NAS buyer's guide.

Use our free NAS Power Calculator to calculate your exact running costs.

Related reading: our NAS explainer.

See also: our complete Synology NAS Australia guide.

See also: our complete QNAP NAS Australia guide.

Can a 4GB NAS run Immich and Jellyfin at the same time?

Technically yes, but it is not reliable. Immich says a system with only 4GB of RAM can run it only with machine learning features disabled, and Jellyfin and the NAS operating system have to share that same 4GB. Disable Immich's machine learning container and restrict Jellyfin to direct-play only (no transcoding), and you can make it work on a lightly used system. Any simultaneous workload (an Immich scan, a Jellyfin stream) can push the system into swap and slow everything down.

Does running more Docker containers slow down file transfers on the NAS?

Only if the containers are actively using CPU or RAM at the same time as a large file transfer. Idle containers consume very little CPU. The risk is RAM pressure: depending on host configuration, the NAS may use slower swap, reclaim memory or terminate processes, and swap activity can compete with file-transfer I/O. Leave RAM headroom at idle so a large transfer does not tip the NAS into swap.

What is the minimum NAS for running Immich, Nextcloud and Jellyfin together?

There is no universal minimum for this stack; Immich currently recommends 8GB by itself, so size the NAS for total measured peak use, database load, media formats and required transcodes. The DS925+ uses an AMD Ryzen V1500B without integrated graphics, while the TS-464 uses an Intel Celeron N5095 with Intel UHD Graphics; check application and codec support before choosing a model for transcoding. With 8GB, lower Immich's machine-learning job concurrency or disable machine learning if the NAS struggles, and limit Jellyfin to direct play unless hardware transcoding is available.

Should I use Plex or Jellyfin on a NAS?

Jellyfin is open source and free. Plex is free for basic use but charges for Plex Pass to unlock hardware transcoding and offline sync. On a NAS, hardware transcoding is important for performance, which means Plex becomes a paid product in practice. If your NAS has an Intel iGPU, Jellyfin supports hardware transcoding for free. Choose Jellyfin unless you are already invested in the Plex ecosystem or need Plex-specific features like server-to-client sync.

Is it safe to run Vaultwarden on a NAS that also runs other apps?

Yes. Docker provides useful isolation, but it does not guarantee that Vaultwarden cannot be accessed or affected by other containers; minimise privileges and shared mounts, avoid exposing the Docker socket, segment networks and apply resource limits. The security concern with Vaultwarden is network exposure, not co-location with other apps. Do not expose Vaultwarden directly to the internet without a reverse proxy and HTTPS. Access it via Tailscale or a VPN tunnel from outside your home network.

How much storage does Immich use for 50,000 photos?

Immich creates optimised thumbnails and preview versions of every photo it ingests. Immich says thumbnail generation and transcoded video can increase a photo library's size by about 10-20% on average; actual overhead varies with the image/video mix and processing settings.

Figuring out which NAS has the right specs for your self-hosted stack? The NAS Sizing Wizard walks through your use case and recommends configurations based on real workloads.

What to read next