asgard
This configuration is under constant construction so some things may be remove or add accordings to my needs but i want to keep all even if it's not used anymore.
IMPORTANT
Since this configuration is made for my own needs, you can take inspiration and some configuration but do not expect it to work on your side.
Any damage caused by this configuration is not my responsibility, so use it at your own risks.
Table of Contents#
- Features & Capabilities
- Machines
- Installation
- Folder Structure
- Commands
- Documentations
- Troubleshooting
Features & Capabilities#
This repository want this to be multi-user and multi-host so there is some workaround to make things work like i want and keep it simple.
- NixOS
- Nix Darwin
- WSL
- Nix BSD
- MicroVM for servers
- Secrets management
- Secure Boot
- Persistant storage
- Disk configuration
- Encrypted disks
- Home management
- Custom live ISO
- Automatic updates
Installation#
TODO
Machines#
| Hostname | Motherboard | CPU | GPU | RAM | OS | Usage | Status |
|---|---|---|---|---|---|---|---|
njord |
- | Apple M2 Pro | Apple M2 Pro | 32Go | 🍎️ | ⌨️ | 🟢️ |
loki |
ASUS ROG STRIX B760-I GAMING WIFI | Intel i5 13600kf | Nvidia 4070ti | 32Go | ❄️ | 🎮️ | 🟢️ |
lithium |
Raspberry Pi3 b+ | - | - | 1Go | ❄️ | 🧨️ | 🔴 |
vali |
WSL | - | - | 8Go | ❄️ | 💾️ | 🔴 |
andhrimnir |
Aorus B450 Elite | AMD Ryzen 3 3300X | Nvidia 1060 | 16Go | ❄️ | 🎮️ / ⌨️ | 🟠 |
elli |
HP ProDesk 400 G1 DM | Intel Pentium G3250T | - | 8Go | ❄️ | 💾️ | 🔴 |
sunna |
ASUS ROG STRIX G15 | Intel i7 10870H | Nvidia 2060 | 16Go | ❄️ | 🖥️ | 🟠 |
Legend
- 🎮️ : Gaming
- 💾️ : Server
- ☁️ : Virtual Machime
- ⌨️ : Coding
- 🖥️ : Office
- 🧨️ : Testing purpose
- 🎭️ : Dual Boot
- ❄️ : NixOS
- 🍎️ : MacOS
- 👹️ : FreeBSD with NixBSD
Folder structure#
.
├── lib # Asgard custom libary to help configure machines and users
├── machines # Machine configurations
│ └── <os>
│ │ └── <hostname>
├── modules # Asgard custom modules by os
│ ├── common
│ ├── darwin
│ └── nixos
├── packages # Packages not present in nixpkgs
├── overlays # Package override
├── templates # Template for boostrapping projects (zig, go, ...)
├── users # Home configuration by users and hosts
│ ├── common
│ └── <username>
│ │ └── <hostname>
├── flake.nix # Configuration entrypoint
├── flake.lock # Pinned versions of packages repositories
└── justfile # Command helper (like a Makefile)
Commands#
You can get all recipes using the just command and running one of the available commands below with just <command> <arguments*>:
Available recipes:
boot hostname=hostname # Build a new configuration
clean # Cleanup all unused packages and generations
format # Format code
size # Print size of the nix store
switch hostname=hostname # Rebuild the system
update # Update dependencies
Documentations#
These are the things that help me the most to understand Nix ecosystem and help me build my configuration from scratch.
You can retrieve dotfiles that inspired me inside my dotfiles star list.
Troubleshooting#
- If the rebuild command failed because an experimental feature is disabled use this command:
sudo -E NIX_CONFIG="experimental-features = nix-command flakes pipe-operators" nixos-rebuild switch --flake .