Back to Blog
team@tinypod.app

Running Multiple Apps on One Server: Resource Planning Guide

How many apps can one server handle? Plan CPU, memory, disk, and network for multi-app self-hosting deployments.

planningresourcesserverself-hosting

The Question


Can I run Nextcloud, Gitea, Grafana, Ghost, and Uptime Kuma on one server? Let's find out.


Memory Budget (The Usual Bottleneck)


Base System

  • OS + container runtime: ~500 MB

  • Databases (Shared)

  • PostgreSQL: 256 MB - 1 GB (depending on shared_buffers)
  • Redis: 50-100 MB

  • Applications (Typical)

  • Nextcloud: 256-512 MB
  • Gitea: 128-256 MB
  • Grafana: 128-256 MB
  • Ghost: 128-256 MB
  • Uptime Kuma: 128 MB
  • Plausible: 256-512 MB
  • Mattermost: 256-512 MB
  • Vaultwarden: 64-128 MB

  • Example: 4 GB Server

  • OS + runtime: 500 MB
  • PostgreSQL: 512 MB
  • Redis: 100 MB
  • Remaining: ~2.9 GB
  • Fits: 5-8 medium apps comfortably

  • CPU Budget


    Most self-hosted apps are I/O bound, not CPU bound. They spend time waiting for database queries and network requests.


    2 vCPU Server

    Handles 5-10 apps easily unless they do compute-heavy work (image processing, AI inference, video transcoding).


    Disk Budget


    Container Images

    Each app: 100 MB - 1 GB. Budget 5-10 GB for images.


    Database Data

    Varies wildly. 1-10 GB for most small deployments.


    Application Data

    User uploads, files, media. Budget based on use case.


    Logs

    1-5 GB if not configured with rotation.


    Total

    40 GB SSD comfortably holds a 5-8 app deployment.


    Practical Setups


    2 GB RAM, 1 vCPU, 20 GB

  • 2-3 lightweight apps (blog, monitoring, password manager)

  • 4 GB RAM, 2 vCPU, 40 GB

  • 5-8 apps (the sweet spot for personal self-hosting)

  • 8 GB RAM, 4 vCPU, 80 GB

  • 10+ apps or resource-heavy apps (PostHog, GitLab, Keycloak)

  • Monitoring


    Deploy first, then monitor with Grafana + Prometheus. If memory consistently exceeds 80%, upgrade the server. Don't over-provision upfront.


    TinyPod's $5 server is the perfect starting point. Monitor, and scale up only when needed.