The Nix configuration for all of my personal infrastructure.
Improve goaccess
Use more recent logrotate config
README to md


browse  log 



You can also use your local clone with git send-email.

#Personal Infrastructure

Build Status HealthCheck Status

#Things I Run

#Things I Want to Run

  • Navidrome
  • A photo gallery


  • Infrastructure as code
  • Immutable infrastructure (as much as possible)
  • Everything backed up to B2
  • Everything backed up to onsite location


  • Can blow away all machines (but not data) and restore in under an hour

  • Can restore all data within one day after catastrophic failure (everything goes down, including data)

    • From local backup: 1 day
    • From B2: 2 days

#Backup Strategy

I am using Restic to backup everything.

#Things that Need Stored Somewhere

  • Docs and such (low latency, need these in block storage)
  • Photos (not as low latency, can have these in S3/Spaces/B2 storage if necessary)
  • Music
  • Configs (stored in this repo)
  • Projects (stored in their respective Git(Hub|Lab) Repos)
  • Password data

#Things that need to be setup by scripts

Q: Can these be done from within the management of NixOS?

  • Airsonic: change admin user password
  • Airsonic: create personal user
  • Bitwarden: add a user
  • Synapse user
  • Mumble SuperUser
  • Mumble channels

#Deploy Instructions

  1. Get a working NixOS install.

  2. Clone this repo to /etc/nixos.

  3. Import host.nix from configuration.nix.

  4. nixos-rebuild switch --upgrade