This is a guest post from Viktor Petersson, CEO of Screenly.io. Screenly is the most popular digital signage product for the Raspberry Pi. Find Viktor on Twitter @vpetersson.

In the previous blog post, we talked about how we compile Qt for Screenly OSE using Docker’s nifty multi-stage and multi-platform features. In this article, we build on this topic further and zoom in on caching.

Docker does a great job with caching using layers. Each command (e.g., RUN, ADD, etc.) generates a layer, which Docker then reuses in future builds unless something changes. As always, there are exceptions to this process…


For those not familiar with Qt, it is a cross-platform development framework that is used in a wide range of products, including cars ( Tesla), digital signs ( Screenly), and airplanes ( Lufthansa). Needless to say, Qt is very powerful. One thing you cannot say about the Qt framework, however, is that it is easy to compile — at least for embedded devices. The countless blog posts, forum threads, and Stack Overflow posts on the topic reveal that compiling Qt is a common headache.

As long-term Qt users, we have had our fair share of battles with it at Screenly…


This is a guest post from Viktor Petersson (@vpetersson) who discusses how Screenly uses Prometheus to monitor the thousands of Raspberry Pis powering their digital signage network.

At Screenly, we are long-time Kubernetes fans, and we use Prometheus to monitor our infrastructure. Many, if not most, Kubernetes teams also use Prometheus to monitor and troubleshoot our infrastructure. Over the years, we have found Prometheus to be extremely versatile, and we have expanded our use of Prometheus to include business intelligence metrics. The one problem we have experienced is that it is painful to use Prometheus for the long-term storage of…


A few years ago, I created a people tracker called Sonar and open sourced it. The goal of the project was to monitor foot traffic in retail environments. After deploying it and more or less forgetting about it for almost two years, I was reminded about it last month and decided to resurrect it. The good news is that the device that I deployed in a retail environment as a test was still ticking along just fine.

A lot of things have changed since I last touched the project, which allowed me to remove a number of the hackish workarounds…


My philosophy for home automation from the start has been that the best UI is no UI, meaning that I just want things to work automagically. I don’t want to fiddle buttons or software on a day-to-day basis. Sensors and automation should do most of the work.

In addition to automation, I wanted f.lux/Flux/Night Shift for my lights, meaning that the lights should follow my circadian rhythm and change color over the course of the day to mimic the sun.

As often happens with tech projects, this turned out to be a lot more complicated.

Screenshot of one of the views in Home Assistant

I must now admit that…


sudo is a tool used by most Linux/UNIX users on a daily basis to escalate permission. If you're like me, you likely though that the features in sudo were "done" and final, just like you don't monitor the the changelog for new features in tar (or at least I'm not).

This is why I was so surprised when I saw Peter Czanik’s talk What you most likely did not know about sudo… at FOSDEM ’20. In the talk, Peter showed the new features in sudo 1.8, including the new sudoreplay feature. …


Security is a complicated topic. There are countless of attack vectors and threat models to take into consideration when designing a security strategy.

Over the last year, we’ve spoken to companies of different sizes about their security strategies and practices. Based on these discussions, we’ve come up with something we call the DevSecOps Iceberg. The idea behind this is that too many organizations tend to only focus on the application layer or the network layer and turn a blind eye to everything else. This is a dangerous approach. …


There’s no doubt that GitHub has become one of the most popular platforms for developer collaboration and communication. Increasingly, GitHub is also used for project management across developer and Dev(Sec)Ops teams. Because of this, it is increasingly where the security fixes are being tracked too.

For instance, GitHub recently announced their Security Alerts, which helps you audit vulnerabilities in dependencies. There’s also Snyk’s GitHub integration, that does similar audits. Hence, GitHub is becoming the hub for tracking security issues.

While GitHub’s Security Alerts (and Snyk) are great ways to secure your application dependencies, they only track part of the security…


In this interview on remote work, I’m speaking to John Agosta from Canonical (the company behind Ubuntu). As a long-time Canonical team member, John and my paths have crossed multiple times over the years, starting when I was at a cloud company, and he was at the server division at Canonical, to more recently when he moved to the Ubuntu Core (formerly known as Snappy) side, as I was building out Screenly where John now is the Program Manager.

While Canonical isn’t a fully remote company (they have multiple offices around the globe), a large part of their workforce is…


Security has been an interest for me for a long time. This is why Pwnagotchi peaked my interest. Using cheap hardware, you can create your own lightweight WiFi (and Bluetooth) sniffing device. Thanks to a known vulnerability in the WPA/WPA2 protocol, the Pwnagotchi can capture the handshake, which we can then use to crack the passphrase (more on that later).

My personal interest in this was largely to test my own OpSec to ensure my own WiFi wasn’t vulnerable to simple attacks like this. Fortunately, it wasn’t.

So what do you need to build your own Pwnagotchi? While it support…

Viktor Petersson

CEO and Co-founder of @WireLoad / @ScreenlyApp. #DigitalNomad #Entrepreneur #Speaker #Geek #Cloud #DevOps

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