You've picked the app. Now four plan cards sit in front of you, labeled For lightweight apps and solo projects and For apps running in production, while your app's docs talk in gigabytes and cores, and the two don't line up on their own. Immich, for example, asks for 6 GB of memory at minimum, which rules out Stack 4 and its 4 GB before you've installed anything.

Each row below puts what the app's makers publish next to the plan that fits it. It's our estimate from the vendor's own docs, read on October 2, 2026. We haven't run these apps on DreamHost servers, though we did run one common pair on our own test machine, further down. Where a vendor publishes no figure, the row says so.

What each plan includes

All four plans include full root access, your choice of Linux OS, Docker and the one-click app library. They differ in cores, memory and disk:

PlanvCPUMemoryNVMe diskBuilt for
Stack 424 GB75 GBLightweight apps and solo projects
Stack 828 GB150 GBApps running in production
Stack 16416 GB250 GBDemanding workloads and multiple services
Stack 32832 GB450 GBHigh-traffic platforms and data-intensive apps

Look at the vCPU column before you look at memory. Stack 8 doubles the memory and disk of Stack 4 but keeps the same 2 vCPU, so an app that's short on CPU has to jump to Stack 16, the first plan with more cores. Stack 32 doubles them again, to 8.

Find your app in the sizing table

Find the row closest to what you run. Start on the plan in its last column. The middle column is what the app's makers publish, linked in the sources below. Each app's VPS Hosting page is linked under the table.

What you runWhat its makers say it needsPlan that fits (our estimate)
A few WordPress or PHP sites (LAMP Stack)WordPress asks for PHP 8.3+ and MySQL 8.0+ or MariaDB 10.11+, with no memory figureDreamPress or Managed VPS. If you need root, Stack 4 to start and Stack 8 in production
One Node.js appNode publishes no server minimum. Its docs use a 2 GiB machine as their memory exampleStack 4 to start. Stack 8 in production
A PostgreSQL or MySQL databaseNeither publishes a server minimum. On a database server, Postgres suggests 25% of memory for its buffers and MySQL often gets up to 80% for its buffer poolStack 8 in production. Stack 16 when the data you read often outgrows Stack 8's memory
Several containers on Docker and PortainerDocker and Portainer publish no minimum. Add up each container's own figureStack 8 for a few containers in production. Stack 16 once their figures add up past 8 GB or need 4 cores
DokployAt least 2 GB of memory and 30 GB of diskStack 4 to start. Stack 8 in production
n8nAt least 4 GB and 2 vCPU for its Docker Compose setup, which includes the n8n Assistant sandboxStack 4 meets it with no headroom. Stack 8 in production
GitLabBaseline: 8 vCPU and 16 GB. At least 8 GB where memory is tightStack 32 is the first plan that meets the baseline. Stack 16 has the baseline memory and half the cores, below the baseline, for a small team's trial (our guidance; run CI runners on a separate server, as GitLab advises)
SupabaseMinimum: 4 GB, 2 cores, 40 GB SSD. Recommended: 8 GB+, 4+ cores, 80 GB+ SSDStack 4 or Stack 8 meets the minimum. Stack 16 meets every recommended value
ImmichMinimum: 6 GB and 2 cores. Recommended: 8 GB and 4 coresStack 8 meets the memory recommendation. Stack 16 meets every recommended value
A game server on Pelican PanelPelican publishes no minimum, so the game decides. Palworld lists 16 GB and recommends 4 cores and more than 32 GBStack 16 for Palworld. For other games, Stack 8 to start, then the game's own figure (our guidance)
OpenClaw1 GB minimum, 2 GB+ recommendedStack 4
Hermes AgentNone publishedStack 4 to start. Stack 8 once you add gateways or heavier jobs (our guidance)
PaperclipAny Linux VPS with 1 vCPU and 2 GB of RAM to get started, per its installation guide (Node.js 24.11+)Stack 4 to start. Stack 8 in production (our guidance)
GhostA server with at least 1 GB of memoryStack 4 to start. Stack 8 in production
UmamiNode.js 18.18+ and PostgreSQL 12.14+, with no memory or CPU figureStack 4 for a few sites. Stack 8 for busy sites (our guidance)
Uptime KumaNode.js 20.4+, with no memory or CPU figureStack 4 (our guidance)
Estimated from each vendor's published requirements, read October 2, 2026. Not run on DreamHost servers for this guide; where we measured an app ourselves on a test VM, the figure is in that app's guide. Your traffic and data change the answer.

VPS Hosting pages for every app in the table: LAMP Stack, Node.js, PostgreSQL, Docker and Portainer, Dokploy, n8n, GitLab, Supabase, Immich, Pelican Panel, OpenClaw, Hermes Agent, Paperclip, Ghost, Umami, Uptime Kuma.

Immich's minimum is 6 GB, so Stack 4 isn't in its row, even though Immich says a 4 GB system can run with machine learning turned off.

You won't find a user count in most rows, because GitLab is the only vendor here that publishes one: its low-memory setup is written for up to five developers.

Apps on one server share its memory, so add their rows together and leave room for the operating system. Put n8n next to Immich and their minimums come to 10 GB before the operating system takes its share, which was about 300 MiB on our fresh Ubuntu 24.04 test VM. That's more than Stack 8 has, so the pair starts at Stack 16.

What that pair used on our test VM

We ran that pair on a test VM with 2 vCPU and 8 GB of memory, the shape of Stack 8, on October 22, 2026. It was Immich v3.3.5 from Immich's release setup, with machine learning on and no photos, next to n8n 2.44.5 with PostgreSQL from n8n's own Docker Compose files, with no workflows. The VM ran on an arm64 Mac, so it's our test machine, not a DreamHost server.

What we checkedMemory usedWhat it leaves on 8 GB
Immich and n8n together at rest, 10 minutes after start1,823 MiB5,721 MB still free
Immich alone at its peak, processing 300 photos (separate run)About 6,031 MiBAbout 1.6 GB of the 7.9 GB Linux sees
That peak plus n8n at rest (our arithmetic, not run together)About 6.4 GBAbout 1.2 GB, before any data or users

At rest, the pair used under 2 GB, far below the 10 GB their minimums add up to. Rest isn't the limit, though. In a separate run on the same size of machine, Immich alone reached about 6 GB while it processed an import of just 300 photos. Adding n8n's 0.4 GB at rest to that peak comes to about 6.4 GB, which is arithmetic, since we didn't run both busy at once. That leaves little room on 8 GB, which is why we still start the pair on Stack 16. We ran each setup once, and these were fresh installs with no users, so treat them as floors, not sizing minimums.

Disk can run out before memory does. A photo library or a Git server can fill it while memory still looks fine.

10 to 20%extra space Immich's thumbnails and transcoded video take on top of your originals
40 GBGitLab's storage minimum for the application, before any repositories
Sources: Immich's requirements and GitLab's installation requirements, read Oct 2, 2026.

If you're moving a photo library, measure it first and add Immich's margin before you compare it with the plan's disk. GitLab's figure covers only the application, and it asks for repository storage at least as large as all your repositories combined on top of that.

Apps whose makers ask for more than Stack 8

GitLab

GitLab is the hard one. Its own pages give different floors. GitLab's requirements page sets 8 vCPU and 16 GB as the baseline for a single-node install, and only Stack 32 has 8 vCPU. Stack 16 has the 16 GB with half the cores. The same page says GitLab can run with at least 8 GB where memory is tight, and that's the only CPU or memory figure on the page that Stack 8 meets. Its memory-constrained guide goes lower still, to 2 GB plus 1 GB of swap for up to five developers whose repositories stay under 100 MB.

The two pages also split on swap. On a standard install, GitLab says to disable swap or provision enough memory that GitLab never uses it, while the low-memory setup expects the server to use swap during regular operation. For a small team's GitLab server, our guidance is Stack 16, which gives you the baseline memory and 4 of the 8 cores, so it sits below GitLab's baseline and a trial has to show it keeps up. GitLab advises running CI runners on a separate machine from GitLab itself. Plan a second server for your pipelines. A team that needs the full baseline goes to Stack 32. GitLab VPS Hosting includes GitLab CE on every Stack plan.

Supabase

Supabase's self-hosting docs call their minimum of 4 GB, 2 cores and 40 GB of SSD suitable for development and small to medium production workloads, and Stack 4 and Stack 8 both meet it. The recommended spec asks for 4 cores or more, and since Stack 16 is our smallest plan with 4, that's where we'd run a busy production project.

Immich

Stack 8 meets Immich's 8 GB memory recommendation with the minimum 2 cores. Stack 16 meets both recommendations. Its 250 GB disk also holds a bigger library than Stack 8's 150 GB, which can matter as much as memory once you import years of family photos and phone videos.

Palworld and other game servers

Palworld's server guide lists 16 GB of memory and recommends 4 cores, so Stack 16 meets its requirement. It says an 8 GB server boots but is more likely to crash when it runs out of memory, which is why Stack 8 isn't in Palworld's row. The guide also recommends more than 32 GB. Stack 32 has exactly 32 GB and is the largest Stack plan, so a Palworld server that needs the recommended memory belongs on a dedicated machine.

The cost of starting too big

If you start too small, the fix is a plan change: you pick the bigger plan in the panel, and your environment comes with you. Starting too big has no matching fix. DreamHost's Help Center says you can't currently move down to a smaller Stack plan, so its route is to check that your data fits, provision a new server on the smaller plan, move everything across, confirm it works, and cancel the original.

Until then, you pay each month for memory and cores your app doesn't use. DreamHost's Help Center says a VPS doesn't include a 30-day money-back guarantee, so there's no refund window to fall back on. Start on the smallest plan that meets your app's minimum, and change plans when the checks below show it running short.

How to tell you've outgrown your plan

Before you pay for a bigger plan, find out whether memory, CPU or disk is running short, because each one points to a different upgrade. DreamHost's Help Center says the Performance and Logs dashboards are on Managed VPS only, so on a VPS you check from the command line while the app is busy. These commands run the quick ones:

bash
free -h
cat /proc/pressure/memory
uptime
df -h
  1. Check available memory

    Run free -h during normal use. The available column estimates how much memory new programs can get without swapping. If it stays near zero, or swap use keeps climbing, the app is probably short on memory. App logs show it too: n8n logs JavaScript heap out of memory when a workflow runs out.

  2. Check memory pressure

    Run cat /proc/pressure/memory. The full line is the share of time every running task waited on memory at once, and the kernel docs say a workload that spends extended time in that state is thrashing. If it does, move to the next plan up for more memory: Stack 4 to 8, 8 to 16, or 16 to 32.

  3. Compare load with your cores

    Run uptime and read the third number, the 15-minute load average. Load isn't scaled to your core count, so compare it with your plan's vCPU: 2 on Stack 4 and Stack 8, 4 on Stack 16, 8 on Stack 32. As a rule of thumb, we'd treat a 15-minute load that sits above that number for days as a sign you're short on CPU. From Stack 4 or Stack 8, that points to Stack 16.

  4. Look at steal time

    Run vmstat 5 and watch the st column, which is time the hypervisor took from your server. As a rule of thumb, if steal stays above a few percent, ask support about it before you pay for a bigger plan.

  5. Check disk space
    Run df -h to see how full each filesystem is.
  6. Upgrade in the panel

    DreamHost's Help Center gives these steps: go to Manage Account, find your VPS under Active Plans, click Manage, then Select Plan under Change Plan and Submit Order.

Growing swap can be an early warning, too. As one Hacker News commenter pointed out, a monitor on swap use can tell you something's wrong before the kernel starts killing processes for lack of memory.

If a burst of traffic is behind the load, read about handling a traffic spike before you move up.

When another DreamHost product fits better

If you'd rather we managed the server, DreamPress, Managed VPS or Managed Dedicated Server Hosting may suit you better. If you're not sure you need a server at all, start with do you need a VPS at all.

Choose a VPS if

You need root for your own apps, and you're fine patching the server and keeping your own backups.

Choose DreamPress if

You run WordPress and want us to manage it, with daily backups, 1-click staging and WordPress experts on call.

Choose Managed VPS if

You run several business sites and want us to handle the server, with updates, daily backups and Auto-Boost, which adds RAM during spikes when available. It includes SSH access without root.

Managed Dedicated gives you a managed server with root, and its Enhanced plan goes up to 128 GB of memory, so read when a dedicated server is the next step once you've outgrown Stack 32. For new or simple sites, Web Hosting is the place to start, and its Launch plan covers 25 websites and an estimated 40k monthly visits. If a MySQL database is what slows down your Managed VPS sites, the MySQL VPS add-on gives it isolated database resources as a separate service.

VPS sizing FAQs

How much RAM does my VPS need?

As much as your app's makers ask for, plus room for the operating system and anything else on the server. When apps share a server, add their figures together. The sizing table above lists the figure for each common app.

Is 2 GB of RAM enough for a VPS?

It's enough for apps like Ghost, which needs 1 GB, and OpenClaw, which recommends 2 GB or more. Our smallest plan, Stack 4, starts at 4 GB, so on DreamHost the question becomes whether 4 GB is enough. For Immich and GitLab's baseline, it isn't.

Is 32 GB of RAM overkill?

For most single apps, yes. You'd still pick Stack 32 for GitLab, because its full baseline asks for 8 vCPU and Stack 32 is our only plan with 8. Palworld is the other case. It recommends more than 32 GB, so Stack 32 is as close as a Stack plan gets, and a bigger server belongs on a dedicated machine.

How do I upgrade my VPS plan?

From the Manage Account page in the panel, using the Change Plan steps in DreamHost's Help Center, which the last step of the checks above lists. You can move up as far as Stack 32, and your environment comes with you.

Sources
  1. VPS Hosting with Full Root Access, DreamHost, Oct 2, 2026. dreamhost.com/hosting/vps
  2. Upgrade a VPS, DreamHost Knowledge Base, Oct 2, 2026. help.dreamhost.com/hc/en-us/articles/50605427977364-Upgrade-a-Self-Managed-VPS
  3. VPS overview, DreamHost Knowledge Base, Oct 2, 2026. help.dreamhost.com/hc/en-us/articles/50476238203028-Self-Managed-VPS-overview
  4. How To Run Node.js on a VPS, DreamHost, Oct 2, 2026. dreamhost.com/blog/nodejs-vps
  5. Requirements, WordPress.org, Oct 2, 2026. wordpress.org/about/requirements
  6. Command-line API, Node.js, Oct 2, 2026. nodejs.org/api/cli.html
  7. Resource Consumption, PostgreSQL Global Development Group, Oct 2, 2026. postgresql.org/docs/current/runtime-config-resource.html
  8. InnoDB Buffer Pool, MySQL, Oct 2, 2026. dev.mysql.com/doc/refman/8.4/en/innodb-buffer-pool.html
  9. Requirements and prerequisites, Portainer, Oct 2, 2026. docs.portainer.io/start/requirements-and-prerequisites
  10. Installation, Dokploy, Oct 2, 2026. docs.dokploy.com/docs/core/installation
  11. Fix memory issues, n8n, Oct 2, 2026. docs.n8n.io/hosting/scaling/memory-errors
  12. Install using Docker Compose, n8n, Oct 2, 2026. docs.n8n.io/deploy/host-n8n/install-options/install-using-docker-compose
  13. Installation requirements, GitLab, Oct 2, 2026. docs.gitlab.com/install/requirements
  14. Install GitLab Runner, GitLab, Oct 2, 2026. docs.gitlab.com/runner/install
  15. Running GitLab in a memory-constrained environment, GitLab, Oct 2, 2026. docs.gitlab.com/omnibus/settings/memory_constrained_envs
  16. Self-Hosting with Docker, Supabase, Oct 2, 2026. supabase.com/docs/guides/self-hosting/docker
  17. Requirements, Immich, Oct 2, 2026. docs.immich.app/install/requirements
  18. Requirements, Palworld Server Guide (Pocketpair), Oct 2, 2026. docs.palworldgame.com/getting-started/requirements
  19. FAQ: providers and hosting, OpenClaw, Oct 2, 2026. docs.openclaw.ai/help/faq-first-run/providers-and-hosting
  20. How to install Ghost on Ubuntu, Ghost, Oct 2, 2026. docs.ghost.org/install/ubuntu
  21. Installation, Paperclip, Oct 22, 2026. docs.paperclip.ing/guides/getting-started/installation
  22. Installation, Umami, Oct 2, 2026. umami.is/docs/install
  23. Uptime Kuma README, Uptime Kuma, Oct 2, 2026. github.com/louislam/uptime-kuma
  24. free(1), Linux man-pages, Oct 2, 2026. man7.org/linux/man-pages/man1/free.1.html
  25. uptime(1), Linux man-pages, Oct 2, 2026. man7.org/linux/man-pages/man1/uptime.1.html
  26. vmstat(8), Linux man-pages, Oct 2, 2026. man7.org/linux/man-pages/man8/vmstat.8.html
  27. PSI - Pressure Stall Information, The Linux Kernel documentation, Oct 2, 2026. docs.kernel.org/accounting/psi.html
  28. Hacker News comment on swap as an early warning, Hacker News, Oct 2, 2026. news.ycombinator.com/item?id=26355682

Need Some Help?

Whether you're stuck or just want some tips on where to start, hit up our experts anytime. We're here to help!

DreamHost Sales Help

24/7/365 Through the Chat Widget

Customer Support Chat

24/7/365 Through the Panel

Go to Panel
Customer Support Email

24/7/365 Through the Panel

Go to Panel