GitLab Pages do not (yet) sport automatic Let’s Encrypt support as other providers like GitHub and Netlify; there is however an open issue about it, which you might want to follow.

Update 24 August 2019: Let’s Encrypt support is now available!

Until that is addressed you can use this tutorial to setup automatic GitLab Pages + Let’s Encrypt certificates renewal on your public or private GitLab repository.

The idea is to use GitLab’s excellent CI/CD to automate deployment of renewed certificates via certbot with minimal setup and maintenance needed.

What you will get:

  • use your own custom domain on a…

If you have ever used iftop or any other of the plethora of available network monitoring tools on Linux, you must be at least a bit impressed with the detailed information that you can view/summarize through them.

Most of these tools use libpcap to inspect packets in real time and aggregate/store their details; now comes the question: what if I would like to read this information with a webservice API?

An iftop microservice

It turns out this is a neat use-case for a tiny iftop microservice. …

The Dell Chromebook 13" 7310 (Lulu model) makes for a nice chromebook, and the first thing we want to do is install Ubuntu on it.

Don’t rush to Dell website: it’s out of production. Only student versions are available now

Legacy boot

It is not necessary to remove the write-protect switch to boot Linux on this device. I will give here for reference some instructions on the procedure I followed.

First step is to switch the chromebook to developer mode; you can use Arch Linux’ documentation for this. All steps including “Enabling SeaBIOS” should be followed, but do not reboot the machine yet.

Flashing the right SeaBIOS

To install SeaBIOS on this model I used the script provided by John Lewis…

The procedure to trust a specific certificate (self-signed for example, or with another CA which is not part of a public chain) on a server requires access to /etc/ssl/certificates (root access) or an option in your favorite command-line interface tool to provide a different certificates storage. socat does not provide such option (yet).

You might also be in a situation where the certificate is expired, yet you want to trust only a specific expired certificate and not completely disable certificate verification.

To cover these and similar use cases I developed a patch that goes instead in another direction by using…

A while ago I needed a distributed locking solution to compensate for some lousy 3rd-party limitations, and I was a bit overwhelmed by the lack of choice. (Feel free to let me discover more in the comments, but please avoid mentioning solutions you have not tried yourself)

Locks are made for sharing

The most common/popular solutions seem to be:

All of the above-mentioned solutions offer a bit…

The available init system choices on Ubuntu are two:

  • systemd, which is the default and the one best tested/supported
  • upstart/sysv-init, on the way out but still working quite good from my experience

What if one wants to try something more exotic, like runit for example? Does it work out of the box?

runit has no logo, so I made this. Ultima runes are cool.

Spoiler: no.

I describe here how to patch your Ubuntu system to take the combination of runit+Ubuntu up to a reasonable working state. …

In a recent blog post I was providing a solution for a struggling reality of modern Linux desktops, namely that you need to install systemd in order to shutdown/reboot. All this stirring in the pot of good code brought up nostalgia from a few decades ago.

Look at this UI beauty of merely 19 years ago

I have been longing for a chance to play with GTK in Go language, and now it has materialized with this tiny project: let’s replace the dull XFCE logout dialog with one resembling Windows 98!

Please note the friendliness of the question posed to the user:

What do YOU want the computer to do?

In this post I am describing how to bypass modern user authorization tools for Linux desktops (Ubuntu 16 in particular) and have the XFCE4 session logout window display the Restart and Shutdown as enabled (handy, uh?), while at the same time bind them to a simple command of the user’s choice.

If you are familiar with this screen, then this post is for you.

Logout dialog & systemd

In Ubuntu 16 Xenial it is impossible to have those two buttons enabled if you don’t install policykit-1, which in turn depends on systemd to be installed (although not necessarily run as init system).

After extensive online searches I made many (failed) attempts to get rid of this dependency…

I have recently started using the Atom text editor, it’s a nice hackable editor…

…the only problem is that it uses node.js.

On a 2GhZ Intel CPU (2 cores), it’s basically unusable. I had other expectations for my text editor of choice, namely I would have wanted it lightweight and rich in reporting of errors/configuration problems due the “hacking” mentioned in the editor’s tag line. But that’s a rant for another story.

Hacking an F5/F6 run/build command

In the old days, one could press F5 to run the program being written. Pretty nifty feature.

In this post it is explained how to load-balance gRPC services through classic HTTP1.x health-checks. gRPC does not use HTTP status codes to signal problems, thus a multiplexing approach will be used to serve traffic of two types:

  • gRPC (over HTTP 2.0)
  • HTTP 1.x traffic, including the /status path for the load balancer health-check and possibly human-friendly extras like documentation etc

Case at hand for this post: AWS Elastic Load Balancing; this post comes with Github-published source code and embedded cheap jokes.

gRPC whereabouts

You may (or may not) have already heard of gRPC, which is a solid service communication framework created…


Thinker, software developer, cryptography passionate and an avid reader of science and technology.

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