Zulip, archivebox, codimd, mailu, plex, radarr, sonarr, jackett, transmission, matomo, kiwix, minecraft, nextcloud, unifi controller, unifi CRM, pihole, wireguard, zfs, glusterfs, freenas, autossh, swarmpit, netdata, syncthing, duplicati, elk stack, nomad, a bunch of static sites, a bunch of wordpress sites, a bunch of assorted django apps (including a large consumer-facing one), custom dyndns and tls renewal cron jobs, and many many more that have come and gone over the years.<p>All on a few Vultr + Digitalocean droplets, 2 raspis + 1 atomic pi, a couple HP i5 mini desktop machines, and a Dell r610 rack server with 24 cores and 48GB of ram (with about 36TB of assorted shucked and unshucked USB hard drives attached in a few GlusterFS / ZFS pools). I have a home-built UPS with about 1.5kwh worth of lead-acid batteries powering everything, and it's on cheap Montreal power anyway so I only pay $0.06¢/kwh + $80/mo for Gigabit fiber. It's a mix of stuff for work and personal because I'm CTO at our ~9 person startup and I enjoy tinkering with devops setups to learn what works.<p>All organized neatly in this type of structure: <a href="https://docs.sweeting.me/s/an-intro-to-the-opt-directory" rel="nofollow">https://docs.sweeting.me/s/an-intro-to-the-opt-directory</a><p>Some examples:
<a href="https://github.com/Monadical-SAS/zervice.elk" rel="nofollow">https://github.com/Monadical-SAS/zervice.elk</a>
<a href="https://github.com/Monadical-SAS/zervice.minecraft" rel="nofollow">https://github.com/Monadical-SAS/zervice.minecraft</a>
<a href="https://github.com/Monadical-SAS/ubuntu.autossh" rel="nofollow">https://github.com/Monadical-SAS/ubuntu.autossh</a><p>Ingress is all via CloudFlare Argo tunnels or nginx + wireguard via bastion host, and it's all managed via SSH, bash, docker-compose, and supervisord right now.<p>It's all built on a few well-designed "LEGO block" components that I've grown to trust deeply over time: ZFS for local storage, GlusterFS for distributed storage, WireGuard for networking, Nginx & CloudFlare for ingress, Supervisord for process management, and Docker-Compose for container orchestration. It's allowed me to be able to quickly set up, test, reconfigure, backup, and teardown complex services in hours instead of days, and has allowed me to try out hundreds of different pieces of self-hosted software over the last ~8 years. It's not perfect, and who knows, maybe I'll throw it all away in favor of Kubernetes some day, but for now it works really well for me and has been surprisingly reliable given how much I poke around with stuff.<p>TODOs: find a good solution for centralized config/secrets management that's less excruciatingly painful than running Vault+Consul or using Kubernetes secrets.