Show HN: I've built a nice home server OS
ohai!I've released Lightwhale 3, which is possibly the easiest way to self-host Docker containers.It's a free, immutable Linux system purpose-built to live-boot straight into a working Docker Engine, thereby shortcutting the need for installation, configuration, and maintenance. Its simple design makes it easy to learn, and its low memory footprint should make it especially attractive during these times of RAMageddon.If this has piqued your interest, do check it out, along with its easy-to-follow Getting Started guide.In any event, have a nice day! =)
137 points by Zta77 - 49 comments
- Flatcar Container Linux: An open-source, immutable OS designed for automatic updates and large-scale container deployments.
- Fedora CoreOS: A, secure, automatically updating operating system designed for running containerized applications, succeeding the original CoreOS.
- Talos Linux: A modern, immutable, security-focused OS dedicated entirely to Kubernetes.
- IncusOS: an immutable OS solely designed around safely and reliably running Incus.
I think you need to more clearly explain how this is different. Again, congrats on the launch though.
Migrated from Proxmox and manage all my VMs. Heavily use coding assistants to automatically set things up through the IncusOS CLI, translate Docker-Compose images to Incus, write bash scripts to automate launching new containers to use `--dangerously-skip-permissions` without fear of repercussions, etc.
What I love the most about it is that it's possible to manage IncusOS with declarative files, so you always have visibility into networking setups, resource configuration, etc.
Highly recommend checking IncusOS out if you have similar use cases!
Obviously the software you run needs upgrades, but (again, but a layer down) it's based on Docker and probably someone else is maintaining it. So you pull that new container, restart and the OS is just making sure your data lands in the same place with the new container.
If you're happy with all your software running from Docker this seems like a step up from a Debian or Redhat, and it has a lot less bureaucracy than something like CoreOS.
Whether it's _usable_ I'm not sure (especially around storage management) but it's a really clear pitch.
I've long since thrown everything with a user count > 1 out.
Of course nothing is. But there's a reason projects like "Talos" do exist: no terminal, no SSH, no package manager (how do we like package managers like NPM lately btw?), read-only filesystem, definitely no systemd, etc.
And then a minimal number of executables.
This does, definitely, reduce the attack surface.
I'm not speaking about this Show HN's project but there are such things as systems both more secure and requiring less maintenance than others.
Throwing in the towel and saying: "nothing can ever be 100% secure so we'll always need to patch so we may as well YOLO by accepting npm packages modified 3 minutes ago" is not the way to go forward either.
Talos on IncusOS is likely a very interesting stack that I intend to play with hopefully in the near future.
https://linuxcontainers.org/incus-os/docs/main/
The source repository isn't very enlightening?
> The actual repository here hosts the source code for Lightwhale, and is not of any interest for most people.
> https://bitbucket.org/asklandd/lightwhale/src/master/
I'm getting ready to launch an online game and I'm dealing with "how do I just run my game server on dozens of boxes without dealing with linux stuff".
I don't really have an answer yet (leaning into "just get one really powerful box" lol), but my investigation into the problem so far has been pretty interesting.
You can conceptualize the "my program + the OS" as a single program. It's not a pretty picture. Lots of global mutable state. (Also it randomly modifies itself??)
The whole point of Docker appears to be "I just want to run my program", in the least painful way possible. Immutable Linux extends the "lean in the direction of sanity" idea. (The programming and OS worlds seem to be learning the same lessons, from different angles.)
And then there's "it turns out the OS solves problems I don't have, while creating many new problems", which leads to Unikernels. Fun stuff ;)
In a perfect world, I wouldn't need the OS at all. Docker gives me two Linuxes to worry about! The number of operating systems I want to worry about is zero!
Which brings us to Unikernels! Just ditch the OS! Technically the right answer, except... now I'm a kernel developer? Maybe that's the least bad option, long term.
Why do I need immutable if I'm just running docker?
Why do I need a specialized Debian variant when I can install docker on Debian or Ubuntu in a couple minutes?
And maintenance happens directly through the package manager, either through the distro maintained repo, or by adding the official docker repos?
This immutable fad needs to go away. So does flatpak and snap.
Linux already does the things these "solutions" are trying to solve.
Users can't update the base system without root, and applications should be installing dependencies in /usr/lib
It is also the insurance that I will get help whenever I'm stuck.
Sure it could be smaller ... but when it already runs fine on any hardware, even weird stuff like a BananaPi with a low-end RISC-V processor, then I have a difficult time wanting anything else.
The way to interact with the OS is significantly different from almost all other Linux distros. There is no shell, no DE. This feels like a lot more than "a custom paint job".
Is Ubuntu an OS? Mint?
Neither have built the package managment system, or the kernel, the DE(s), the utilities (maybe some but certainly not all).
What about CentOS? Or Bazzite? Or even Android?
Is macOS an OS, or "a custom BSD distro"?
And if none of those are OSs, does a Linux-based OS even exist? If not, what's the point of the distinction?
Kudos to the great project!
But functionally, like you I find Ubuntu server fine. I run apt update and upgrade a couple times a year and its local only with tailscale access.
I find these immutable OS's really nice on laptop or desktop. The home directory is the only thing that can be written to so the OS is supposed to be more stable and can't break easily
Not a huge criticism, life is about choices.
first read looks good, excited to try.
And I don't think you can get there via this route. But good luck anyway, I would love to be proven wrong.
> Can you please add wget, nano, $my_fav_app_omg_i_love_it to the root filesystem?
> No, not likely.
I am guessing the way to use software not already in the image is to use `docker run`.
Or if not proxmox, without a http GUI, just a boring debian stable x86-64 system to manually install QEMU and virt-tools, virsh toolset on to run QEMU/KVM things on with purely CLI management.
This is an interesting general concept but being limited to only running docker containers is a huge constraint.