Hi I’m Phil 👋, I’m a software engineer, and I maintain an open source push notification tool called ntfy. I’m also German 🇩🇪, and a big fan of 🇬🇧 & 🇺🇸, and a dad of two 👦👧
Great writeup thank you. May I just say that tmyour original plan was both ambitious and a little insane. And even the current cost and infrastructure is bonkers IMHO.
I do hope you’re getting donations to help with the cost. Good luck.
My instance is on the other end of the spectrum: I pay $6/month for it on digitalocean. It has 1G of RAM. It crashes every now and then, likely because of the RAM and OOM killer. But it’s only for me and a few ntfy fans, so it’s quite different.
Use ntfy.sh. It’s open source and has a free server.
Disclaimer: I made it ;-)
Install Debian Stable on a SSD, most likely via debootstrap from the Ubuntu system
What an interesting way to install a new system. I’ve only ever done that for image building purposes. Why would you do that instead of just installing it from a flash drive?
Also: it sounds like you’re manually installing things. I would suggest Ansible or something similar, so that reinstalling isn’t so brittle and manual.
I asked the same question on r/selfhosted a few weeks ago, and I was downvoted just for asking the question.
https://www.reddit.com/r/selfhosted/comments/13elu4p/why_downvote_so_much/
It’s already integrated into a bunch of things, especially the *arrs, but if you have suggestions, please let me or the maintainers of the other software know.
Here’s a list: https://docs.ntfy.sh/integrations/
I just read this article and what Meta is doing then triggered all the alarm bells!
This tactic even has a Wikipedia page: Embrace, extend, and extinguish
From the Wiki (quite enlightening):
The strategy’s three phases are:
- Embrace: Development of software substantially compatible with a competing product, or implementing a public standard.
- Extend: Addition and promotion of features not supported by the competing product or part of the standard, creating interoperability problems for customers who try to use the “simple” standard.
- Extinguish: When extensions become a de facto standard because of their dominant market share, they marginalize competitors that do not or cannot support the new extensions.
You got a lot of heat in this discussion, but let me be one of the few to applaud you for actually making a proposal. Saying No is easy, but suggesting something and writing it down and putting it out there is hard.
I am a Principal Engineer by trade, and i do what you did here all the time. I put out suggestions to my team and let them absolutely wreck it. This is how you advance and enhance your idea. Listen and learn from the feedback and suggest another thing based on what you have learned. Rinse and repeat.
That’s how you get to a great proposal. Keep at it. Well done.
I hosted my incoming mail for years with a minimal postfix config that would just relay to Gmail. That got me individual email addresses per service (e.g. grubhub@mydomain.com, …) that I could turn off when a service got annoying.
It worked wonderfully without issues for years. And by years i mean 8-10 years!
Recently, 11 months ago, i noticed that some mails were not relayed anymore, and i ultimately switched to Cloudflare for that feature. You can read more about that here: https://www.reddit.com/r/selfhosted/comments/vqk4j9/mail_relay_as_a_service_moving_away_from/
That said, if you only want to store the incoming mail, I don’t think you’ll have issues beyond spam, a lot of spam.
Good luck.
I maintain and host ntfy.sh, an open source push notification service. I have a constant 9-12k WebSocket and HTTP stream connections going, and I host it on a two core machine with an average load average of less than 1. So I can happily tell you that it’s not WebSockets. Hehe.
My money would be on the federation. Having to blast/copy every single comment to every single connected instance seems like a lot.
Just try it out. I make no guarantees for odd setups like that though. :-)