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: A 4GB NAS can run Vaultwarden plus Paperless-ngx comfortably, but Jellyfin plus Immich together needs 8GB minimum. Running Nextcloud, Immich, Jellyfin and Vaultwarden simultaneously requires 16GB RAM and a reasonably capable CPU. The bottleneck is almost always memory, not storage or network speed.
How Apps Run on a NAS: Docker
Almost every self-hosted app on a NAS runs inside Docker, 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 don't interfere with each other, which is why you can run a password manager and a media server side by side without one crashing the other.
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. The app ecosystem is the same regardless of brand. The limiting factor is the hardware underneath, not the software layer on top.
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. When the desk is full, the system starts pushing files to the floor (swap space on your drives), which is dramatically slower. On a NAS, swap-heavy operation means sluggish response times for every app on the device.
The RAM figures below represent realistic idle-to-light-use consumption. Peak consumption during heavy tasks (an Immich facial recognition scan, a Jellyfin transcode, a Nextcloud file indexing run) can be 2-3 times the idle figure. Leave at least 1GB free as headroom for the NAS operating system itself.
Self-Hosted App RAM Requirements
| App | Idle RAM | Peak RAM | Notes | |
|---|---|---|---|---|
| Vaultwarden (password manager) | Vaultwarden | ~80MB | ~150MB | Extremely lightweight. Runs fine on any NAS with 1GB+ free. |
| Paperless-ngx (document archive) | Paperless-ngx | ~300MB | ~600MB | Spikes during OCR processing of new documents. |
| Jellyfin (media server, no transcode) | Jellyfin | ~400MB | ~700MB | Direct play only. Transcoding adds 800MB-2GB per stream. |
| Jellyfin (media server, 1080p transcode) | Jellyfin | ~400MB | ~1.5GB | CPU transcode. Hardware transcode needs NAS with iGPU. |
| Immich (photo backup, AI off) | Immich | ~600MB | ~1.2GB | Multiple containers: server, microservices, Redis, PostgreSQL. |
| Immich (with machine learning) | Immich | ~600MB | ~2.5GB | ML model loads into RAM during facial recognition and search indexing. |
| Nextcloud (file sync) | Nextcloud | ~400MB | ~800MB | Plus database (MariaDB or PostgreSQL) adds 200-400MB. |
| Home Assistant (smart home) | Home Assistant | ~500MB | ~1GB | Grows with number of integrations and automations. |
| Plex Media Server | Plex | ~500MB | ~1.5GB | Similar to Jellyfin. Plex Pass enables hardware transcode on supported NAS. |
| Uptime Kuma (monitoring) | Uptime Kuma | ~60MB | ~100MB | Negligible. Can run alongside any stack. |
| Portainer (Docker manager) | Portainer | ~50MB | ~80MB | Negligible. 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 + Uptime Kuma. All run comfortably with 1GB headroom left for the OS. Do not add Jellyfin or Immich without first disabling the ML model. |
|---|---|
| 8GB RAM NAS | Vaultwarden + Paperless-ngx + Immich (AI on) + Jellyfin (direct play only). Works with ~1GB spare. Add Nextcloud and you are at the edge. Enable hardware transcoding if the CPU supports it to reduce peak RAM during playback. |
| 16GB RAM NAS | Vaultwarden + Paperless-ngx + Immich (AI on) + Jellyfin (transcode enabled) + Nextcloud + Home Assistant. Runs with 3-4GB headroom. Comfortable for most home stacks. Transcoding two simultaneous streams remains viable. |
| 32GB RAM NAS | Full home stack plus multiple simultaneous Jellyfin transcodes, large Immich libraries (100K+ photos), and Nextcloud handling 5-10 concurrent users. Also appropriate for adding virtualisation (a lightweight VM) alongside containers. |
RAM upgrade first. On most Synology Plus-series and QNAP mid-range NAS models, RAM is upgradeable. The DS225+ ships with 2GB but supports up to 16GB. 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. A NAS with a weak CPU doing software transcoding of a 4K video will use 100% of available processing power, slowing every other app on the device. Hardware transcoding, available on NAS models with an integrated GPU (the DS925+ uses an Intel N300 with Intel UHD Graphics, the TS-464 uses an Intel Celeron N5105 with iGPU), offloads this work to dedicated silicon and barely touches CPU load.
Immich's machine learning features (facial recognition, CLIP-based search) run periodic scan jobs that can spike CPU and RAM for 30-60 minutes after a large photo import. These jobs are scheduled overnight 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. For a 50,000 photo library, Immich's storage footprint can be 20-50GB beyond the original photo files.
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's Resource Monitor, QNAP's System Resource Monitor, and Portainer's container stats all show per-container RAM consumption in real time.
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, a single entry-level or mid-range NAS will struggle regardless of RAM. 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 like the Beelink S12 Pro (Intel N100, from around $190 on Amazon AU) have hardware transcoding capability that outperforms most NAS CPUs at a fraction of the cost of a second NAS.
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 an Intel CPU with integrated graphics for hardware transcoding. Here are the current options available through Australian retailers.
NAS Models Suitable for Self-Hosted Stacks (AU Retail)
| Model | RAM (stock/max) | CPU | Transcode | AU Price from | |
|---|---|---|---|---|---|
| Synology DS225+ | DS225+ | 2GB / 16GB | Intel Celeron N300 | Yes (iGPU) | $528 at Mwave |
| Synology DS425+ | DS425+ | 2GB / 16GB | Intel Celeron N300 | Yes (iGPU) | $778 at Mwave |
| Synology DS925+ | DS925+ | 4GB / 32GB | Intel Celeron N300 | Yes (iGPU) | $978 at Scorptec |
| QNAP TS-433 | TS-433 | 4GB / 16GB | Cortex-A55 (ARM) | Limited (no iGPU) | $629 at Mwave |
| QNAP TS-464 | TS-464 | 8GB / 16GB | Intel Celeron N5105 | Yes (iGPU) | $1,049 at Scorptec |
| Ugreen DXP4800 | DXP4800 | 8GB / 32GB | Intel Core i5 N100 | Yes (iGPU) | Check UGREEN AU |
Australian Consumer Law protections apply when purchasing from Australian retailers. Warranty periods for NAS devices are typically 3 years for consumer models. If a unit fails, your claim goes to the retailer, not the manufacturer. Specialist retailers like Scorptec and PLE offer better post-sales support than mass-market stores if something goes wrong with a device holding your self-hosted data.
Related reading: our NAS buyer's guide.
Use our free NAS Power Calculator to calculate your exact running costs.
Related reading: our NAS explainer.
Can a 4GB NAS run Immich and Jellyfin at the same time?
Technically yes, but it is not reliable. Immich's core containers use around 600MB at idle, and Jellyfin adds another 400MB. The combined 1GB baseline plus 1GB OS overhead leaves almost nothing free. 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) will 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: if your NAS runs low on free memory, it will use swap space on the drives, which competes with drive I/O for file transfers. Keep at least 1GB RAM free at idle to avoid this.
What is the minimum NAS for running Immich, Nextcloud and Jellyfin together?
An 8GB NAS with an Intel CPU that supports hardware transcoding is the practical minimum for this stack. The Synology DS925+ (4GB upgradeable to 32GB) or QNAP TS-464 (8GB stock) are the most commonly recommended options in this use case. With 8GB, disable Immich ML or schedule it to run overnight, 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's container isolation means Vaultwarden cannot be accessed or affected by other containers running on the same NAS. 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. For a 50,000 photo library at typical smartphone resolution (3-5MB per photo), the original photos occupy around 150-250GB. Immich's generated thumbnails and preview files add another 20-50GB on top. Plan for roughly 15-20% extra storage overhead compared to raw photo size.
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.
Open NAS Sizing Wizard