Show your stack: what’s running on your $3-5/mo VPS?
Curious what everyone’s squeezing out of their cheapest boxes. Always fun (and often humbling) to see how much people can pack into less than 1-2 GB of RAM.
Mine: [Hetzner/cloud/CX11
, e.g. “2GB RAM, 1 vCPU, 20GB NVMe”]
Running: [Ahsay backup server]
OS: [Debian]
Ram is a bit high on the CX11, more than I need/use. But that's what I had to work with.
Specifically want to hear: what’s the lowest-spec box you’re running something useful on, and what’s actually running on it? Curious what tricks people use to keep things lean — swap tuning, lightweight alternatives to the usual bloated stacks, anything unexpected you’ve gotten running on next to nothing.
Not interested in VPN setups for this one — plenty of those threads already, want to hear about everything else.
What’s on yours?
“Technology is best when it brings people together.” – Matt Mullenweg




Comments
We operate a global scale Named Data Networking Network.
https://yoursunny.com/p/ndn6/
https://yoursunny.com/p/ndn6/map/
The ndn6 network currently consists of nine VPS nodes.
Prices range from $6/year to $100/3y, excluding free machines offered by sponsors.
(Poor @Advin , they charge us $6/year so they don't get sponsorship credits.)
Daniel fan club 😎 affbrr
Nginx, Docker images with bloat removed, yt-dlp , ffmpeg. Then, POSIX, python scripts.
VPS Price Tracker is made up of two processes using 200 MB RAM: 140 MB for Nodejs and 60 MB for the database. Storage requirement is 4 GB. It could almost run on an ARM router on top of a fridge.
AD: VPS Price Tracker
Then why you got problem with GC?
VPS Price Tracker still runs on GC, their performance and stability are above average. The problem were the manual migrations, I posted a detailed walk-thru of the 16-hours restoration the first time it happened. But in essence, in VPS Price Tracker the database is coupled with the filesystem and it cannot work on EXT4, a rescue image preloaded with a custom kernel is required to begin the backup restoration from a remote ZFS. It was quite a bit of sunk time.
AD: VPS Price Tracker
Bloat removed manually or do you have a setup script?
I remember back in the day on LET (this was in the really early days) there was a wiki with setup scripts and other installations manuals.
“Technology is best when it brings people together.” – Matt Mullenweg
debootstrapdoesn't install any package above a bare minimal console environment, the installed system is ~300 MB IIRC. My basement workstation was born out ofdebootstrap15 years ago. Still standing.AD: VPS Price Tracker
Several websites, nginx, php-fpm, postfix, dovecot, opendkim, nsd, unbound, asterisk, vsftpd, wireguard, shadowsocks,
and bunch of "self-hosted" type things: 4get, searxng, quetre, anonymousoverflow, rimgo, redlib, binternet.
I've got 3 vps with a custom scripted master-slave failover system, so it can automatically failover to one of the other systems.
Actually, it's cheaper than $3-5/month. They're around $20/year +/- a few dollars.
Are you hosting public instance?
Yes, basic debloating is delegated to something that's better described as combination of script+tool. Further optimization is done manually (now accelerated with LLM AI).
I'm not really good at C compared to my friends, so I end up using POSIX and python.
Note: they're IOI materials
A public instance for the self-hosted stuff? On my main machines, no, they're private. But I run some public instances separately (307200.xyz). The public instances run on 1gb ram.
My smallest VPS already has 3 GB RAM, but uses less than 1 GB.
Most of the VPSes run exim, slapd, PowerDNS (with sqlite3 backend), PowerDNS Recursor, and lighttpd. Got two VPSes running prosody (XMPP).
Got some simple self-made flask web sites (e.g., mailing list archive with full-text search using sqlite3), a roundup tracker using sqlite3 backend, a phpwiki (using sqlite3 backend) and some PHP scripts (mostly serving content from sqlite3 dbs). I guess the common theme here is that there is a lot of sqlite3 usage.
Ohh, and I do isolate web sites, but not using docker, instead just using bubblewrap (to only let these scripts access what they really need); this way I get the isolation without duplicating PHP/Python/... for each site (everything uses the system packages)
Like a redundant Prosody or two separate instances?
I am running backtogeek.com in 32mb on alpine with 1GB disk, one day I will finish the project and release it.
a semi flat ini driven single binary that uses sqlite and 6 lines of js to run a hacker news clone and an unexposed microblog platform that is broken
TierHive - Hourly VPS - NAT Native - /24 per customer - DE, UK, SG, CA, USA x4, FR x2, AU, PL, NL, JP
FREE tokens on sign up, try before you buy. | Static Hosting Free for life: https://tierhive.com/static-hosting/
That's two separate instances for Prosody.
Why don't you just use VPN and maybe combine with ads blocking DNS instead?
https://microlxc.net/
I do use wireguard, with unbound + blocky for dns. Those self-hosted things are not just about shielding an ip address, though. They are lighter-weight with a much more pleasant interface.
I have slowservers.net running on a 768MB plan without a IPv4 address. This ends up being $3/month, or rather $36/year if a customer wanted the same thing.
OpenBSD 7.9
gmid for Gemini
httpd for static web
Users can SSH in and use a Perl script for signup
Tor is running, providing both Gemini and HTTP services
Payment backend is Python/Fast API (largely copied/rewritten from SporeStack)
nsd for DNS.
I have another 768MB server, also without IPv4, that has gmid, a Gemini to HTTP proxy (I'll remove this like how I did for slowservers.net,) and Prosody.
I could consolidate some servers, actually. Can do quite a bit with 768MB. The only tricky bit is that you often need to swap to relink the kernel, if anything else is already running.
Now this is out of budget, but SporeStack runs on a $8/month server -- 2GB of memory. The main reason for that is because I have to compile Python wheels that need rust. 2GB is about the minimum for that. Otherwise, I might be able to run it on 768MB.
I do have a 2GB pruned Bitcoin node ($8/month) and a 16GB full Monero node ($64/month) as well. All dogfooded, running on Slow Servers. No IPv4s used on either of those, though I might change that at some point.
I think Ant is the king of efficient hosting, though. OpenBSD is just not as light as Linux. Or it can be pretty light, but you can't relink the kernel and thus can't update effectively.
I did have a 486 with 16MB of memory on Slashdot once. No swap. Dynamic lua content. Very basic, though. I think it logged over 2 million hits in 24? 48? hours. It did better than my router did. Ran Linux. Maybe Slackware, or maybe my own distro. I can't remember.
Slow Servers VPSs hosted on OpenBSD's VMM on secondhand, low power hardware in Spokane, WA, USA. Routed /64 IPv6 allocations included, IPv4 $1/month extra.
It's running PHP-FPM, Grav, nginx, and is my archival website in case the frontend dies.
A few years ago I ran a 64MB instance on Virmach. Had them nuke it because I got sick of the notices.
https://web.archive.org/web/20210618175456/http://bsd01.ny.bangpath.tech/
"It's a hard life- to be a stick insect." - Karl Pilkington