Most "self-host this" lists are a wall of logos. I wanted something more useful for myself: a short set of open-source projects I'd actually consider running on a small box, with the one or two details that decide whether they're worth the trouble. The eight below range from a Zapier-style automation engine to a comment widget that lives on GitHub Issues. Each links to a longer reading note I keep in my digital garden.
Automating work and keeping track of people
Automatisch. If you like Zapier's model of triggers and actions but would rather keep the data on your own server, Automatisch is the obvious place to look. It connects services such as Slack and Twitter without code, and getting it running is a git clone followed by docker compose up. Two things are worth knowing before you commit: it's mostly JavaScript with around 14k stars and steady releases, and it uses a dual licence. The community edition is AGPL-3.0, while files with .ee. in the name fall under a commercial enterprise licence. My note has the details on Automatisch's licensing split and setup.
Monica. Monica calls itself a personal relationship manager: a CRM, but for friends and family. You log how you met someone, birthdays, past conversations, addresses, tasks and reminders, and it can hold journals, photos and documents too. What I like is how clearly it says what it isn't. There's no social network and no built-in AI assistant, no ads and no tracking, and it's licensed under AGPL. Users who struggle to remember personal details, including people on the autism spectrum, have reported it helps. Here's my write-up of Monica as a private CRM for your own life.
Moving files and connections around
PeerServer (peerjs-server). PeerJS lets browsers talk to each other over WebRTC, and PeerServer is the small signalling server that introduces them. Your media and data never pass through it. You can install the peer package globally from npm and run peerjs, use the peerjs/peerjs-server Docker image, or Kubernetes, or mount it inside an existing Express app with ExpressPeerServer. If you put it behind a reverse proxy, remember to set proxied: true; there are also options for SSL, CORS, connection limits and custom client IDs. The PeerServer configuration notes cover those options and a Google App Engine deployment that needs the flex environment for WebSockets.
telegram-files. This one solves a narrow but common problem: pulling files out of Telegram channels, groups and shared links reliably and without babysitting. It handles multiple accounts, pause and resume, automatic transfer to another destination, and inline previews of images and video in a PWA. Setup needs your own Telegram API ID and hash. The security defaults are sensible: admin sessions guard the API, previews and WebSocket, and on first start it prints a one-time bootstrap code valid for 15 minutes so nobody else can claim the admin account. It's MIT-licensed. More in my notes on running telegram-files as an unattended downloader.
WsgiDAV. When you need a WebDAV share and you're already in Python, WsgiDAV is a WSGI-based server you can run from the command line or embed as a library. What makes it interesting is the provider model. Besides the plain filesystem, the docs list providers for Mercurial, MongoDB, MySQL and virtual resources, and you can write your own by subclassing DAVProvider, DAVCollection and DAVNonCollection. I kept a map of the WsgiDAV docs and its provider API so I can find the right page quickly.
Small services for reading, linking and commenting
wewe-rss on Hugging Face. wewe-rss turns WeChat official accounts into RSS feeds, which is about the only sane way to read them in a normal feed reader. The guide I saved runs it on a free Hugging Face Space: a MySQL instance on Railway's free tier, a rewritten Dockerfile with app_port: 4000, and three secrets (DATABASE_URL, AUTH_CODE, SERVER_ORIGIN_URL). Keep the Space public at first so the origin URL resolves, use Factory rebuild to update, and back up the database before the free credit runs out. The steps are in my wewe-rss Hugging Face deployment note.
EasyNav. Every company ends up with a wiki page full of internal links that nobody maintains. EasyNav is a cleaner version of that: a navigation portal with groups, sub-categories, ordering, search and login, built on React 18 with an Express backend on SQLite or MySQL. It ships Docker Compose and Kubernetes manifests, hashes passwords with bcrypt, uses JWT and parameterised queries, and is released under the Mulan permissive licence. See what EasyNav includes for an internal links portal.
CWGI comments. The author of this blog comment system had tried Disqus, Gitalk, Utterances and Cusdis and wasn't happy with any of them, so they built their own. Comments are stored as GitHub Issues, logins go through a GitHub App to keep bots out, and the client is Solid.js plus Tailwind at roughly 23 kB gzipped with no iframe. The server side runs on Cloudflare Workers. The catch is that a GitHub App needs a callback URL, so in practice you run your own backend, and anonymous reads are limited to GitHub's 60 requests per hour. I summarised why CWGI stores comments in GitHub Issues and what that means in practice.
How I'd pick
Almost all of these are a Docker command away, so trying them costs little. Where they differ is licensing and exposure. Automatisch and Monica are AGPL, and Automatisch adds enterprise-only files, which matters if you modify and serve them. Anything that holds credentials, such as telegram-files' Telegram session or wewe-rss's database URL, deserves HTTPS and a proper first-admin setup before you open it to the internet.
These are my own reading notes; each project belongs to its respective authors.
