FOSSPicks
sake
Linux is now so easy to install it's perhaps become too easy to end up with a small library of Linux servers, all performing different tasks around the house or office. There might be a Raspberry Pi for home automation, a NUC for NAS, or an old laptop for media playback. Each will need to be connected to and manually updated, fixed, or reconfigured as time goes on. There are all kinds of orchestration tools that can be used to make cross-server automation jobs easier, but these are usually intended for server rooms, data silos, or for people with a lot of patience with reading documentation. There's not so much choice for smaller deployments beyond writing your own scripts and running cron jobs. And this is where sake
can help – not so much the alcoholic Japanese beverage (although that can sometimes help too), but this brilliant little command-line tool with the same name.
Functioning as your recipe book of commands commonly run over SSH, sake
allows you to preconfigure these commands with variables and execute them directly from the tool without making any connections yourself. Most importantly, you can use groups and wildcard matching to run those commands on multiple servers at once. But its best feature is being able to do all this while remaining easy to understand because everything is configured from a single YAML configuration file. This file defines the commands themselves, the servers you want them to run, and how you want to parse the output. Servers can be singular, a list, or groups, and this is where sake is at its most powerful. Creating a single command, such as rsync
for a backup, is powerful, but being able to run that command automatically on multiple machines feels liberating, especially without learning anything or studying a manual. This is a big contrast to tools like Puppet or Ansible, which are all-conquering but require some time investment. Sake is server automation for the rest of us.
Project Website
https://github.com/alajmo/sake
Terminal music
MusicPlayerPlus
MusicPlayerPlus is an unusual project. Rather than being a single executable, it's a suite of command-line tools and utilities to help you listen to and enjoy music from the terminal. Each tool is a preexisting project in its own right and is developed independently of MusicPlayerPlus, but the suite also includes incredibly useful initialization routines, configuration options, and settings that attempt to remain consistent across all the tools being used. This is why the first thing you do after installation is run the bespoke initialization script. This scans your local directories and sets up the configuration files. After that, typing mpplus
launches the mpcplus
MPD client alongside the mpd
music player daemon and the cava
spectrum analyzer, all within a freshly configured tmux server session. Other bundled tools include beets
to manage your media library, mopidy
to serve your music remotely, fzf
for search, and yams
to track your listening on Last.fm.
Alongside mpcplus
, the mppcover
command shows cover art, the mppsplash
command creates ASCII art with fractal exploration and plasma flames, and the blissify
command creates playlists, while fzmp
provides a search interface for your music collection. It can seem like a disparate collection of tools, but it's convenient being able to install them from a single package and use a single initialization command to pre-configure everything to work together. They work well when you edit a tmux session to split the view and run various tools together. Thanks to everything being built around MPD, it's also easy to integrate with Bandcamp, SoundCloud, and other online audio sources, all from the command line. There are even Raspberry Pi packages for installation without any other dependencies, and this is where MusicPlayerPlus works best – hidden in a cupboard somewhere running on a Raspberry Pi connected to your music system with a high-quality DAC.
Project Website
https://github.com/doctorfree/MusicPlayerPlus
Buy this article as PDF
(incl. VAT)