Skip to content

Welcome to Andrew's Home Flake

Andrew's Logo

Latest Release CI Status License

GitHub Repo FlakeHub Repo

🏠 Home Repository for my NixOS Machines❄️ and Kubernetes Clusters☸️

Features

☸️ Kubernetes

K3sCilium & Cluster MeshSealed SecretsFluxCDKubenixCloudflare Tunnels

❄️ NixOS

Determinate SystemsClan.lolflake-partsdendritichome-managerTailscaleModded Minecraft ServerKDEWayland

Project layout

flake.nix       # Flake that controls the project
flake.lock      # Flake's lock file
inventory.nix   # Clan.lol Inventory of all NixOS machines and Services
.envrc          # direnv configuration
.env.schema     # Varlock schema

machines/       # NixOS Machines
clanServices/   # Clan.lol Services    
lib/            # Custom functions accessible via `lib.custom`
overlays/       # Overlays for Nixpkgs. Adds `pkgs.unstable`
templates/      # Templates for Projects

flake-parts/        # Top-level Flake Part files
    default.nix     # Default flake-parts configuration
    profiles.nix    # Profiles for NixOS and Home-manager
    devShells.nix   # Development Shells
    kubenix.nix     # Manifests built with `nix run .#kubenix`
    apps/           # Applications `nix run .#<app>`
    packages/       # Packages `nix build .#<package>`
    homeModules/    # Home-manager Modules
    nixosModules/   # NixOS Modules

kubernetes/         # Kubernetes Manifests and Kubenix Packages
    shared.nix      # Shared Kubernetes Manifests
    <cluster>.nix   # Cluster Manifests    
    clusters/       # FluxCD Bootstrap Folders

documentation/      # MkDocs
    mkdocs.yml      # MkDocs configuration
    docs/           # Documentation source

.github/workflows/      # GitHub Actions workflows
    check-flake.yml     # Flake Health Checker ( Run on push )
    publish-flake.yml   # Publish to FlakeHub + MkDocs to GitHub Pages ( Run on tagged release )

.devcontainer/          # Devcontainer

sops/                   # Encrypted Secrets
vars/                   # Clan.lol implementaion of SOPS

Flake Outputs

$ nix flake show
├───apps
│   └───x86_64-linux
│       ├───fetch-kubeconfig: app: no description
│       ├───flux-bootstrap: app: no description
│       ├───kubenix: app: no description
│       ├───tmp-pod: app: no description
│       ├───update-flake-show: app: no description
│       ├───update-minecraft-mods: app: no description
│       └───watch-documentation: app: Run mkdocs in watch mode over your documentation folder. Automatically rebuilds your docs on changes.
├───clan: unknown
├───clanInternals: unknown
├───darwinConfigurations: unknown
├───darwinModules: unknown
├───devShells
│   └───x86_64-linux
│       └───default: development environment 'nix-shell'
├───formatter
│   └───x86_64-linux: package 'alejandra-4.0.0'
├───homeConfigurations: unknown
├───homeModules: unknown
├───nixosConfigurations
│   ├───ghost: NixOS configuration
│   ├───hel-1: NixOS configuration
│   ├───hp-notebook: NixOS configuration
│   ├───kamrui-p1: NixOS configuration
│   └───nixos: NixOS configuration
├───nixosModules
│   ├───bluetooth: NixOS module
│   ├───clan: NixOS module
│   ├───clan-machine-ghost: NixOS module
│   ├───clan-machine-hel-1: NixOS module
│   ├───clan-machine-hp-notebook: NixOS module
│   ├───clan-machine-kamrui-p1: NixOS module
│   ├───clan-machine-nixos: NixOS module
│   ├───default: NixOS module
│   ├───docker: NixOS module
│   ├───kde: NixOS module
│   ├───minecraft: NixOS module
│   ├───motd: NixOS module
│   ├───networking: NixOS module
│   ├───nix: NixOS module
│   ├───openssh: NixOS module
│   ├───profile-developer: NixOS module
│   ├───profile-normal: NixOS module
│   ├───profile-server: NixOS module
│   ├───sound: NixOS module
│   ├───storagebox: NixOS module
│   ├───tailscale: NixOS module
│   └───wayland: NixOS module
├───overlays
│   └───default: Nixpkgs overlay
├───packages
│   └───x86_64-linux
│       ├───documentation: package 'mkdocs-flake-documentation'
│       ├───helsinki: package 'helsinki-generated.json'
│       ├───home: package 'home-generated.json'
│       ├───playit: package 'playit-0.17.1'
│       └───shared: package 'shared-generated.json'
└───templates
    ├───clan: template: Dendritic Clan Flake
    ├───default: template: Dendritic Flake
    └───minimal: template: Minimal Dendritic Flake