A month in and gearing up for a few package requests

So it’s been about a month of ClearLinux on the desktop and laptop and I’m most of the way towards moving the virtualization server from LXC containers running Proxmox to docker on ClearLinux. I’ve really enjoyed the process and I’m thinking about filing some package requests and wanted to see some thoughts on that before I enter them. And I wanted to write some of the things I’ve run into in case it helps anyone searching later.

Last time I posted on the bumps I had getting this somewhat ancient desktop with questionable EFI up and running into the land of Clear. I’m typing on it and it’s actually been working great. I did hit a few oddities.

Color profile with colord seems to need argyllcms installed but that’s not bundled in Clear as far as I can tell. It’s easy enough to add after the fact and colord would then happily use my Spyder4 (after I ran oeminstall to install the firmware) to profile my new IPS monitor hooked the desktop. While this system is the slow one the screen is better and colord was able to generate and load a profile. However when it came to my XPS 13 (which is Skylake), colord would crash out or generate an unusable color profile. I tried compiling argyll on that system and it didn’t make a difference. Somewhere towards the end spotread would crash and the process halted. I eventually cheated and booted a Linux Mint live iso, installed displaycal and it generated a profile without a challenge.

The other issue I had was that the machine wouldn’t lock / enable screensaver when they went idle after 10-15 minutes. I’d never had that on any distro. It might have been a setting I broke when I was playing with gnome-tweak-tool, but it seemed the lockscreen would not lock. I eventually found gsettings set org.gnome.desktop.lockdown disable-lock-screen false and it works great on both desktop and laptop. Win+L also locks the machine.

On the home server side of things, I started off creating a Clear VM running in KVM and two Debian VM’s for things I didn’t think I’d get running in Clear. It turns out the stateless way of Clear makes managing the whole thing much easier and I ended up putting everything on the Clear VM. It’s presently running in that configuration until I get a new hard drive tomorrow to swap out a SATA for a NVME and do a bare metal Clear install. I did run into some interesting things trying to port all of my tasks for LXC on Ubuntu to docker running on Clear.

The most basic task I had to move over was the print server. This acts as the translator between an older Postscript laser printer and the ability to AirPrint to it. It was the first thing the “home server” did and was in the smallest of the containers. CUPS was no problem to set up on Clear natively; I just installed hardware-printing and copied over the config file and ppd. And then I ran into the issue that there’s no avahi. I didn’t realize avahi wasn’t really being kept up with in development and I understand not wanting it in Clear (I don’t really want to be running it now). But my wife prints from her phone all the time and this not working wasn’t an option. Docker came to the rescue here and I’m running avahi from alpine in a container to make Airprint work. I was planning on going with docker for this build out; however I was originally hoping to stay with all official images. Oh well.

After that I ported over dokuwiki, miniflux, homeassistant, nodered, grafana and will be porting over influx and hopefully rtlamr-collect for meter reading after the final hardware migration. I’ll probably play with prometheus as well. After the initial setup I noticed that clear had docker images and tried to flip out the official images for docker. For the nginx/php-fpm combo powering dockuwiki it went fine. It was as simple as switching the images in the docker-compose file and docker-compose up. Works beautifully and it ‘feels’ faster than the alpine docker images I was using previously. Postgresql however wasn’t portable (Miniflux uses it for it’s database) and while the official image includes the hstore extension, the Clear Linux version does not appear to. But when it does, I’ll flip that image over as well.

Again I’m very happy with how this has all worked out. Docker is a new world which I’ve casually played with before but as someone who’s more a scripter than a programmer the idea of docker-compose file and it just building and running my bidding is a lot of fun. Until I replace the hard drive, it’s docker running on ClearLinux running in a KVM virtual-machine on Proxmox. Proxmox and Clear aren’t the best of terms right now, but that I’m ascribing to Proxmox which has had issues since 6 came out.

So when I put everything together I think I have a few package requests I’ll put into github but wanted to take the temperature of first.

  • ArgyllCMS - as far as I can tell, you can’t profile monitors with colord without out. It’s GPL3 so I’m guessing it’s licensed ok and going to be desired by more than just me.
  • Displaycal is great for color profiling as well and I think it works better, but it’s python2 based so I’m thinking this is out of scope.
  • The postgres-contrib docker and avahi have their own requests already so nothing there.
  • rtlamr-collect is a go based program and I can run it in docker along with rtl_tcp. However I noticed clear doesn’t have any of the radio software bundled as far as I can tell. For the server that’s no big deal but on the desktop I may want gqrx or other radio stuff to play with. This seems to be more niche.
  • rtlamr-collect “feeds” utility meter data to influxdb which I then view in grafana. It’d be nice to have an influxdb clearlinux docker but right now you can’t even install influx as a stand-alone bundle (which is one of the reasons I decided early on to go with docker instead of Clear native apps whenever possible). That said, I know influx is getting closer to v2.0 and that’s a new beast so maybe it’s better to wait until after 2 to worry about that.
  • Some type of UPS monitoring? Right now apcupsd runs on Proxmox and shuts things down in the very rare extended power outage. However I’ve used network-ups-tools but as far as I can tell neither are bundled but I’d imagine some folks would find this useful.
  • Most of my essential data is syncthing’ed between the 3 systems and syncthing already has a packaging request. The rest of the scratch data on the JBOD scratch drives uses mergerfs which is a fuse-based file system which “merges” drives vaguely like unionfs, aurfs, etc. It would be nice to have this as a clear package but I can just compile it and it works fine. I’ve been testing it on the desktop.
  • What are the thoughts on the pf_ring module associated with ntopng? I’m not sure if it is/is not a good thing. I’ve been using ntopng and one of the spare ethernet ports on the server to monitor a span port and see what’s going on on the network. I’d previously used a VM for this but I was hoping to convert it to docker when I install Clear bare metal.

Overall, I think that though this has been a lot of learning and new setup, I’ve generally had a good time doing this which is un-expected. I’m eager to get Clear off the vm and onto the hardware as I think that’ll resolve some strangeness the machine presently is having. And once all of this done, maintenance should be much much easier.

Happy Friday!

3 Likes

Thanks for sharing your “virtual” CL story.

Let us know how it runs on bare metal !

I’m curious how big the differences are in your case, regarding compatibility and speed.

Have a nice weekend, Justin.

2 Likes

The switchover to bare metal has gone really well after an initial challenge with the Connect-X2 10G card in the unit. It seems that kernel-native doesn’t have one flag set to enable it, but I was able to compile my own kernel for the time being which brought that card back to life.

Performance has absolutely improved, but it’s not an apples to apples comparison. As part of the switch I moved the boot drive from a RAID-1 ZFS to ext4 on a NVME drive so that alone gives the machine considerably more in response time.

Docker is going well but I’ve had challenges with a few things migrating over. ntop-ng has been the largest challenge as I can’t get it to compile on Clear and it doesn’t seem to run in a docker since it needs direct access to one of the ethernet devices in order to do the packet monitoring. However as part of trying to figure that out, I noticed an incompatibility between my core switch and my access points - they refuse to negotiate gigabit. I re-wired them to a secondary switch and they negotiate gigabit without an issue. So iperf numbers from wifi connected devices went from 100mbit to 300mbit which I like. However the network topograpy change means I no longer have “one span port to rule them all” for ntop-ng monitoring. So I want ntop-ng back but that might end up running on a raspberry pi instead of Clear as I don’t really want to mess with iommu, etc on the Clear system. It’s on the back burner now as I’d have to re-arrange the network anyway to get a fully encompassing network tap.