Skip to content

vE5li/infrastructure

Repository files navigation


Logo
Repository structure

NixOS hardware-configuration per machine.

ESPHome devices for Home Assistant.

Setup

All my home-manager modules. The modules use nix-colors to provide unified theming for my entire system. base.nix is the common subset of all my NixOS users.

Neovim

Check neovim-configuration/README.md for more information.

πŸ“‚ nixos-modules

NixOS modules. My goal for the modules is to provide an abstraction that makes it easy to configure many machines and painlessly add new ones. base.nix is the common subset of all my NixOS machines.

πŸ“‚ secrets/

Secrets encrypted with agenix.

❄️ flake.nix

Imports from all other directories to define all my machines and devices. It uses Colmena to deploy to all my NixOS machines and provides scripts to build and deploy my smart home devices. Also contains some cool ASCII art.

Notable

  • All my NixOS machines are set up for a single user account
  • I'm using the experimental Nix pipe operator (|>).
  • Declarative WireGuard setup using NetworkManager
  • LAN-PAM for authenticating using my phone (see lan-pam.nix)
  • Private Yggdrasil network to give friends access to my home server

Infrastructure diagram

graph TD
    subgraph Hosted
    gateway[***gateway***
    - WireGuard
    - Yggdrasil]
    korangar-rathena[***korangar-rathena***
    - rAthena]
    end

    subgraph Local
    central["***central***
    - Kea (DHCP)
    - Unbound (DNS)
    - WireGuard
    - Yggdrasil
    - Home Assistant
    - UniFi controller
    - LAN-PAM"]
    computer[***computer***
    - workstation
    - Yggdrasil
    - LAN-PAM]
    vault[***vault***
    - LAN-PAM]
    connected-devices[*connected devices*
    - ESPHome devices
    - Zigbee devices
    - UniFi access points]
    end

    subgraph Portable
    laptop[***laptop***
    - workstation
    - WireGuard
    - Yggdrasil
    - LAN-PAM]
    steam-deck[***steam-deck***
    - workstation
    - SteamOS
    - WireGuard
    - Yggdrasil
    - LAN-PAM]
    end

    subgraph Outside of configuration
    phone[***phone***
    - WireGuard
    - Yggdrasil
    - LAN-PAM app]
    end

    gateway ---|WireGuard + Yggdrasil| central
    gateway ---|WireGuard + Yggdrasil| laptop
    gateway ---|WireGuard + Yggdrasil| steam-deck
    gateway ---|WireGuard + Yggdrasil| phone
    korangar-rathena --- central

    central ---|Yggdrasil| computer
    central --- vault
    central --- connected-devices
Loading

About

My home infrastructure setup

Topics

Resources

Stars

Watchers

Forks