Self-Deploy Comment and Analytic App

— 3 minute read

Photo by Étienne Beauregard-Riverin on Unsplash
Photo by Étienne Beauregard-Riverin on Unsplash

After Migrating My site to 11ty, I de­cided to self-de­ploy the com­ment & an­a­lytic app for this web­site. Why? Because it’s fun to learn some­thing new and I’d like to keep those data on my box. So, these are my re­view for com­ments & an­a­lyt­ics apps that you can self-de­ploy.

Comment perma­link

So, I be­gin by search­ing for the com­ment app. I want it to be light­weight so it won’t take many re­sources on my cheap server. I al­ready know about Commento, so I search for Commento al­ter­na­tive open-source, these the top re­sult list:

Commento is widely pop­u­lar, ac­tively main­tained, has a nice UI, has a man­aged cloud ver­sion & pri­vacy com­pli­ant. The back­end is writ­ten in Go, which is nice. But the man­aged ver­sion price is quite ex­pen­sive for me & the DB choice is only Postgres.

Utterances is pop­u­lar too, it uses Github is­sues as its back­end, it’s open-source, & pri­vacy com­pli­ant. But you need to have a Github ac­count to add a com­ment. So, It is not good for the gen­eral au­di­ence.

Isso is also pop­u­lar, ac­tively main­tained, & pri­vacy com­pli­ant. The back­end is writ­ten in Python, and uses SQLite for the DB. The UI is ok, I just need to style the font to match my web­site style.

For the com­ment app, I choose Isso for its sim­plic­ity & SQLite choice as DB. The de­ploy­ment is quite easy, it comes with a pre­built bi­nary. So, I just de­ployed it as sys­temd ser­vice and put it be­hind a re­verse proxy.

Analytic perma­link

For an­a­lyt­ics I al­ready have some choices, they are:

Umami is pop­u­lar & widely used, ac­tively main­tain, fea­ture-rich & pri­vacy com­pli­ant. It is writ­ten in NextJS and Prism. The UI is nice & the DB choices are Postgres or MySQL.

Plausible is quite the same as Umami, but it of­fered a SaaS ver­sion. It is writ­ten in Elixir, has mod­ern UI, and It should be very per­for­mant. The DB choices are Clickhouse or Postgres.

Fathom has two ver­sions the lite and pro. The lite ver­sion is the old Fathom, rarely main­tained, writ­ten in Go and Preact, and the DB choices are SQLite or Postgres. The pro ver­sion is a SaaS & has more fea­tures com­pared to the lite ver­sion.

I also found GoAccess a server-side tracker. Written in C (super fast!), fea­ture-rich, & pri­vacy com­pli­ant.

For the an­a­lytic, I choose Fathom Lite. Even if it’s not ac­tively main­tained any­more, I’ll still be able to main­tain it to some ex­tent. Yeah, I forked it, up­grade the Go ver­sion, and fix some ac­ces­si­bil­ity is­sues as sug­gested by the Chrome Lighthouse.

Deployment is easy be­cause it is sin­gle bi­nary & uses SQLite. I just make it as sys­temd ser­vice and put it be­hind a re­verse proxy.