Two cancelled SaaS subscriptions typically cover the monthly cost of an entry-level VPS. That is usually how people first justify running their own server. Cost alone undersells it, though. The more durable reasons are data ownership, no usage caps, and no repricing event waiting in your annual contract renewal.
The 10 tools below represent the most widely deployed self-hosted software on personal and small-team VPS builds. Each replaces something people typically pay for or something they tolerate from a major cloud provider because there was no good alternative. This is not a list of everything that technically compiles on Linux. It is a list of tools that solve real problems and run reliably on hardware you can rent for a few dollars a month.
Developer Tools and Infrastructure
Gitea
Lightweight self-hosted Git service built in Go. The interface is familiar to anyone who has used GitHub: repositories, issues, pull requests, wiki pages, and user management all behave as expected.
The resource footprint is substantially lower than GitLab, which makes it a better fit for a modest VPS where you need to share RAM with other services. For a small team running private repositories, Gitea means no per-seat cost and full control over who can access what. CI/CD support has been added in recent releases, though teams with complex build pipelines often pair Gitea with a separate dedicated runner.
You may also encounter Forgejo in documentation and community discussions. Forgejo is a community fork of Gitea and the two projects share most of their interface and configuration. Either works well; check which one your deployment tooling targets before picking.
Uptime Kuma
Node.js-based uptime and status monitoring. Watches HTTP endpoints, TCP ports, DNS records, Docker container health, and database connections, and sends notifications through Slack, Telegram, email, Discord, webhooks, and several other channels.
For anyone managing their own VPS stack, Uptime Kuma's status page becomes a dashboard for everything running on it. Setup is quick, the resource footprint is low, and the notification options cover most team setups without configuration headaches.
Running Uptime Kuma on the same host it monitors creates a gap worth planning around: if the VPS goes down, so does the monitor. For anything where reliability matters, a second monitoring instance on a separate machine is the right pattern. Uptime Kuma on a low-cost second VPS as a watchdog for the primary is common enough that it has become a standard self-hosting practice.
Security and Privacy
Vaultwarden
Bitwarden-compatible password manager server written in Rust. The binary is small enough that Vaultwarden is routinely the first service people install on a new VPS.
It works with every official Bitwarden client: browser extensions, desktop apps, and mobile apps on both iOS and Android. That compatibility means your team or family switches to self-hosted without changing their daily workflow. There is no per-seat cost, which matters when you are managing access for more than a couple of people.
The one discipline Vaultwarden demands is reliable backups. A lost database without a backup means a lost vault. Set up automated backups and verify them before adding anything important. That is not a reason to avoid it; it is the same responsibility you accept with any data you choose to manage yourself.
Plausible Analytics
Privacy-focused web analytics built on Elixir. No cookies, no cross-site tracking, and no dependency on Google's infrastructure.
The self-hosted version is a direct replacement for Google Analytics for teams who want traffic data without sharing it with Google. It also removes the per-site fees that the cloud product charges, which makes self-hosting attractive when you are running analytics across several properties at once. The dashboard is deliberately simple compared to GA4: traffic, referrers, pages, devices, and geography. No audience segmentation, no conversion funnel builder. For most content sites that is more than enough.
Umami
Node.js-based analytics with PostgreSQL storage and a similar privacy-first angle to Plausible.
The two tools occupy the same niche closely enough that picking between them is largely about tech-stack preference: Elixir versus Node.js, and which dashboard layout feels more useful. Umami's reporting interface is slightly more minimal; Plausible has more extensive self-hosted documentation and a larger user community. Running both simultaneously is possible but rarely necessary. Pick one.
Files and Documents
Nextcloud
PHP-based file sync and collaboration suite. The functional scope is similar to Google Drive, with optional apps adding calendar, contacts, notes, task management, video calls, and more.
Nextcloud has more surface area than anything else on this list. The base installation is file sync across devices, which is straightforward. Adding a substantial number of apps turns it into a self-managed productivity platform, and running that well on a small VPS requires attention to caching, database tuning, and background worker configuration. A plan with at least 2 GB of RAM is a reasonable floor for a personal install; a small team sharing files and calendars wants more headroom.
The practical advice: decide what you actually need before enabling everything the app store offers. Nextcloud with file sync and calendar is a very different operational burden from Nextcloud with every available integration active.
Paperless-ngx
Python and Django-based document management. You feed it scanned documents or PDFs, it runs OCR in the background, extracts metadata, and stores everything in a searchable archive with full-text search.
The self-hosting argument here is not primarily about cost. It is about being able to find documents. Years of PDFs in flat cloud storage folders become navigable with a few consistent tags and full-text search. The OCR pipeline runs as background workers and benefits from a VPS that has at least a CPU core to spare when processing a batch.
Stirling-PDF
Java-based web interface for PDF operations: merge, split, compress, rotate, convert, OCR, and redact.
It covers most of what people pay Adobe Acrobat subscriptions for. Running it on a shared VPS makes it accessible to non-technical team members through a browser, which is its main advantage over desktop PDF tools. All processing runs locally on your server; no document content leaves the machine. For anyone handling sensitive contracts or legal paperwork, that isolation is a genuine advantage over general-purpose online PDF tools.
Media
Jellyfin
Open-source media server built on .NET. Streams personal video, music, and photo collections to browsers, mobile apps, smart TVs, and dedicated media players.
Jellyfin's main argument over Plex is that it is entirely free with no feature gating and no external activation requirement. The CPU cost depends almost entirely on transcoding: clients that can direct-play files in a supported format impose minimal server load. Clients that need the video re-encoded stress the CPU in proportion to the number of simultaneous streams. A VPS with a capable CPU handles one or two transcoding streams comfortably; households with multiple simultaneous viewers benefit from clients configured for direct play or dedicated hardware.
Immich
Self-hosted photo and video library designed around mobile backup, with automatic upload from iOS and Android devices and Google Photos-style organisation including face recognition and semantic search.
Immich requires significantly more resources than anything else on this list. The multi-service architecture (API server, microservices, database, Redis, machine learning inference) is better suited to a 4 GB plan than an entry-level instance. Once running, the experience is genuinely close to Google Photos for everyday use, including the mobile backup flow.
Immich has historically had more breaking changes between releases than most mature self-hosted projects. It is actively developed with a strong community, but it is not a set-and-forget installation. Upgrade notes require reading before each update, and major version bumps occasionally require manual migration steps.
How Much VPS Do You Actually Need?
Running all ten simultaneously on a single instance is ambitious and almost certainly unnecessary. Most people start with two or three tools that replace something they currently pay for and add more as they get comfortable managing a server.
| Tool | Runtime | Relative resource demand |
|---|---|---|
| Gitea | Go | Low |
| Vaultwarden | Rust | Very low |
| Plausible Analytics | Elixir | Moderate |
| Umami | Node.js | Low |
| Nextcloud | PHP | Moderate to high |
| Paperless-ngx | Python | Moderate |
| Stirling-PDF | Java | Low to moderate |
| Uptime Kuma | Node.js | Low |
| Jellyfin | .NET | Low to high (transcoding) |
| Immich | Node.js (multi-service) | High |
A 2 GB plan comfortably handles Gitea, Vaultwarden, Uptime Kuma, and either Plausible or Umami running together without much pressure. Nextcloud is possible at that size for a single user but leaves little headroom. Immich and Paperless-ngx together want 4 GB or more.
The economics hold regardless of which subset you pick. A starting set of three or four tools typically cancels enough subscriptions to cover the VPS cost entirely. For choosing a provider, the providers directory lists options reviewed on this site with user ratings on performance, reliability, and value for money. The VPS provider evaluation guide covers CPU allocation models, RAM provisioning, and bandwidth terms in practical detail.
If you are still weighing whether you need a VPS at all for this kind of workload, the guide to where shared hosting hits its limits covers that question directly, including which of these tools can never run on shared infrastructure and why.