A little tech blog

Build a live arch iso with sshd

I’m the owner of a little pc that I use as a server. It’s a headless machine, that means I don’t have a screen linked to it and that’s a pain when something goes wrong. Yesterday I decided to migrate the hard drive to a new 500 GB one. I wanted to be able to do it without plugging the screen that is so far away and any keyboard. To be able to do it I needed an iso that’s using dhcp and spawning a sshd daemon.

How to backup a btrfs filesystem using Amazon S3 and s3backer

A while ago, a friend of mine introduced me to s3backer, a tool that makes you able to use a s3 bucket as a support for any filesystem you want. I was looking for a way to backup my btrfs filesystem using btrfs send/receive commands, this looked like a good opportunity to do so. In addition I’ll use cryptsetup to encrypt the data on this filesystem. In order to achieve this you need a few things ready :

Install Boinc on CentOS 7

Boinc is a piece of software that allows to get involved into distributed computing in projects such as WorldCommunityGrid, Rosetta@Home or even LHC@Home. It’s both interesting and put your lazy computers to work. There’s of course a package in the EPEL repository allowing us to install the software easily. Let’s install it ! yum install epel-release yum install boinc-client Now that this is done, there’s the tricky part. Right after you’ve created your account on the website of the project that you’d like to join, you have to get the account key.

Extract and encode a cd to mp3 via the Linux cli

Ripping a cd and encoding it to mp3 is so easy it takes only 3 lines to be achieved. mkdir cd01 && cd cd01 # create a directory and put yourself in it cdparanoia -B # extract all the cd tracks in current directory as .wav files for t in *.wav; do lame -b 320 $t; done # encode all the files to mp3 320kbps It makes it rather easy to script and encode all your cd collection easily if needed.

Hugo - how I run it with systemd

I was looking for a solution to run a little blog, I did try wordpress but it’s not what I was looking for, then I discovered Hugo. It’s a Go program that will parse Markdown files (your articles in fact) and generate a static website for you. I don’t want to describe the full configuration on this article, but I want to share the systemd unit file I wrote. [Unit] Description=Hugo webserver After=network.

OpenBSD - Munin graphs generated without text

I did install munin and at first my graphs looked like this on this image. So as you can see this looks like something is wrong here. The solution was to modify my cron job to look like the following. su -s /bin/ksh _munin -c 'LC_CTYPE=en_US.UTF-8 /usr/local/bin/munin-cron' It seems that munin-cron does require a LC_CTYPE value, otherwise it generates without any text.

OpenBSD - Munin plugins missing libraries

Today I’ve decided to document how I installed my munin monitoring system on OpenBSD and how to make two plugins work in particular. I run an instance of Nginx and also a PostgreSQL server so I wanted my munin to be able to get some info about them. The fact is that you need some additionnal dependencies in order to make them return values properly. The two required libraries are p5-libwww (for the Nginx plugin) and p5-DBD-Pg (for the PostgreSQL one).

Linux - How to slow down the data flowing through a pipe

If for some reason you want to slow down the speed of a pipe between two process on Linux, you can use pv (pipe viewer). For example you can use it this way to transfer a file to another place at a slow speed. cat /home/user/file | pv -L 3k -q > /tmp/mynewfile You can adjust the speed with the number given to the -L parameter to pv. For example 1, 10, 100, 1k, 10k, 1m etc.

Nginx - SSL Proxy configuration

For a project at work I had to setup a SSL Proxy with nginx, because one of our old weblogic server can’t manage SHA2 certificates and we can’t update now. We decided to make it talk to a SSL Proxy and here is the code of the nginx.conf acting as such. It makes use of Nginx module http_proxy. As a little reminder we had a situation like this : serverA (client certificate) -> webservice (HTTPS / server certificate)