Skip to content

Baconing/dots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,041 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Warning

This is a rewrite of old configurations. These old configurations were primary written with the desktops in mind, and not the servers. Now, it's the servers with priority and the desktops will be added at a later date.

Bacon's NixOS & Home Manager "Dotfiles"

With inspiration from Wimpy's World and others

A set of high-availability, reproducible, and easily configurable files for a fleet of machines.

⚠️ Warning ⚠️

This repository contains machine and user-specific values:

  • Machine Hardware Drivers
  • User Program Configurations
  • Encrypted User Secrets (git tokens, ssh keys, logins, etc.)

I highly recommend that you use this repository as a reference, and don't install it on your machine blindly without doing your homework.

Some actions may be destructive, and I am not responsible for any action you take with this repository.

Hardware

Hardware is named based off Saturn's moons and other space themed names.

Dual booted and VM systems only have one entry unless there is a distinct OS/State difference between VMs.

All my hardware is listed here regardless of their management state by this repository.

Key
Storage Role OS State
🏃 - NVMe SSD 🖥 - Desktop 🎭 - Dual Boot ✅ - Full Machine Support
🚶 - SATA SSD 💻 - Laptop ❄ - NixOS 🟡 - Nixification in progress.
👴 - HDD (any) 🛜 - Router 🪟 - Windows 🤷 - Might use Nix in the future.
💾 - NAS/Storage Server 🐧 - Other Linux ❌ - No plans to ever use Nix.
☁ - Miscellaneous Server 🔍 - Proxmox Host/Client ⏲ - Plans to build, waiting on parts, waiting to setup, etc.
🔎 - Other VM Host/Client (e.g. KVM)
Main Hardware
Hostname Board CPU RAM Storage GPUs Role OS State Comments
titan MSI MPG X570 GAMING PLUS AMD Ryzen 9 3900X 32GB 2TB🏃+512GB🏃+2TB👴 NVIDIA RTX 2070 Super 🖥 🎭(❄+🪟) 🤷 Primary Desktop
tethys [ThinkPad P17 Gen 1] Intel Core i7-10850H 32GB 512GB🏃+256GB🏃 NVIDIA Quadro T2000 Mobile / Max-Q + 10th Gen Intel UHD Graphics (@ 1.15 GHz) 💻 🎭(🐧+🪟) 🤷 Primary Laptop
skoll [MSI MPG B550 GAMING PLUS] [AMD Ryzen 7 2700X] 32GB 500GB🚶 TBA Primary Compute
hyperion HP ProDesk 400 G3 SFF Intel Core i3-6100 4GB 256GB🚶 Intel HD Graphics 530 🛜 🔍(OPNSense) 🤷 Router
phoebe Asus H81M-A Intel Core i3-4150T 16GB 64GB🚶+(4x8TB👴) Intel HD Graphics 4400 💾 🔍(TrueNAS Core) 🤷 NAS
Cluster Nodes These are various additional (minor) nodes used in the kubernetes cluster for high availability and scaling purposes.

Nodes here are named based off the moons of Jupiter.

Hostname Board CPU RAM Storage GPUs Comments
callisto [Lenovo ThinkCentre M73 Tiny] [Intel Core i7-4765T] 8GB 500GB🚶 Intel HD Graphics 4600
mneme [Lenovo ThinkCentre M73 Tiny] [Intel Core i5-4460T] 8GB 500GB🚶 Intel HD Graphics 4600
iocaste [Lenovo ThinkCentre M73 Tiny] [Intel Core i3-4130T] 8GB 500GB🚶 Intel HD Graphics 4400
kore [Lenovo ThinkCentre M73 Tiny] [Intel Core i3-4130T] 8GB 500GB🚶 Intel HD Graphics 4400
eukelade [Lenovo ThinkCentre M73 Tiny] [Intel Core i3-4130T] 8GB 500GB🚶 Intel HD Graphics 4400
harpalyke [Lenovo ThinkCentre M73 Tiny] [Intel Core i3-4130T] 8GB 500GB🚶 Intel HD Graphics 4400
aitne Beelink EQR6 SEI AMD Ryzen 7 5700U 16GB 512GB🏃 AMD Radeon Graphics (@ 1.9 GHz) Bad CPU (unstable at high frequencies)
Decomissioned Hardware Hardware that has been decommisioned, either temporarily or indefinitely.
Key
State
🤔 - Recommission Planned Soon
🔜 - Temporarily Decomissioned
⌛ - Indefinitely Decomissioned
😵 - Hardware Failure
🗑️ - No Longer Owned (i.e. sold/recycled)
Hostname Board CPU RAM Storage GPUs State Reason Comments
artemis ThinkPad X1 Carbon Gen 7 [Intel Core i7-8665U] 16GB None Intel UHD Graphics 620 😵 Bad RAM (Soldered) Ex-Primary Laptop
(unnamed) Supermicro X8SAX (modified?) 2x Intel Xeon X5670 96GB None None 🔜 High Power Draw Themis RES-12XR3

Setup

Kubernetes

1. NixOS Installation

When installing the first ("master") node, before running nixos-install, go into the specific configuration for that node and set:

homelab.services.kubernetes.init = true;

Then, proceed with installation as normal and reboot. After the k3s service has started once, remove/uncomment this line and rebuild + reboot.

A fresh K3s token will be created at /var/lib/rancher/k3s/server/token, add/replace this to the secret at nixos/cluster/kubernetes.secret.yaml and ensure it is the same on additional nodes before installing.

Then, install NixOS on every other node as normal. Additional control plane nodes should automatically be added to the etcd cluster.

2. ArgoCD Bootstrap

After all (or just one) of the nodes have been setup, the next step is bootstrapping ArgoCD to start syncing resources in this GitHub repository.

helm dependency update ./kubernetes/bootstrap

helm template argocd ./kubernetes/bootstrap --namespace argocd | kubectl apply --server-side -f-

TODO: age secret bootstrap

Tip

Run as root on any control plane node to automatically find a valid kubeconfig.

This will apply a temporary installation of ArgoCD and initialize the cluster Application.

After bootstrap, ArgoCD will automatically install all of the resources and upgrade itself to an Application managed by the repository.

That is all of the necessary steps to start using Kubernetes. All that is left is to setup individual applications that don't have static configurations or that haven't been setup with a static configuration. Alternatively, start restoring data/configurations from backups.

Inspiration

Wimpy's World - README format, file structure, general introduction to Nix syntax. talos-ops-prod - Great file structure for Kubernetes, showed me some software I didn't know existed, convinced me on Helm.

About

dot dot dotttt...

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages