No description
Find a file
Andrea Ciceri 6791cb51a2
Various
- firewall rule for VNC for `pc` host
- `go-translate` emacs package with custom bindings
- `magit-delta` to improve diffs readability with `magit` through
  `delta`
- `fira-code-mode` enabled only in `prog-mode`
- `mpv` is spawned by `qutebrowser` without waiting for video being
  loaded
2022-04-30 14:07:16 +02:00
.github/workflows Reverting Hercules CI and adding upstream nixos-hardware 2022-04-14 11:18:57 +02:00
hosts Various 2022-04-30 14:07:16 +02:00
lib A new start 2021-09-29 21:37:59 +02:00
modules testing manjaro kernel 2022-04-01 23:58:16 +02:00
overlays unstable was so unstable... 2022-03-13 20:57:59 +01:00
pkgs Various 2022-04-30 14:07:16 +02:00
profiles Various 2022-04-30 14:07:16 +02:00
shell testing manjaro kernel 2022-04-01 23:58:16 +02:00
users Various 2022-04-30 14:07:16 +02:00
.editorconfig A new start 2021-09-29 21:37:59 +02:00
.envrc A new start 2021-09-29 21:37:59 +02:00
.gitignore A new start 2021-09-29 21:37:59 +02:00
bors.toml A new start 2021-09-29 21:37:59 +02:00
default.nix A new start 2021-09-29 21:37:59 +02:00
emacs.d Various 2022-04-30 14:07:16 +02:00
flake.lock Various 2022-04-30 14:07:16 +02:00
flake.nix Updated unsable and added dev nixpkgs 2022-04-18 12:51:46 +02:00
README.org Disabled wayland-overlay 2021-12-29 13:56:23 +01:00
shell.nix A new start 2021-09-29 21:37:59 +02:00

NixFleet

A complete, declarative and reproducible configuration of my entire Nix fleet, this includes the following machines:

  • my main home workstation pc
  • homeserver (mainly a nas) hs
  • my arm based PineBook Pro pbp, almost completely open hardware
  • MacBook PRO that I use for work, for this I'll use nix-darwin keeping macOs 11 Monterey.

The different confgurations share many profiles, in fact my original goal was to avoid to rewrite the same Nix derivations for my different machines.

Commands

Here I describe my most used commands. All the commands are executed inside the Flake's development shell. To enter in this shell is sufficent to cd in the folder (if you use direnv) or run nix develop.

Checking

To check that the Nix Flake is well defined:

  nix flake check

Building

nix -Lv build
".#nixosConfigurations.<host>.config.system.build.toplevel"

where <host> is the hostname e.g. pc.

Testing new config

  bud rebuild <host> test

where <host> is the hostname e.g. pc.

Switching

  bud rebuild <host> switch

where <host> is the hostname e.g. pc.

Remote deploy

  deploy -d --hostname <hostname> '.#<host>' --skip-checks --ssh-user root

where

  • <hostname> is the remote machine hostname or ip
  • <host> is one between pc, pbp or hs

Github Actions

Check and build

At every commit pushed on master a Github actions which nix flake check the flake is executed and then every system is build. Currently this workflow will skip aarch64 hosts since the runner is x86_64 and I didn't find a way to make it cross compile.

Release

At every tagged commit whose tag name starts with release- a process that releases all the bootstrap ISOs for the systems is started. Here I've the same problem with aarch64 hosts so the runner will skip them.