So far I had all the micro-servers in the home network connected either to a LAN port or to an Orbi Satellite. This week I implemented a simple 8 port un-managed TP-Link switch into my ‘homelab’. Costed just about 18 bucks with a price-match from amazon and it has tremendously improved upload/download speeds! Also it’s pretty cool to visually see that the RPi3B+ boards are being throttled at 10/100Mbps while the RPi4 is rummaging at 1000Mbps.

While at it, I re-purposed a few card-board boxes and built a bare bones stack. Ain’t pretty does absolutely does the job!

Weeknote 19 – feeds and sessions

A glimpse of the past week and the few things that captivated my attention:

Weather’s been pretty erratic this week. We also had a mild dusting yesterday out of the blue! Might consider heading out for a hike later today.

I nudged Meena to write more. We’ve had some interesting discussions on Yoga and other things over the past week and I do think she has a ton to share! She’s also planning to train for a 50miler which I am super excited about! Oh and beyond all that marketing ploy, Happy Mothers’ day.

Shasta’s talking a lot more now. Pretty sure her verbal diarrhea is soon going to start soon too!  The other day, while sitting with Appa she said something to the effect of ‘i-pae’ pointing to the ipad. Grandfather and daughter are totally connecting on these gadgets!

Git: I agree on many levels with what Kev posted recently about Github. I enjoy working on and deploying software tools. What I do not enjoy is the whole git pull, push, fork thing!

Sessions: I am running a session later this week for the Khat-pat folks on self hosting. Planning to keep it mostly hands-on and crisp. The idea is to get them started on taking better control of their presence on the interwebs! I’d also love to join the Indieweb folks one of these days. They have one coming up on the 20th!

Tools: Earlier this week, I came across e-mail cloaking services – Simplelogin and Anondaddy. Love the idea and I might give them a shot the next time I subscribe or sign-up for a service.

Feed Readers: Over the past few years, I’ve used multiple feed readers – Netvibes, TheOldReader, FreshRSS and Fever. They were all good in specific aspects but I didn’t really find them to be that one tool which I could use to consume the inter-webs my way. Earlier this week I decided to self-host one and narrowed down to FreshRSS, miniflux and selfoss. After a few iterations of deploying and testing, I stuck with selfoss. It’s super light-weight and has all the specific features I was looking for.  To deploy it on docker, I used the boiler-plate template that I created earlier when setting up my known instance.  The gist file for the docker-compose is here. The install should take you at most 10 minutes assuming you have the base framework setup. What I do love about selfoss is the ability to push articles over to my wallabag instance.

Trilium: I’ve moved most of my notes over to Trilium and I am absolutely loving it! While it’s hierarchical, it is also setup not to be one.

Interesting reads this week:

Time-restricted eating: Philip referenced this article recently and I think it’s brilliant! Also went ahead and signed up for Rhonda’s podcast.

Tracking using ultrasound frequencies: Whoa! This totally blew my mind! If google uses it to connect your devices with chrome cast, what’s really stopping them from using it to track what you are watching? And now how do you block that invasion?

Workplaces in the era: Firms will have additional pressure from (or will be incentivised by) their insurance companies to have monitoring in place. Over the span of few months, this will be the new normal. Looking back, haven’t we all got used to keying-in and out at our workplaces?

We kill people based on metadata: Quite a lot is changed since 2014. What hasn’t though is how fragmented and withdrawn several government and private entities are even in times of crisis.

The mystic veil of End-to-End encryption: Interesting read on the data sharing between these apps.  The other day I was wondering how Bark‘s able to access messages from these apps. Likely they have something on these lines drifting underneath? While I love the concept of the app and the benefits it provides, I did cringe and walk away because I just wasn’t sure how they’d be handling the data.

Migrating over to Trilium notes

I’ve had my eyes on Trilium notes since last year. Having setup a robust docker framework earlier this year, I decided to test Trilium out. Gave it a test run this morning and am way impressed with its’ functionalities! With docker, installation was super easy and I am strongly leaning towards using Trilium as my primary note application.

The yml file to get this running on docker (swarm) is in my github gist. You’d obviously need to have docker installed, docker swarm running with the traefik container and the domain mapped as needed. My Jitsi post has this outlined further.

Trilium Web app

While I haven’t spent a fair amount of time diving deep into the setup, here’s a quick first impression:


  • Beautiful interface that can be as sparse or as detailed as you’d like it to be
  • Encrypted by default and further protected sessions for sensitive notes
  • A note-info section that details attributes and link-maps
  • Notes can be ‘cloned’ under multiple places in a tree
  • Code scripting, tables, markdown, images, files – It’s got it all!
  • Web clipper for quick screen and context grabs
  • Export and Import functionalities


  • No mobile apps yet! However, it does have a mobile front-end which should be a good alternative
  • No multi-user support yet

I was exploring Joplin as an alternative initially but decided to stick with Trilium since the Joplin app currently has limited functionality (Creating nested trees in the mobile app). Meena’s been looking at switching over from her current Evernote setup and I think this might be a terrific replacement for her. Was never really a fan of Evernote and that dislike strengthened further when I had to install the app either on a Mac or PC to export my content! I am so glad we have the strength of open-source to weigh against these silo’ist setups!

Deploying Known on a docker stack

To migrate my php applications that did not have a handy docker-compose available, I needed a vanilla setup for my stack-based docker environment. Known is one of those apps and so the first step was to build that PHP environment.

Setting up a Dockerhub repository and building a custom PHP image

[If you decide to use my image, you would not have to build this yourself. Skip ahead to the Deploying Known section]

Most php based apps also need specific extensions built-in. While I am sure they’re out there on the Docker hub repository, I was not able to easily find any images that met my specific needs . So I went ahead and setup my own repository on Docker Hub.

Something I learnt today was that a docker stack only accepts pre-built images. Which essentially means you cannot use the regular build command on the fly in your docker-compose file. A quick work-around to that is to build the image locally and then publish it to a public repository from where the stack can easily access it.

  • Create a dockerfile: sudo nano dockerfile
  • Copy over contents from my dockerfile gist. Edit or update if you need any additional extensions. Do note that I am pulling a debian buster image here. An alpine image would be optimal but lets’ run with this for now.
  • Build the image locally:
    docker build -t sriperinkulam/php-7.4.3-apache-buster-plus:latest .

Edit the image and tag name as needed. If your gist file is defined correctly, the image should be ready in a few minutes. It took me a few iterations to get this working with all the extensions I needed and shouldn’t give you any errors during the build process.

  • Login to your Dockerhub repo: docker login
  • Push your image over to your repository:
    docker push sriperinkulam/php-7.4.3-apache-buster-plus:latest
  • Within a few minutes, your image should be available for easy fetch whenever needed!


Setting up and deploying the Known install

  • Create a folder for the known installation:

sudo mkdir known && cd known

  • Copy over my ‘known.yml’ gist from here and paste into a known.yml file.

sudo nano known.yml

This is where we use the image we built earlier! Make sure you update the passwords there-in.

  • Create an ‘app’ folder. This is where we will copy in the core known package.

sudo mkdir app && cd app

Marcus Povey does the heavy lifting of packaging the known install ‘unofficially’. Download his latest pre-packaged release from his portal.


Finally unzip/untar the package.

  • Step back into the main ‘known’ directory and deploy the stack that we defined in the known.yml file.

cd .. SCHEME=https docker stack deploy -c known.yml known

  • Assuming you’ve already setup the traefik container, as mentioned in my Jitsi post, you should now have Known up and running. Navigate to the domain and you should see the warmup page.

  • Key in the db credentials that you setup in the known.yml file. The database would need to be set as mariadb, since that’s how we’ve defined it in the known.yml file. Also make sure you have the Uploads folder writable by www-data:

sudo chown -R www-data /var/www/html/Uploads/

Setup your user account and proceed with the regular administration controls!

Weeknote 17 – Covid19, Webmentions and Migrations

A glimpse of the past week and the few articles, podcasts, tools, videos and music that captivated my attention:

This week I got a better handle at deploying and maintaining docker images. With that squared out, I decided to decommission the Digital Ocean servers that I had setup back in 2017 and migrate the applications over to my Hetzner server. I no longer have to rely on ServerPilot. All my applications are now deployed as docker containers fronted by #Traefik as a reverse proxy.

The jitsi server instance I deployed last week has been serving pretty well so far! I tweaked it further to enable local recording. Meena has been using it to run her online Yoga sessions and she can now also use it to record the podcast that she soon plans to start! Session recording and live-streaming is something I still need to configure in my current setup. The logs indicate it’s failing on the Jibri handshake and that’s something I’ll need to figure out once I have a bit more time in hand.

Other actionable tasks on the tech front include figuring out a swift way to deploy PHP based applications on Docker. I still need to port over my Known and PixelFed applications.

Last week, Philip nudged me to look into my webmentions. The theme I previously had wasn’t displaying them as comments. I needed a bit of a ‘creativity boost’ and decided to use a new theme. Really liked the McLuhan theme by Anders Noren and decided to give it a spin. Noticed a minor issue with the comments section and was easily able to fix it. I do however want to make a few tweaks to it, which I hopefully will get around attending to over the next few weeks. I also have my eye on Prateek‘s Zuari theme which is deeply indieweb compliant.

Last evening, Atchuth mentioned he’s now using his RPi4 as a full fledged desktop machine. He’s moved over from DietPi to the Raspbian OS. Makes sense given his current use-case. Sharath on the other hand is still using his RPi 4 predominantly as a Nextcloud server.

This week has been great in terms of re-connecting with some good old friends! We’re planning a re-union sometime next year. 20 year since we finished school! Phew!

The Khat-pat makers group that I am part of is now getting more traction and it’s awesome just hearing out the cool things that other folks are doing. This week’s session was on building drones from scratch!

I also got around connecting with the kids I taught 10 years ago! They’ve all moved on to college and are into various things now. One kid wanted to become a stellar teacher and this  is one of the best messages I’ve received so far!


Last night we played a few good rounds of Pictionary/Dumb-charades with the kids. Shasta had a terrific time just watching the ‘adults’ in their elements. You never get too old for this game!

Interesting podcasts this week

Picturing Data: Monocle


Interesting tools this week

The Termux app has been an amazing value-add to my phone for those quick server check-in’s!

Interesting reads this week

‘We can’t go back to normal’: How will coronavirus change the world?: 2020 will be etched in the memories of most people living today as one that drastically changed how we as humans functioned. As Covid19 spreads across various countries, it’s influencing and compelling dire actions. What was considered to be impossible at various level, is now just a quick decision point – Financial stimulus, vaccine production, remote work and schooling to name a prominent few. As we build resistance to the virus as a society and consequently as the adrenaline that’s currently rampant drains out, we’re going to see the fallout’s of our actions or several inaction’s thereof. Assuming another event of this magnitude does not occur over the next decade, the world is going to need a major overhaul to recover from the pandemic.

Beginner’s guide to PGP: A simple and easy read on PGP with actionable guidance for non-tech folks out there. It’s given that over the next few months most countries are going to erode into the privacy of its citizens. Policies that are brought into effect now for surveillance and tracing will overarchingly become the norm and will be almost impossible to retract. It’s critical that we act now to safeguard what little privacy we can. It’s never been about – ‘There’s nothing that I have to hide.’ Ignorance can and will heavily be mis-appropriated for someone else’s benefit.

Why one Neuroscientist started blasting his core: Neural pathways, stress control systems and of course the adrenal medula. Yet another fascinating read on how amazing the human body is!

How Saudi Arabia’s religious project transformed Indonesia: Religion, politics and power are so damned intertwined. If anything, its one of those defining necessities and vices of humanity.

It’s time to build: So beautifully phrased! It’s high time we dusted those tarp sheets and get to build from ground-up. Over time we’ve become complacent as a society and we need one strong re-boot!