Skip to content

Repository files navigation

dafos

"It ain't pretty, but it's mine."

Nix Flakes Ready Built With Snowfall License: Apache 2.0

Warning

🏗 We be Wiping — this repo is in active flux. Modules move, hosts come and go, expect rough edges.

About

dafos ("Here lies my shipwrecks. I mean fleet of hosts.") is my personal fleet of NixOS and Home Manager configurations. Everything is declarative, managed via Nix Flakes, and laid out using Snowfall Lib so hosts, users, modules, packages, and overlays each live where you'd expect.

Features

  • Declarative & modular. Snowfall Lib enforces a clean split between hosts, users, modules, packages, and overlays.
  • Desktops, plural. Niri (via niri-flake), KDE Plasma (via plasma-manager), and the Dank Material Shell.
  • Secrets. Provisioned with sops-nix, age-encrypted at rest.
  • One formatter to rule them all. treefmt-nix wires up nixfmt, biome, ruff, rustfmt, shfmt, stylua, statix, deadnix, and friends.
  • Gaming. nix-gaming platform optimizations.
  • Multi-arch deploys. x86_64-linux, aarch64-linux, and a VirtualBox target — pushed remotely with deploy-rs.
  • Custom bits. Overlays (Firefox addons, Zen Browser, KDE/GNOME tweaks), in-repo packages (Home Assistant cards, KDE theming, wallpapers, scripts), and project templates.

Hosts

Hostname System Role
dafbox x86_64-linux Desktop / workstation
dafoltop x86_64-linux Laptop
daftop x86_64-linux Laptop
virt x86_64-virtualbox Throwaway VM

Layout

Standard Snowfall Lib tree:

  • systems/ — NixOS host configurations, partitioned by system architecture.
  • homes/ — Home Manager configs, named user@host.
  • modules/ — Reusable modules, split into nixos/ and home/.
  • packages/ — In-tree Nix packages.
  • overlays/ — nixpkgs overlays.
  • lib/ — Custom helper functions exposed under the dafos namespace.
  • secrets/ — SOPS-encrypted YAML.
  • shells/nix develop environments (default + Rust).
  • templates/nix flake init -t project templates.
  • checks/ — Flake checks, incl. pre-commit hooks.

Getting Started

Prerequisites

  • Nix with flakes enabled (experimental-features = nix-command flakes).
  • Git.

Clone & build locally

git clone https://github.com/CaptainSpof/dafos.git ~/.config/dafos
cd ~/.config/dafos

# Build a host (swap dafbox for the target hostname)
sudo nixos-rebuild switch --flake .#dafbox

Remote deployment

Hosts wired up for deploy-rs can be pushed from anywhere:

nix run .#deploy -- .#daftop

Dev shell

The repo ships a nix develop shell with the tools needed to work on it (formatters, sops, deploy-rs, etc.):

nix develop

Secrets

Secrets live under secrets/ as SOPS-encrypted YAML, with rules in .sops.yaml. With your age / GPG key set up:

sops secrets/daf/default.yaml

Formatting

Everything is formatted through treefmt-nix (see treefmt.nix for the full list of enabled formatters):

nix fmt

Pre-commit hooks are wired up via git-hooks.nix — they run automatically inside the dev shell.

License

Apache License 2.0.

About

Here lies my shipwrecks. I mean fleet of hosts.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages