here you goThings I’ve made, read and saved — shared here.

Archive

9,621 entries: 57 from X, 8,925 from Pinboard, saved 1998 to 2026.

Browse by tag, site, author, folder or language

Tags

Sites

Authors

Folders

Languages

11 entries#nixos ×

This month

the world hasn’t figured out yet that you can literally just fix everything with a Nix overlay

ghuntley.com

Nix has been single-handedly the best thing I have added to my dev toolbox when I found out about it 6 years ago. More so after AI.
Yes, the learning curve is (Was?) hard. But these are complaints of the past. With agents, you have everything you need now to work with it. -- [X](https://x.com/ahmedelgabri/status/2119373110411452618

I have been using NixOS on my RTX5090, without writing a single line of nix config by hand. You can see see it here -- https://github.com/btbytes/nixos-dotfiles

2025

2024

Development Environment: Winter 2024 Edition by AltF4

altf4.blog

I provide a breakdown of my development environment based on Nix and Home Manager. I discuss its efficient software management, cross-platform support, and version control capabilities. I walk you through the use of Nix and Home Manager for software configuration, and the setup and management of elements like environment variables, user applications, and dotfiles.

2023

openpolicyagent

Home Page: Open Policy Agent Policy-based control for cloud native environments. Flexible, fine-grained control for administrators across the stack

use OPA to decouple policy from the service's code so you can release, analyze, and review policies (which security and compliance teams love) without sacrificing availability or performance. Stop using a different policy language, policy model, and policy API for every product and service you use. Use OPA for a unified toolset and framework for policy across the cloud native stack.

Declarative policy (sample code):

Policy:

package application.authz

import future.keywords

# Only owner can update the pet's information
# Ownership information is provided as part of OPA's input
default allow := false

allow if {
	input.method == "PUT"
	some petid
	input.path = ["pets", petid]
	input.user == input.owner
}

Input:

{
    "method": "PUT",
    "owner": "bob@hooli.com",
    "path": [
        "pets",
        "pet113-987"
    ],
    "user": "alice@hooli.com"
}

Output:

{
    "allow": false
}

Rego is the playground to write and evalute policies against input.

See also:

notes#nixos#openpolicyagent

2022

2021

2020

NixOS

Why NixOS

Via this HN Comment Maintaining your system configuration is an exercise in software development like any other - if you lack rigor or discipline, your codebase will become painful to work with. Nothing is ever one shell incantation away - it has to be carefully architected into the existing system.

That being said, once you get the hang of things, you reap amazing benefits:

  • You can clone your system to any machine, and immediately have an identical environment
  • You can share system configurations as code (declare the means for hosting a website in its repository, for example)
  • You can use a fully-fledged programming language to configure any part of your system
  • You can make use of an extensive ecosystem of easily composable, prebuilt NixOS modules
  • You can seamlessly integrate with Nix, allowing for ephemeral development environments and shells with packages, eliminating much of the need for imperative package management
  • Everything in a Nix-based system must be derived strictly from (lockfiled) inputs, making the reproducibility guarantees incredibly strong (barring any network errors or resources being taken down)
  • The declarative nature of anything Nix-based means that every change is documented - your system never shifts from the source of truth, compared to other distros where discipline is required to maintain reproducibility
  • Nix is so robust that you could even nuke your filesystems on every log out, if you'd like

Quick Reference


nix-env -iA nixpkgs.octave # to install octave
nix-env -e octave # to uninstlal octave
nix-env --delete generations # to delete old generations
# See [GC](https://nixos.org/manual/nix/stable/package-management/garbage-collection.html)
nix-storage --gc # for collecting garbage and actually removing files from HDD

See MyNixOS site -- home.sessionVariables - MyNixOS

Nix Language

Nix Flakes

Tutorials

NixOps

Nix land

via domenkozar:

Nix + Rust

Articles

Blogs

  • Computing - Shen's Essays has many nixos articles including how to setup home manager, sway, wayland, FDE, latex on linux friendly laptop like Purism Librem.

Running log

2022-11-27 MyNixOS (selfnote: account using github.) - Build and share reproducible software environments with Nix and NixOS.

2022-10-24 Blog posts on Nix at ianthehenry.com; and Using Nix on macOS

2018-06-05

2019-02-24 Static Nix: a command-line swiss army knife.. looks promising to use even on systems where creating -nix is not an option. Can run nix as an unprivileged user.

2019-10-14 bauer: an Emacs+Nix IDE

2019-11-11 Package a Django website -- acelpb/acelpb: Configuration for acelpb.com 2019-11-11 Nix for Python developers | Asko Soukka

2019-11-26 Nix recipes for Haskellers — Sridhar Ratnakumar

2020-02-29 Edit /etc/configuration.nix to add default packages. Run nixos-rebuild switch to update the system to match the configuration.

cron is not installed by default (because nix uses systemd timersand users not allowed to have crontab by default too! quelle surprise. To do that you have to edit the /etc/configuration.nix file do any thing.

2023-03-06 Nix-powered development with OCaml - Dimitrije's Website

2023-09-25 Fast, Declarative, Reproducible, and Composable Developer Environments - devenv

2024-03-28 Flakes aren't real and cannot hurt you: a guide to using Nix flakes the non-flake way - jade's www site

notes#devops#nixos

2015

2014