Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

94 total results found

Introduction to Morph

Learning NixOS Deploying with morph

Morph is a simple, stateless deployment tool for NixOS. Essentially, it's a way to manage one or more servers remotely from a central NixOS configuration, deploying system updates and configuration changes over SSH. You write configuration for Morph with the ...

What is a derivation?

Learning NixOS Concepts

You can think of a derivation as a set of build instructions, somewhat similar to how IKEA furniture comes with an assembly manual. The furniture (or package, or configuration file, or...) still needs to be built, but the build instructions (the derivation) ha...

Storing secrets and the Nix store

Learning NixOS Security considerations

Nix stores every derivation that it builds in the Nix store. However, to make sure that everything in the Nix store is perfectly deterministic and usable by anyone, it needs to set the attributes of all files to a fixed value - this means that every file creat...

What is the Nix store?

Learning NixOS Concepts

The Nix store is a folder, located at /nix/store by default, that contains every build result from a derivation that Nix has ever generated. These build results stay in the Nix store until they are explicitly garbage-collected. Each entry in the Nix store is p...

Introduction

Learning NixOS Running unpackaged software

NixOS is very strict in its approach to system purity; there is essentially no global environment, and this also means that a lot of assumptions about what a 'standard Linux system' looks like, do not hold up when you are using NixOS. This is a common cause of...

Running an AppImage

Learning NixOS Running unpackaged software

If you try to run an AppImage with the usual ./application-name invocation, you'll find that they won't run. This is because the AppImage runtime expects some files to exist in a global location that NixOS doesn't put there. In practice, this is usually not a...

Installing software globally

Learning NixOS Installing software

Probably the most common case, is wanting to install software system-wide. This is not technically system-wide in NixOS, due to its internal isolation properties, but the difference doesn't really matter for your day-to-day use. Installing software globally i...

The high-level workflow of Nix

Learning NixOS Concepts

You can use Nix to build many different things for many different purposes. However, the basic workflow is always the same: You specify some kind of Nix expression. This can be a simple expression, a whole system configuration, a Morph deployment... anythin...

Transitive dependencies and the commons

Miscellaneous notes Dependency management

In this article, I want to explain why I personally only work with programming languages anymore that allow conflicting transitive dependencies, and why this matters for the purpose of building a commons for software. Types of dependency structures There are...

How to de-escalate situations

Miscellaneous notes Community governance

I originally drafted this guide for the (public, semi-open) NixOS governance talks in 2024. It was written for participants in those governance discussions, as a de-escalation guide to steer conversation back to a constructive path. The recommendations in it, ...

What to expect from the Promistreams beta phase

Projects Promistreams

Promistreams are currently in their beta testing phase. What this means in practice: You can start using Promistreams in your projects today. But be prepared to sometimes debug issues. Linear pipelines will generally work perfectly. More complex pipelines ...

Example project: Scraping XML sitemaps

Projects Promistreams

The code in this guide scrapes an artificial sitemap for a non-existent site, that was created specifically for this article. When scraping anything on a site that you do not run yourself, you should always check the robots.txt to determine whether the owner i...

Treating hair lice in difficult hair

Miscellaneous notes Health

Theory Hair lice are a relatively innocent parasite that lives in human head hair. Although they are typically not disease carriers, the itching can be extremely frustrating. Hair lice attach themselves by holding onto the hair, typically close to the skin o...

State resolution attacks

Miscellaneous notes Matrix

These are some notes on various different kinds of attacks that might be attempted on state resolution algorithms, such as the one in Matrix. Different kinds of state resolution algorithms are vulnerable to different kinds of attacks; a reliable state algorith...