Show your stack: what’s running on your $3-5/mo VPS?

mikhomikho AdministratorOG Bash Me Gently

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.)

  • 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.

  • @davide said:
    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.

    Then why you got problem with GC?

  • edited August 9

    @rpqu said:

    @davide said:
    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.

    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.

  • mikhomikho AdministratorOG Bash Me Gently

    @rpqu said:
    Nginx, Docker images with bloat removed, yt-dlp , ffmpeg. Then, POSIX, python scripts.

    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

  • @mikho said:

    @rpqu said:
    Nginx, Docker images with bloat removed, yt-dlp , ffmpeg. Then, POSIX, python scripts.

    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.

    debootstrap doesn't install any package above a bare minimal console environment, the installed system is ~300 MB IIRC. My basement workstation was born out of debootstrap 15 years ago. Still standing.

  • edited August 9

    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.

    # free -m
                   total        used        free      shared  buff/cache   available
    Mem:            1935        1161          88          66         947         774
    Swap:           2046         479        1567
    

    Actually, it's cheaper than $3-5/month. They're around $20/year +/- a few dollars.

  • edited August 9

    @david3 said:
    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.

    # free -m
                   total        used        free      shared  buff/cache   available
    Mem:            1935        1161          88          66         947         774
    Swap:           2046         479        1567
    

    Actually, it's cheaper than $3-5/month. They're around $20/year +/- a few dollars.

    Are you hosting public instance?

    @mikho said:

    @rpqu said:
    Nginx, Docker images with bloat removed, yt-dlp , ffmpeg. Then, POSIX, python scripts.

    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.

    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

  • @rpqu said:

    @david3 said:
    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.

    # free -m
                   total        used        free      shared  buff/cache   available
    Mem:            1935        1161          88          66         947         774
    Swap:           2046         479        1567
    

    Actually, it's cheaper than $3-5/month. They're around $20/year +/- a few dollars.

    Are you hosting public instance?

    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)

  • @cmeerw said: Most of the VPSes run exim, slapd, PowerDNS (with sqlite3 backend), PowerDNS Recursor, and lighttpd. Got two VPSes running prosody (XMPP).

    Like a redundant Prosody or two separate instances?

  • AnthonySmithAnthonySmith AdministratorHosting ProviderOG

    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/

  • @skorous said:

    @cmeerw said: Most of the VPSes run exim, slapd, PowerDNS (with sqlite3 backend), PowerDNS Recursor, and lighttpd. Got two VPSes running prosody (XMPP).

    Like a redundant Prosody or two separate instances?

    That's two separate instances for Prosody.

  • FritzFritz Behlnd you

    @david3 said:
    and bunch of "self-hosted" type things: 4get, searxng, quetre, anonymousoverflow, rimgo, redlib, binternet.

    Why don't you just use VPN and maybe combine with ads blocking DNS instead?

  • @Fritz said:

    @david3 said:
    and bunch of "self-hosted" type things: 4get, searxng, quetre, anonymousoverflow, rimgo, redlib, binternet.

    Why don't you just use VPN and maybe combine with ads blocking DNS instead?

    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.

  • slowserversslowservers Hosting Provider

    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.

  • WSSWSS OG
    edited August 10
    $ uname -srm && free -h && df -h | grep vda
    Linux 6.12.95+deb13-amd64 x86_64
                   total        used        free      shared  buff/cache   available
    Mem:           464Mi       143Mi        70Mi        64Mi       326Mi       320Mi
    Swap:          974Mi        26Mi       948Mi
    /dev/vda1       8.9G  3.0G  5.4G  36% /
    

    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

Sign In or Register to comment.