Nix is a functional package manager that isolates and sandboxes dependencies.


nixos-infect: install nixos over an existing os on digitalocean and other vps systems devshell: universally compatible nix-shell


Resources for learning more about the Nix ecosystem The de-facto introduction to NixOS Another great introduction to the Nix ecosystem. This has better overviews of technology like overlays than the official documentation. Using Nix to manage Emacs packages (Emacs). Rycee's configuration is a good start or source of inspiration for this. Why Nix: Cachix, niv and nix-build overview Set up a basic git server with NixOS Set up Nix with preconfigured SSH Nix shorts: Lots of quick and helpful Nix tips to check out.


An evaluation of and tutorial for Disnix and NixOps nixops-tutorial: development with NixOps Hydra (and nixops) manual nixops user guide


Provisioning a Nix server from MacOS


nixos router for the homelab -- useful for learning to set everything up installing and configuring nixos on linode Running NixOS on a consumer NAS


Why NixOS?

src src2 what is nix?

Nix vs. Docker

src src2 src3 (has good NixOps tutorial too) Nix vs Docker for local development


My personal configuration:

hlissner's config

Graham's NixOS config:

bjornfor config:


Soxin and cfg:




Good practices

initial installation

worth noting that what i found the most confusing was:

and log in as an unprivileged user without booting to the installation disk


partition for space for nixos sudo fdisk /dev/sda new partition sector1 no selection for start of partition no selection for last sector w to write to disk

sudo mkfs.ext4 -j -L nixos /dev/sda1

Installation Outline

Make sure to name your disks; some configurations use some disk names by default.

nixos-generate-config --root /mnt

Edit /mnt/etc/nixos/configuration.nix.


UEFI systems:

To dual boot, supposedly boot.loader.grub.useOSProber can be set to true to add other OS to the grub menu. This failed when I tried it (I may have accidentally damaged the partition table, though) but it might work for you.

You may have to manually start the SSH daemon: `sudo systemctl start sshd`

Pro tips

Future configuration ideas

Adjust system volume based on context Thunderbolt system utility; investigate if any issues arise cool config trick for installing chrome extensions set up software defined radio! Run programs in systemd cgroups (check out grahamc's config) this does some crazy things with subvolumes to automatically set up a btrfs system with nixos, including initial mounts

Nix tools

Swiss knife for updating nix packages. SSH Completions for Nix ssh plugin that lets you use zsh in nix-shell shell. cleverca22/not-os: An operating system generator, based on NixOS, that, giv Make a service abstraction layer · Issue #26067 · NixOS/nixpkgs: Abstract over systemd dustinlacewell/dotfiles: Nix configuration for all my workstations and serv workstation ux brainrape/nixform: define terraform infrastructure in nix brainrape/nixos-tutorial: one hour, hands-on Sander van der Burg's blog: Using Disnix as a simple and minimalistic depen Building static Haskell binary with Nix on Linux · PatchGirl Neuron 0.6 released: future-proof note-taking tool written in Haskell, Nix Searching and installing packages in NixOS - NixOS stites/haskell.nix-niv NixOS on ZFS - NixOS Wiki Encrypted /boot on ZFS with NixOS brainrape/nixform Discovering Nix: Provisioning a static webserver with NixOps Continuously Delivering this Blog with Nix, Hugo and CircleCI configuring infra in nix image builders for nix canonical example for nix, works with or without flakes apparently. programming inside of containers making a nix service abstraction layer, abstracting over systemd to produce a more generic solution this seems like a config worth looking through! debugging a dynamic linking bug in a nix project

danielfullmer/robotnix: Build Android (AOSP) using Nix Mobile

TODO Haskell Minimax with Alpha-Beta Pruning

Captured On: [2020-10-18 Sun 14:28]

TODO RSS reader written in Haskell and Ur/Web : haskell

Captured On: [2020-10-18 Sun 15:12]

TODO lehins/hip: Haskell Image Processing Library

Captured On: [2020-10-18 Sun 15:14]

TODO haskell - Displaying dynamically generated images in Yesod - Stack Overflow

Captured On: [2020-10-18 Sun 15:15]

TODO Dimensions and Haskell: Singletons in Action

Captured On: [2020-10-18 Sun 16:36] nixos on wsl build images for MIPS using nixpkgs nix flake deploy tool very cool nix configuration and deployment get a nix shell for your whole configuration!

Flake tips

Do not be afraid to use the --help flag! I've learned a lotfrom it.


{ lib, buildGoModule, fetchFromGithub }:
# buildGoModule can be pulled in from the package
buildGoModule rec {
  pname = "mangadesk";
  version = "0.0.1";
  # fetch the derivation from wherever
  src = pkgs.fetchFromGitHub {
    owner = "darylhjd";
    repo = "mangadesk";
    rev = "v${version}";
    sha256 = "1kgb5k55fxjcf1829fkp7wyd162391am9zhfgl50a606rlsfsh7h";
  # this is an intermediate sha256 that is spit out when the derivation fails, somehow. needs more work!
  # vendorSha256 = "1879j77k96684wi554rkjxydrj8g3hpp0kvxz03sd8dmwr3lh83j";
  subPackages = [ "." ];
  deleteVendor = true;
  runVend = true;

  meta = with lib; {
    homepage = "";
    description = "Terminal client for MangaDex";
    license =;
    maintainers = with maintainers; [ jakeisnt ];
    platforms = platforms.linux ++ platforms.darwin;