Skip to content

Latest commit

 

History

History
148 lines (105 loc) · 12 KB

File metadata and controls

148 lines (105 loc) · 12 KB

infra ❄️

License Nix Flake Parts Dendritic

Eval nixpkgs age

One dotfile to rule them all.

dotfiles on steroids, this repository contains my declarative NixOS and Home Manager-based Infrastructure as Code (IaC) for personal devices and home servers.

Built on top of flake-parts, this setup manages system configurations, dotfiles, user secrets (via agenix), custom packages, and portable applications runnable anywhere via nix run.

Hosts

Hostname Description Manufacturer Model Role Desktop/WM Notes
link My desktop Custom Gaming PC Desktop Hyprland -
zelda My personal laptop Razer Razer Blade Laptop Hyprland -
alexandria Synology NAS (home-manager only, non-NixOS) Synology DS920+ NAS None DSM host managed via standalone home-manager
iot Old Dell laptop running IoT services Dell Laptop Server None IoT services
marin Mac Mini as Airport Express Apple Mac Mini Server None Audio + home services
iphone Personal phone Apple iPhone Mobile - -
ipad Personal tablet Apple iPad Tablet - -

Repository Structure

  • flake.nix: Auto-generated entrypoint (do not edit).
  • outputs.nix: The true flake entry point, imports the module tree.
  • modules/: Flake-parts modules defining hosts, profiles, and services. Auto-discovered.
  • pkgs/: Custom packages and overrides.
  • docs/: Agent skills and internal documentation.

Commands

Task execution is managed via just.

Command Description
just rebuild Local system rebuild (uses nh os switch).
just deploy Rebuild and push closures to the Attic binary cache.
just colmena-apply Deploy configurations to remote hosts via Colmena.
just colmena-apply-tag <tag> Deploy configurations to a specific Colmena tag.
just minishb Build selected hosts and push resulting closures.
just fastb Fast build with nix-fast-build and Attic cache upload.
just hm-build See Justfile recipe.
just hm-deploy See Justfile recipe.
just iso Build an installer ISO.
just debug Run rebuild with --show-trace for debugging.
just update Update flake lockfile and Firefox addons.
just update-flake Update flake lockfile inputs.
just update-addons Regenerate Firefox addons metadata.
just history Show system profile history.
just gc Garbage collect and wipe old generations.

Note: Regenerate auto-generated files (like flake.nix or this README.md) using nix run .#generate-files.

Wrappers

Portable applications exposed by this flake and runnable on any Nix-enabled system.

  • footnix run github:Multipixelone/infra#foot
  • helixnix run github:Multipixelone/infra#helix
  • noctalia-shellnix run github:Multipixelone/infra#noctalia-shell

Packages

Packages exposed by this flake (30)
  • asl-anki — Generate Anki flashcards for ASL vocabulary from signasl.org · nix run github:Multipixelone/infra#asl-anki
  • beets-lossyflac · nix run github:Multipixelone/infra#beets-lossyflac
  • beets-plugins — Music tagger and library organizer · nix run github:Multipixelone/infra#beets-plugins
  • claude-status-line · nix run github:Multipixelone/infra#claude-status-line
  • convert-lossyflac · nix run github:Multipixelone/infra#convert-lossyflac
  • convert-mpc · nix run github:Multipixelone/infra#convert-mpc
  • foot — Fast, lightweight and minimalistic Wayland terminal emulator · nix run github:Multipixelone/infra#foot
  • generate-files — Generate all automatically generated files for this repository · nix run github:Multipixelone/infra#generate-files
  • genswitch · nix run github:Multipixelone/infra#genswitch
  • gentest · nix run github:Multipixelone/infra#gentest
  • helix · nix run github:Multipixelone/infra#helix
  • hyprctl-instance · nix run github:Multipixelone/infra#hyprctl-instance
  • izotope — iZotope RX audio repair toolkit · nix run github:Multipixelone/infra#izotope
  • lossywav — lossy encoder for WAV files · nix run github:Multipixelone/infra#lossywav
  • moondeck — Helper to work with moonlight on a steamdeck · nix run github:Multipixelone/infra#moondeck
  • musepack — Encoder for the musepack format · nix run github:Multipixelone/infra#musepack
  • noctalia-shell — A sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell. · nix run github:Multipixelone/infra#noctalia-shell
  • playlist-transcode · nix run github:Multipixelone/infra#playlist-transcode
  • plexamp-headless — Headless Plexamp player · nix run github:Multipixelone/infra#plexamp-headless
  • pragmata — Condensed monospace font with programming ligatures · nix run github:Multipixelone/infra#pragmata
  • ralph-wiggum-plugin — Ralph Wiggum loop plugin for Claude Code — self-referential agentic loops · nix run github:Multipixelone/infra#ralph-wiggum-plugin
  • rb-albumart · nix run github:Multipixelone/infra#rb-albumart
  • rtk-rewrite · nix run github:Multipixelone/infra#rtk-rewrite
  • screenshot-area · nix run github:Multipixelone/infra#screenshot-area
  • screenshot-area-ocr · nix run github:Multipixelone/infra#screenshot-area-ocr
  • system · nix run github:Multipixelone/infra#system
  • upload-script · nix run github:Multipixelone/infra#upload-script
  • write-flake — Generate a flake.nix file · nix run github:Multipixelone/infra#write-flake
  • write-inputs — Generate an inputs.nix expression (for debugging) · nix run github:Multipixelone/infra#write-inputs
  • write-lock — Detect existing lock file and delegate to the appropriate writer. · nix run github:Multipixelone/infra#write-lock

Dendritic Pattern

This repository follows the dendritic pattern with flake-parts modules auto-discovered from modules/.

Running checks on GitHub Actions

This repository runs checks using GitHub Actions and pushes the results to an Attic cache.

For better visibility, a job is spawned for each flake check. This is done dynamically.

See modules/ci.nix.

Generated files

The following files in this repository are generated and checked using the files flake-parts module:

  • .envrc
  • .github/workflows/build.yaml
  • .github/workflows/eval.yaml
  • .github/workflows/nixpkgs-age-badge.yaml
  • .gitignore
  • README.md