mirror of
https://github.com/ivabus/nixos
synced 2024-11-10 02:25:18 +03:00
|
||
---|---|---|
common | ||
hardware | ||
machines | ||
pkgs | ||
roles | ||
secrets | ||
shells | ||
.gitignore | ||
default.nix | ||
features.nix | ||
flake.nix | ||
LICENSE | ||
README.md | ||
secrets.nix |
ivabus NixOS Configuration files.
Deploying
Setup disks, mount root to /mnt
and /boot
to /mnt/boot
and run something like this
git clone https://github.com/ivabus/nixos /mnt/etc/nixos
nixos-generate-config --show-hardware-config --root /mnt > /mnt/etc/nixos/machines/HOST/hardware.nix
nixos-install --flake path:.#HOST
Raspberry Pi image generation
Replace {{REPO_PATH}}
with path to this repo (surprising, isn't it) and run on NixOS system (or system with Nix (don't tested))
nix build path:{{REPO_PATH}}#nixosConfigurations.HOST.config.system.build.sdImage
Rebuilding
nixos-rebuild switch --flake path:/etc/nixos
Apple Silicon hosts require additional --impure
flag for firmware installation. (Firmware should be placed in /etc/nixos/asahi/firmware
(ignored by git)).
Hosts configured
- celerrime (MacBook Air M2) (coding)
- vetus (iMac 27" 2017) (gaming)
- stella (Random Ryzen 3 3250U laptop) (lite web surfing client)
- rubusidaeus (Raspberry Pi 4B) (small services)
- periculo (StarFive VisionFive2) (as router) - WIP + untested
Modules
Module example:
{ config, lib, ... }:
let
cfg = config.my.MODULE;
in {
options.my.MODULE.enable = lib.mkEnableOption "Enable MODULE";
config = lib.mkIf (cfg.enable) {
MODULE_CONFIGURATION
};
}
Shells
I "made" some shell in shells/.
Dotfiles (from ivabus/dotfiles
)
I install my dotfiles with prepared script
curl https://iva.bz/nix | sh
TODO
- Setup services (which I host)
- ivabus.dev
- iva.bz (proxying not-Nix env)
- ивабус.рф (proxying not-Nix env)
- Setup "secret" roles (I need them)
- Setup router (in progress with
periculo
, aughhhhhhhhh it seems like I need to crosscompile it for 30 days straight, so no fast progress) - Setup dotfiles properly with home-manager
Copyright
This configuration is MIT licensed.
I used delroth/infra.delroth.net (MIT license) as a reference for my configuration.