Gas would be more expensive if it wasn’t subsidized.
Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @dan@d.sb
Gas would be more expensive if it wasn’t subsidized.
I’ve been using Linux for over 20 years and yet I’ve never tried Gentoo. Good idea. I’m not sure how well compilation would work on a 256MB system, but I could probably build a system in a VM locally then use Clonezilla to copy it to the production system.
The 256MB RAM systems are from https://hosting.gullo.me/ and https://natvps.net/. It looks like the latter no longer sells the 256MB systems - their site shows 512MB as the minimum now.
For most use cases, I use GreenCloudVPS or HostHatch. The GreenCloud “Budget KVM Sale” VPSes have 2GB RAM, 20GB space, 10Gbps network, for $15/year.
I’m using the small 256MB systems because they’re being provided for free for dnstools.ws in exchange for a link in the footer. Can’t beat that price :D
That’s an interesting idea that I didn’t consider. .NET does seem to have some support for WebAssembly.
Many of the current systems were provided by various hosts for free though, which is how I expanded to so many locations. The 256MB RAM systems are only a few dollars per year, so those hosts were happy to provide a few for free.
In my case it needs to be a VM rather than a container (because that’s what the hosting company offers), but Alpine is looking promising so far. No issues with booting from the ISO and installing it on a system with 256MB.
I got my app running on Alpine too. Now I just need to update my Ansible playbook to handle Alpine, and do more thorough testing. Will look into it later in the week.
I was using debian-installer in lowmem mode, but it OOMd during the install. I haven’t tried adding swap yet though.
The Trixie system that I did manage to setup was an upgrade from Bookworm. That’s the one that’s hitting the memory deadlock on boot.
That’s what I was thinking. I might try the cloud kernel (linux-image-cloud-amd64). It only has drivers required for VM platforms, so maybe the initramfs might be smaller? Otherwise I could build a custom one with just the things I need (only ext4 and swap, only drivers for KVM, etc).
I’m trying Alpine as well, which looks promising.
Interesting! I wonder why I was hitting the memory deadlock on boot, but yours booted OK.
I might run a local VM, use dietpi, then clone the resulting VM to the hosting provider using Clonezilla.
PHP (god forbid you should need it) is a right mess on alpine. Mongodb will not work on alpine.
Thankfully all I need is my app, Certbot, and a few standard utilities (ping, traceroute, mtr), and my app works fine with musl. Not a complex setup at all.
The entire setup for the worker app is in this Ansible role: https://github.com/Daniel15/dnstools/blob/master/ansible/roles/dnstools-worker/tasks/main.yml
I’m currently trying Alpine, but I’ll try this out too!
The 25 locations are a bare minimum Debian installation with just my app, SSH (for management), Certbot (for TLS certs), and a few other utilities (ping, traceroute, mtr) added. The app uses ~60MB RAM so it’s not an issue.
The site accesses each location using gRPC over a persistent connection.
The code is open-source if you’re curious: https://github.com/Daniel15/dnstools
Some are from https://hosting.gullo.me/. They even still offer 128 MB for $3.50/year, or around $2/year during Black Friday :). These are OpenVZ so they’re not an issue though.
Some are from https://natvps.net/ but it looks like they no longer offer them for sale - their lowest is 512MB RAM now.
Thanks for the link!
I’m trying Alpine locally in a VM with 256MB RAM, and so far so good. I got my app successfully cross-compiled using musl-gcc, rsync’d it over, and it starts on the VM with no issues. Now I just need to figure out all the stuff around it (like certbot) and do some more thorough testing. I use an Ansible playbook to deploy to the Debian servers, so I’ve got to update it to handle Alpine too.
I’ve installed Debian Buster, Bullseye and Bookworm on these systems from the netinst ISO, with no tweaking needed. Trixie is the first release where I’ve been unable to do this, and even upgrading the system doesn’t work (hits a memory deadlock on boot).
Does it support a server installation (no GUI)?
Even if I avoid the installer (e.g. by cloning an existing system, or by installing an older version of Debian then upgrading it), and have swap space, the kernel hits a memory deadlock on boot:

I suspect it’s deadlocking before swap is initialized.
I’ve considered this, it just might be a pain to keep up to date with kernel updates. I guess I could create an appropriate config and then automate the builds.
I also forgot that Debian has a cloud-specific kernel (linux-image-cloud-amd64) which excludes a bunch of drivers. I’ll try that out too.
The other thing on my list to try is mmdebstrap with a basic Debian install, using runit or openrc instead of systemd.
Interesting - I’ve never heard of this but it looks useful. Love that it supports OIDC. Thanks for the link.
Syncthing is pretty good.
I tried seafile and it kept going down and corrupted a lot of files after an unexpected server shutdown. It shared the corruption to all the local files on every app/pc I had it shared to.
This sounds like an issue with your server rather than with Seafile specifically. Was the unexpected shutdown due to a power outage? You should have a UPS so that it can properly shut down during outages. You’ll hit similar issues with any other system otherwise.
Printing doesn’t change very often. The main protocols (like PostScript, PCL, and IPP) haven’t had any major changes in a very long time. Software like SavaPage probably mostly “just works” and doesn’t need a huge amount of maintenance or have a huge number of issues.