Self Hosting any software means freedom, flexibility and soverignity.
The first step before self hosting software is to own your own slice of the internet with a static website . Reclaiming the independent web starts with self hosting your own site! The natural next step is is to self-host software on your own LINUX virtual private server . You can in theory use static hosting and still self host for the fun of the community.
Here’s a list of awesome open source Software I currently use and self host. Most of them on either a raspberry PI or a $5/month Linux VPS at Linode .
Table Of Contents
My 3 Requirements
I’ve got 3 requirements when choosing to self host something. The software must be a self contained , minimal configuration, single binary with a local DB. Most projects fail to meet these requirements thus from my perpective, they are not easy to selfhost.
- Single binary executable - everything in it including UI - This is mostly true for
Golang
,Rust
and sometimes withC
projects. - Uses SQLite as a database (Or badgerdb, boltdb, local file DB) - Easy to backup, easy to review data in database and to move to other hosts.
- No external dependencies or not requiring to install/setup anything else. Just SCP, setup systemd service, edit a minimal config file and I’m done with. I can leave it on for years without bothering on a $5/month Linux VPS .
This means tools built in python/javascript/php or whatever scripting language are usually excluded because they fail points 1. and 3. If you embed the UI in the binary, even if it has a JavaScript frontend, this will enable anyone to be able to host it. This ensures I can easily setup a systemd service. NO need for complex docker and other cloud shenanigans. I can manage my own cheap LInux VPS. . I’ve tried kubernetes, doesn’t work. You can easily scale things on a single VPS. Add multiple and use Ergo Framework for high availability and fault tolerance based on ERlang or Elixir/ERlang’s scaling features IF you really need to scale. THis means you might as well ditch your programming languages intead of creating complexity .
Self Hosted Software you can install and use right now on your linux VPS
I’ve drilled down on this list after years of experiments.
Vikunja - Self Hosted TODO app for tasks and planning like kanban boards, multi projects, multi user. Great
Golang
ListMonk - Self Hosted Email Newsletter & Campaign management - I’ve used Sendy in the past but ListMonk is easier to setup & manage, it does miss some sendy features but who cares?
Golang
Hugo - Not really self hosted, but a great and powerful static site generator.
Golang
Fossil Source Control Management - I’ve been using fossil for years . It’s an amazing source code management system which is self contained in 1 binary, it has wiki, forum, and a plethora of other features making it suitable to host your own wiki/forum or even static website.
C
Caddy Webserver - A simple, intuitive webserver and reverse proxy with automatic HTTPS. After struggling with apache, nginx and haproxy i think caddy is great - After all, most websites/people don’t need huge compelx systems. It has
Mox - SMTP, IMAP, Mailsever
Golang
- I used to host my own mail servers and wrote why you shouldn’t do that but this all changed with mox. It’s easy to setup, and it’s a single binary taking care of your mail needs.Golang
- (Just experimenting with this one since december 2024)Ergo IRCd - Internet Relay Chat Server used for ZenDenPen -
Golang
Collie - RSS Feed - Because social media sucks I like your site? I’m gonna subscribe
RUST
[SQLITE] - THe most deployed, most used database in the world.
C
GoatCounter - GOlang based analytics
golang
Pocketbase - A Backend as a service (alternative to suprabase) - Used for some things where I need a fast API :)
golang
remark42 - Self hosted Privacy-focused lightweight commenting engine for static sites, blogs, internal systems, etc
golang
Apache answer - A community Forum and Q&A system -
golang
Syncthing - FIle sharing/sync-ing between multiple computers
golang
SystemD - No docker, no containerd, no podman, no kubernetes - Simple LINUX builtin system service restart with systemd. It’s all you need.
C
FIlebrowser - A simple cloud system - Multi user, share , automations with running commands upon upload, after editing, saving etc.. can create complex things easily.
golang
Yarr RSS Feed reader - Simple and beautiful web interface, folders, stars/favorites, ability to READ IN IT (no need to go to website) which can increase privacy
Other Self Hosted software including LinSublim which I’ve built using
Golang
Not really using anymore
I could cal this list Waiting for them to become better
. Tools I’ve tried to use and no longer use
- Memos - Note taking software
golang
- Commento - Golang based comment software, using remark42 instead
golang
The list would be pretty big but i’m listing only those which met my 3 requirements.
I also use other software but that’s mostly local based. I’ve used plenty of other self hosted tools/apps but gave up on them.
You might have noticed that most of the apps are based on the Go Programming language . I’ve always used to want to have all software in 1 programming language in the past that failed, but with GOLANG/
Want something else?
Here’s a huge list of self hosted software you can experiment with.
Have a happy enjoyable winter season, christmas and newyear!