Sign in

What is better than a personal Ad blocking DNS node? personal DoH node and whats better than DoH ? Personal ODoH node 😎 . ODoH is a new proposed DNS standard co authored by Cloudflare, Apple and Fastly. Not yet publicly available to use for the masses, there are some clients made available by cloudflare, details in the link, I ain’t using any of them for my setup/version of ODoH 😉

The good old DNS is too old to have any modern day security or privacy concerns addressed

I went on to setup my own public DNS node built on top of PiHole using Cloudflared and DNSCrypt and private VPN node support with Wireguard in cloud with log monitoring using Grafana/Loki and container monitoring/management using WeaveWork Scope and Portainer all automated with Ansible, Packer and Terraform 😎. This is similar to the setup I run at home of an Ad blocking VPN with DNS over HTTPS on a Raspberry Pi4 , so why do it again ? 😅

  1. This is automated so the stack can be created in under 5mins from scratch in the cloud 😉
  2. It’s more…

I have used Weave Scope previously to monitor and manage Ultronex. Its a great software and really powerful. Last year I bought a Raspberry Pi4 while the world came to a stand still and setup my Ad blocking VPN with DNS over HTTPS on a Raspberry Pi4 and recently setup a Smart Display real time dashboard but all of this was lacking one thing I got use to, convenient container monitoring and management from anywhere on the web. Weave Scope is not available for arm and it broke the deal for Raspberry Pi4. So after some searching came across Portainer

Did you know Docker internally uses Google DNS (, to resolve all domains when downloading images or installing dependencies while building images ?

Recently while building Smart Display with Phoenix LiveView I found that’s the case when suddenly all new image downloads or build dependencies that were not cached started failing. As I run my own Ad blocking VPN with DoH and have a sink setup on my router for Google DNS as many of the devices for e.g Chromecast come hard coded with Google DNS to allow serving ads and geo lock your content.

Initially I couldn’t figure…

I have been following Elixir/Phoenix for some time now and finally got to work with elixir with a slack bot UltronEX and it blew me away how performing it was compared to Ruby. During this time Phoenix LiveView was gaining traction. Which got me excited but I needed something to built to play with it and that is when I came across this post about Building a Smart Mirror with Phoenix LiveView. This gave me some motivation and idea to do of my own. So during this 2020 pandemic when the world was all holed up indoor I bought a…

Elixir has seen fast adoption in Wego with multiple services already in production after the weekend project UltronEx became a daily driver for monitoring real time data it has spurred a movement to explore new options and build robust resilient systems.

As We run almost all our work loads in containers we take advantage of the same build pipelines for building container images to run CI/CD as well. Elixir runs on BEAM and has some nice features such as hot redeploys that is something anti to the concept of containers where they are immutable images none the less it does…

Elixir logging is awesome and extensible. You can write your own backend or a Formatter and make endless combinations with unlimited possibilities. JSON logs are the norm nowadays and there are plenty of ways to get JSON logs in #elixir. Ink 💪 is an awesome hex package to make that happen. Add it to your project and all your logs will become JSON. There were 2 shortcomings though for me

  1. It only writes to stdout, though that would work in most cases but when you have to write to file it hits a wall.
  2. Is not an Ink issue per…

Anyone who works with linux would have heard about Systemd. Its great to manage your services as it runs as a daemon and can manage process lifecylce of your application, services etc. I use it to manage my application running using docker-compose.

Every application requires some secrets or configs that are stored as environment variables and are accessible by apps via standard process initiation from your source environment.

When using systemd it was a surprise that it doesn’t read the variable that are set in your environment. one of the easiest way to resolve that is to have a file…

Upcycle your old laptop don’t throw it away

So i bought hp dm3000-ea beats edition in 2012-2013 my 2nd laptop ( 1st one was gifted to me by my dad on graduating) this was probably the most expensive thing back then out of my pocket ever
تب احساس ہوا عیاشیاں تو باپ کے پیسے سے ہوتی ہے اپنے سے تو صرف ضرورتیں ہی پوری ہوتی ہیں
So been using it till last year, after over 6 years of use it finally "died" on me. Before this in 6 years its RAM had degraded over time and had upgraded it from 3GB…

Ad blocking VPN with DNS over HTTPS on a Raspberry Pi4

I recently bought a Raspberry Pi4 with just an idea of setting up an OpenVPN node for fun. Once it arrived it felt like a COVID19 impulse buy 😅 when I could have gotten an instance in cloud for as low as 4 SGD and use it for almost 3 years to break even the cost. So I started exploring what more could I do, while doing more and more DuckDuckGo searches I realized I could set up an Ad blocking DNS using PiHole. As there is now the…


Coder during the day, squash player in the evening and cricketer over the weekends. Doubts are the ants in the pants, that keep faith moving

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store