Blog

Thoughts, ideas and codes

Hi, today I'm happy to announce that the server is one year old. I'm happy, glad and grateful for all that has happened and learned in this self-hosting journey, from my start as a dumb guy who didn't know how to set up ssh keys to setting up dockers, dealing with rust and reverse proxies.

From first to read guides like https://landchad.net/ to read to understand more to online guides and blogs to even official docs.

While I can't offer anything special today, like a new frontend to self-host or a giveaway (I'm broke :/), I decided to make this announcement and make you feel happy with me and tell you that while I'm not an expert, I've certainly learned a thing or two, and I can help you if you're interested in self-hosting too, because more people are welcome in this space!

I actually started self-hosting much earlier, in November 2021 to be exact. It was my old computer and I installed docker and started to learn how to use self-host invidious and kept it running for a month but decided to disconnect it due to expensive electricity and bad internet reasons (I'm subbed with their β€œSuper” plan, so it's 30mb/s πŸ™‚) so I looked online until I got VPS from Hetzner for a month, but my plans are to host a lot of services, so you can see why I did not stay for long. Later I heard about contabo, but a lot of people warned me about how slow their hardware is and that's why their VPSes are cheap. And later I heard about Kimsufi (my love) and I was stunned by how cheap it is (sure, it's old hardware but come on, at least it's dedicated servers) so I kept looking at their list until one day they hosted the 2022 winner sale and at first I was scared because it was a lot of money to pay, ~ 300 EGP to pay monthly, and it was my first time to pay monthly for something (aka. rent) instead of one time (laughs, now I pay ~ 700 for the same server. Damn you dollar) but I encouraged myself and here we are. One year later and I think it's the best choice I ever made.

And last but not least, I would like to thank Allah (yes, you heard me right) because I literally pray every month to get money from my freelance work so I can keep this server running for another month. And I am grateful to all of you who have stuck with me and used the front-ends that I host myself and I hope you continue to enjoy them and I continue to give back to the community because, damn it. We need more privacy alts and more decentralization, even if it's just another guy/girl self-hosting a frontend.

A year has passed by, what a long journey, man. This is the first bill I paid for this server and it's dated 25 Jan 2022This is the first bill I paid for this server, and it's dated 25 Jan 2022 (Alt link)


PS: Donate, so I can keep it running for another year (or even years, hopefully): https://esmailelbob.xyz/en/#donation


Like my work?, support me: https://donate.esmailelbob.xyz

Hi, today I'm happy to announce after my absence of self-hosting new front-ends (because I thought that I self-host most of them) in last couple days I self-hosted 10 new front-ends and probably will continue more and here is the list:

I plan to self-host more like keyoxide and draw.io or even openstreetmaps and if you know some other front-ends that I do not host (yet), feel free to contact me and enjoy using my latest self-hosted instances. ___ Expect major downtimes in next couple of weeks because most of those instances do not have docker-compose so I use plain old npm and rust so expect me break stuff while β€œlearning” how to deal with npm directly not behind docker


Like my work?, support me: https://donate.esmailelbob.xyz

openpgp4fpr:8738F073D80BD48812CCC8AF64AD9006A2D1C55B


Like my work?, support me: https://donate.esmailelbob.xyz

Well, after months of inactivity of self-host new frontend (because I found no new projects) I finally found some by looking over other self-hoster's instance pages, and I'm happy to announce now I self-host:

So, enjoy and remember. I do not log anything: https://github.com/EsmailELBoBDev2/upptime/blob/master/pri-tos.md and feel free to request frontends to self-host: https://esmailelbob.xyz/en/#contact


Like my work?, support me: https://donate.esmailelbob.xyz

Hi, I'm happy to announce that I self-host: * dumb https://dumb.esmailelbob.xyz/ (an alternative to genius) * BiblioReads https://biblioreads.esmailelbob.xyz/ (an alternative to goodreads)

So enjoy πŸ˜ƒ


Like my work?, support me: https://donate.esmailelbob.xyz

Hi, I have no idea what to write about bye!


Like my work?, support me: https://donate.esmailelbob.xyz

I'm happy to announce my Minecraft server is back! It's not self-hosted, I use https://aternos.org. But not to worry, I'm still looking for way to buy another server from Kimsufi or So you start and host some game servers like Minecraft and Team Fortress 2. So this Minecraft server on aternos.org is just a temporary station until it moves to my own server(s) as well.

But, do not let that spoil the joy of that, I have Minecraft server now! So you can join it by simply going to mc.esmailelbob.xyz and It's simple survival server, so it's not like full of mini-games. Simple survival, but instead it's online with some anti-grief plugin so no one can break your house or steal your chests unless you whitelist them. And anti-cheat plugin as well to make sure that we all suffer in the survival mode....

It's public for all users, including cracked Minecraft accounts, so enjoy.

PS: Aternos, known for closing the server if there are no players, I use my β€œways” to let it open as long as possible but yes you might expect some downtime as the server is offline.

#news #thoughts


Like my work?, support me: https://donate.esmailelbob.xyz

TL;DR: Learn and use iptables instead. Much faster and has wide support (at least in docker).

I use UFW since I started to self-host because people kept talking about it and how much it's good and easy to use, and it was, do not get me wrong. It's easy to use, but it was slow. And I can live with its slowness, but I could not bear it when I started to use mailcow, Because of slow SMTP connection times. I thought it's the normal to be honest, sending email takes around 30s to complete. And after asking online I found people usually wait 5s to complete sending email and I said FUUUUUCK. You guys wait 5s? Started to look into it more to understand what causes it, but nothing. Until I suspected in UFW and I closed it and boom, sending email only takes 3s now. I said wow, but then said fuck, now I have to live without firewall? No, no, no. So I gave up and enabled UFW again and called it a day, but I had enough with it, so I came back and someone recommended for me to use IPTABLES instead, and I was like, WTF? UFW is IPTABLES, but I tested and indeed now sending time only takes ~5s, and I was like wow (again) it's much faster. And this is why in the last couple of days I had major outages because simply I was learning iptables πŸ˜‚. So what we learn here is if you have a chance, learn iptables, it's much faster than UFW (at least in my case) plus what I learned too is that docker uses its own iptables (so you do not need to add ports for your docker containers because docker already do it for you) so if you want to control docker rules, you will have to do it inside iptables not UFW.

Here are some good sources, I learned from it: – https://github.com/ChrisTitusTech/firewallsetup (https://youtu.be/qPEA6J9pjG8) – https://serverfault.com/a/200658 – https://serverfault.com/a/758499 – https://www.cyberciti.biz/faq/how-to-set-up-wireguard-firewall-rules-in-linux/ – https://superuser.com/a/427472

NOTE: Unlike UFW, you need to save your rules in a file by using iptables-save and in my case that file was /etc/iptables/rules.v4

#thoughts


Like my work?, support me: https://donate.esmailelbob.xyz

Because I believe in transparency, When I do something wrong, I will admit it, and today I want to admit that I did something unintentional and wrong.

Around 3 months ago, I was happy to announce that I finally achieved no IP logging in my nginx access logs. I took the code online and tested it and I thought those IPs were not real (did not look them up to validate it) and today I was checking the logs and found the IPs, so I said hey, let's validate it and I noted my IP then went to access log to search it, and it was in there. So technically I spent the last months lying about no IP logging. I did not mean to, as I said it was not intentional, but it happened. So I know you now might not trust me, I understand that. But I chose to admit it instead of fixing it in the shadows, so right now I'm working on solving it

But on the good side, the 24 hours log policy is working, so it's the IP part only.

UPDATE: Ok, I closed both access_log and error_log, so no IPs, URLs or user agents collected at all. Will this be my new privacy policy? Or maybe anonymizing IP is enough? I will see if I can live without logs at all, then I will close it all together.

UPDATE OF THE UPDATE: Okay, fuck it, no logs at all. For whatever reason, I can't modify the format of logging in nginx, and people on Reddit did not respond to my help post (over a day now) so I set both access_log and error_log to off. And even in docker itself. However, I may re-enable logging back in case of errors.

#news #thoughts


Like my work?, support me: https://donate.esmailelbob.xyz

Without so much talking, I now self-host BreezeWiki. What is BreezeWiki? It's front-end for Fandom so for example now you can learn how to run Roblox on linux without actually visiting Fandom, https://breezewiki.esmailelbob.xyz/roblox/wiki/Tutorial:Using_Roblox_on_Linux

As you noticed, you add /roblox as sub-path instead in original fandom wiki link as subdomain (roblox.fandom.com)


Like my work?, support me: https://donate.esmailelbob.xyz