Welcome to the Dev section of my blog with development related articles.
Today I want to share one of my own projects: distro.tools.
distro.tools is a small but growing collection of scripts to manage your Linux distribution. Currently most of the scripts are made to install the latest versions of specific software on your computer, but it’s planned to include scripts for all different kind of needs.
Some time ago (actually many months ago), I found myself trying to automate the setup of my laptop, in case I need to reinstall everything.
One of the most visited pages on my blog is about how to automatically backup Docker volumes. In that post I use the Docker image blacklabelops/volumerize. Unfortunately that image is deprecated since March 2019 and not longer maintained.
Under the hood the volumerize image is using the GNU program duplicity, which is an awesome software, but also has its downsides. Especially the model of full backups and incremental backups comes from a time where backups where mainly made to tapes (just append new files all the time).
I generally prefer dark user interfaces wherever possible. My phone is set to a dark mode (as far as there is a dark mode in Android Pie), apps like Telegram are set to dark mode and on the desktop I prefer dark modes too. But the most important software I use everyday is a web browser. And most websites don’t support a dark mode yet (because there was no native browser feature for that until recently).
This blog is a static website hosted on Netlify. As static site builder, I use the awesome Hugo, which is written in Go and amazingly fast. This page with currently more than 300 pages build in less than 500ms.
But as the name “static” suggest - just static files that are served by a simple HTTP server - it doesn’t have a dynamic backend with the option to schedule posts, so scheduling isn’t possible the same way it is with systems like WordPress.
A few months ago, I tried to learn Go. I did it just out of curiosity and because I heard many great things about this programming language. I also use much software, which is written in Go, like the generator for my websites (Hugo), Git server (Gitea), feed reader (Miniflux) or Docker. All are written in Go and have in common, that they have an incredible performance and are really easy to setup, because it’s possible to compile everything to a single statically linked executable.
A few weeks ago PostgreSQL 11 was released with a few new features and probably also a lot of improvements and bug fixes since the last release. Although I don’t really have the need to update to the latest version (I just use PostgreSQL as database for my Nextcloud and Miniflux installations), I wanted to migrate it though, to have everything up to date and probably profit from those smaller improvements.
Update I changed my setup because the Docker image used in this post got deprecated and is no longer maintained. Read about my new setup using restic to automatically backup Docker volumes.
👉 New setup
Original post For my server needs, I rent a small VPS at Hetzner Cloud. It has two vCPUs, 4 GB of RAM, 40 GB of storage and I can use 20 TB of outgoing traffic each month (the incoming traffic is free and unlimited) and it only costs me 5,83€ each month, a lot cheaper than DigitalOcean, Linode or even AWS.
When I wrote, that I switched from a Ghost-based blog to a static site generated by Hugo, I made the following statement:
I don’t use a service like GitHub pages or Netlify, because using my own server really guarantees me full control. But it would be a good alternative, if you don’t want to manage your own server. Netlify can also cover the automatic deploy process.
Since then I switched all my blogs from Ghost to Hugo, but also started using Netlify for the hosting of my static sites.
Hugo is a framework to build static websites. Yesterday I migrated this blog from Ghost - a dynamic NodeJS based CMS - to Hugo, not only to reduce the hardware requirements (a static page uses way less resources), but also to simplify my setup.
I already use Hugo for two basic homepages (my personal one and the AndroidPub one), where I don’t have that many requirements regarding “blogging”, because I don’t use them for blogs.
Ubuntu was the first Linux Distro I “really” used. Before that I sometimes used Knoppix to disable some time limits on my PC my parents set me (but that’s another thing). I used Ubuntu to revive some old PCs I got from school, including my first laptop. Ubuntu is the distro most people start their Linux journey with, wether it’s on the desktop or a server.
But I’m always a specialist in trying to customize my system too much and somehow destroying it along the way.