RSSAmplifier

Blog

Linus's blog

Mostly posts about Nix and NixOS

linus.schreibt.jetztRSS feed ↗10 posts

Latest posts

Handling secrets (somewhat) securely in shells

Posted on January 9, 2026 by Linus Heckemann Sometimes, you need to deal with secrets in an interactive shell. Say, for example, you want to do things with the API of a GitLab instance for which you require authentication: $ curl -fsSLH 'Authorization: Bearer 1s7zo2a-mzsLP6yAo2SM' https://gitlab.example.com/api/v4/projects Oh no! Process information leakage By doing that, you’ve just made the…

Odd intersections: Navidrome, Loki, jq and ListenBrainz

Posted on September 20, 2024 by Linus Heckemann Today, I wanted to try out ListenBrainz in conjunction with my self-hosted Navidrome music server. I didn’t want to collect new data for several days before getting interesting suggestions from there, so I had to import some historical data. However, I haven’t been using any of the services that ListenBrainz can import from, so I needed another way…

Switching between code variants using comments

Posted on April 1, 2024 by Linus Heckemann Warning: this post is for entertainment purposes only and explains a hack that everybody may hate you for actually using, as well as post-hoc justification for the hack. Proceed with caution. Sometimes I have a piece of code where I want to toggle between two variants frequently. int a = do_one_thing (); // int a = do_another_thing(); Commenting one out…

How to debug your initramfs init

Posted on February 18, 2024 by Linus Heckemann So you find yourself in an awkward situation. You want to debug the startup of the PID1 of your initramfs. My first piece of advice is not to get into this situation. But should you find yourself there anyway, here’s how Julien Malka, Ryan Lahfa, and I dealt with it after making some questionable life choices at Ocean Sprint … See also our talk at…

Building Ubuntu images in Nix

Posted on November 6, 2023 by Linus Heckemann Nix is a powerful tool for making software builds repeatable. By specifying a build as a derivation, with all its inputs “locked” either through content hashes or as derivations themselves, we can easily achieve the same software build environment on machines with entirely different base operating systems. NixOS takes this principle and applies it to…

Get all your sources!

Posted on October 27, 2023 by Linus Heckemann If you’re taking your NixOS laptop offline for a bit for travel or similar, and you end up trying to reconfigure, you may run into issues because some build dependency of your system is missing – especially if you’ve garbage-collected since your last rebuild. The new system.includeBuildDependencies option will cause your NixOS system to include all the…

How can I boot NixOS? Let me count the ways...

Posted on December 7, 2022 by Linus Heckemann This is my talk from NixCon 2022 , converted with minimal changes into blog post format. What? NixOS is an operating system based on the Nix package manager and Linux. Linux is an operating system kernel , which means it runs on hardware and mediates access to this hardware by the user space – providing abstractions to allow applications and services…

Back to Ubuntu: Linux dual-boot, but cheaper

Posted on October 21, 2022 by Linus Heckemann I love NixOS. But sometimes, proprietary applications are too fussy about their environment, don’t work in an FHS user env because they want to do their own fun stuff with namespacing, and on top of that want direct access to hardware, set up their own systemd services, or otherwise cause trouble. I was faced with such a scenario, so I thought I should…

Make your QEMU 10 times faster with this one weird trick

Posted on October 13, 2022 by Linus Heckemann The work on QEMU and this post was paid for by Determinate Systems, and the post was co-published on the Determinate Systems blog . Background NixOS uses virtual machines based on QEMU extensively for running its test suite. In order to avoid generating a disk image for every test, the test driver usually boots using a Plan 9 File Protocol (9p) share…

Windows-on-NixOS, part 2: Make it go fast!

Posted on June 17, 2020 by Linus Heckemann This was originally posted on the Mayflower NixOS blog. This is part 2 of a series of blog posts explaining how we took an existing Windows installation on hardware and moved it into a VM running on top of NixOS. Previously , we discussed how we performed the actual storage migration. In this post, we’ll cover the various performance optimisations we…