Debian for all things.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Debian
NixOS
I just heard of NixOS for the first time because of this thread. Looked up some videos on it, and my jaw hit the fucking floor.
Same here. I came for the integrated ZFS support and stayed for the declarative config.
how is nix better than debian for servers?
Declarative configuration of services and the rest of the entire system, and everything that brings with it.
- Want to test some new service, or make changes to an existing one, but don't know if you want to keep it? Sure, just temporarily switch to the new configuration, you can always switch back to the old one and everything will be back as it was.
- Have multiple servers and want to share configuration between them? Absolutely, just import the same file from both. I have a git repo storing configurations for 10 machines and a huge part of it is shared configuration.
- Want to use one service's endpoint (such as a socket path) in another? Sure, just use the socket path configuration option for the first service in the configuration for the second, such as here. This works since everything is a single tree of options which all the service configuration files are then generated from, so interpolate stuff as you wish.
- Checks for configuration correctness during build of the system (NixOS options are type checked during evaluation, and then during the actual system build there's more checks, like nginx config has to succeed
nginx -t
, otherwise the system build fails and you can't switch to it) - Want to spin up a VM to test changes before putting it on the actual target? There's a builtin command (nixos-rebuild build-vm) that makes a script that starts a QEMU VM with your configuration running in it. It's as fast as building the real system, so a couple seconds if you're making small changes.
- Setting up services is also often as easy as putting
services.foo.enable = true;
in your configuration. And, if you remove that line, the service is gone, so you're never left with "the random package or file you installed once to test something and has been forgotten about". That's the biggest thing it has over any kind of imperative solution IMO.
I feel like even if I want to distro hop again and end up putting something else on my desktop, NixOS is going to stay on my servers indefinitely. It's pretty much a perfect fit for servers.
Proxmox (debian) on the hosts, and Debian for all the VMs and Containers.
Just nice and easy to use, supported by basically everything, and a minimal install uses like 30MB of RAM.
I also have an OSX VM because that's literally the only way you can test a website in Safari (fu Apple).
Love proxmox. Been using it for nearly a decade and while it has its pain points it has been rock solid for me for the past 4 years.
Debian
Three HP ProLiant servers running ProxMox cluster. Each box has a VM for Portaiber, as well as mismatch of VMs running Home Assistant OS, OpenWRT, Ubuntu, Windows and Debian, along with a Windows file server that connectes to four cheap NAS running Ubuntu LTS with a combined 20 mismatched hard drives by iSCSI and borgs them together with Storage Spaces.
It's a fucking mess, if I'm honest.
I love this so much
Debian.
Stable, well documented, easy to install. I do not need anything else right now.
Debian. It is rock solid. If software doesn't support Debian, chances are it supports something Debian based. You never have to worry about an update breaking your computer. It is the perfect "it just works" distro for a server.
Debian
Synology DiskStation Manager.
Ubuntu LTS, with all my services in Docker containers.
I know Ubuntu gets a lot of (deserved) hate for some of the shit Canonical pulls, but for now, I like Ubuntu and it works for me.
When I rebuilt my server at the beginning of the month, I was gonna jump to Debian, but my god the Debian website is obtuse. After looking at the site and trying to determine what to download to get Debian with non-free (I’m unfortunately working with an NVIDIA card), I decided to go with Ubuntu. I needed a smooth rebuild process and with Ubuntu I know exactly what I’ll get when I download the LTS server.
Edit: grammar
Arch Linux. I am so used to it I just can't live with any other OS
I am super impressed with Arch on my home servers. People seem to think "rolling" means "unstable" but the only issues I've had were due to some weird hardware incompatibility with my motherboard. Once I replaced the mobo my system has been rock solid AND reasonably up-to-date (I do use LTS kernel).
I felt the exact same way. So many comments online told me that running Arch as a home NAS was insane, but after the Jupiter Broadcasting guys did it without much issue, I decided to give it a go and was pleasantly surprised. I think if most of your stuff is running in Docker and you have BTRFS snapshots for your root filesystem, the system's pretty much bullet proof. The rolling updates also mean you'll never have huge upgrade cycles that are a pain in the ass to migrate to. You're always just dealing with small manageable fires instead of large complicated ones and that's a plus.
Proxmox for the the hosts, Debian cloud imagen for the VMs and docker inside
Ubuntu Server with docker/docker-compose on top.
So many guides for Ubuntu specifically makes reading up on something a lot easier and it works just fine.
NixOS
OpenMediaVault
Good OOTB customizations, works on Pi, and easy to extend with plugins (Docker/Portainer is pretty much all I needed).
Ubuntu 22.04 server. It works well enough for my purposes and until it doesn't I don't see a reason to switch distros.
Currently I am using Arch Linux. I am in the process of switching to NixOS.
TrueNAS formerly known as FreeNAS
Just to be controversial, macos. It's nothing fancy, just the arrs and Jellyfin running on an old MacBook air.
My DIY NAS runs Arch
- LTS kernel
- BTRFS snapshots on root fs
- 4 drive NVMe array using ZFS raidz1
- podman for my docker containers
It's been working fantastically so far.
I'm running FreeBSD I actually like it a lot.
I picked it for zfs. A lot of the ways things work seem cleaner and simpler than on Linux and zfs is awesome with the copy on write snapshots and filesystem compression and all that. I like rc.conf and pf is way nicer than iptables and even when you upgrade it automatically makes a snapshot so you can rollback.
Sometimes I do need to patch and compile things because people seem to not know freebsd exists but that's really the only downside.
Proxmox with Debian LXC containers. The most natural transition from Raspberry Pi OS which is a Debian flavor
Pi OS. It's a Pi4 after all.
Debian Bookworm
Hyper-V / ESXi for host. Mostly windows with some Ubuntu server.
Depends on what you want to do with it. But for most things Debian or Fedora (Server edition) work fine.
I too proxy my moxies, but run various OSes within them (via VMs or containers).
Debian + Docker.