Skip to content

pinpox/nixos

Repository files navigation

nixos

Configuration checks: Build Status

All Module options are documented at: https://pinpox.github.io/nixos/

This repository includes all configurations for my NixOS machines. Feel free to use parts of it as you please, but keep it mind it is intended mostly for personal use. I've written posts about certain aspects of this setup on my personal blog.

Overview

The structure of this repository is meant to allow easy manual deployment while being clan compatible. Individual hosts are defined in /machines/<hostname> and import re-usable parts of the configuration as needed. Deployment and management is done with clan, and secrets are stored in passage, which uses age for encryption.

The current hosts are:

Configuration Type Location Description
kartoffel Desktop local Main desktop workstation
kiwi Laptop local Framework 13 (AMD AI 300 series)
limette Laptop local Notebook
fichte Laptop local ThinkPad T490
tanne Laptop local ThinkPad T480s
uconsole Handheld local Clockwork uConsole (RPi CM4)
birne Server local Local NAS
porree Server netcup.de Server for pablo.tools
kfbox Server netcup.de Server for 0cx.de
clementine Server netcup.de Server for megaclan3000.de
traube Server local aarch64 server

Deployment

Deployment is done via clan CLI provided via the flake's default nix shell. I use direnv to automatically start it when entering the repository's directory. Run direnv allow on the first time, after that, deployment can be done via:

clan machines update <hostname>

Repository Organization

The configuration is organized as follows:

  • machines/<hostname>: Host-specific configurations
  • modules: System-level NixOS modules
  • home-manager/modules: User-level home-manager modules for specific applications
  • home-manager/profiles: Profiles that combine multiple home-manager modules
  • home-manager/packages: Custom packages for applications not present in nixpkgs
  • clan-service-modules: Clan services

Contributing?

While contributions don't make much sense for a personal configuration repository, I'm always happy to get hints, tips and constructive criticism. If you find something that could be done in a better way, please let me know!

Buy Me A Coffee