No description
Find a file
Ivan Bushchik 1959f26e19
Nixfmt time
Signed-off-by: Ivan Bushchik <ivabus@ivabus.dev>
2024-01-07 14:26:33 +03:00
common Nixfmt time 2024-01-07 14:26:33 +03:00
hardware Enable only necessary fss 2023-11-30 16:16:33 +03:00
machines machines/celerrime: fix all types of USB / 2024-01-07 14:25:28 +03:00
pkgs Bump slides-ivabus-dev to 004b776 2023-12-28 13:14:46 +03:00
roles roles: Add airplay-server role (pkg + open ports) 2024-01-06 13:20:32 +03:00
secrets Host private yggdrasil peer 2023-12-17 10:57:18 +03:00
.gitignore Try to remove flake.lock 2023-11-25 18:15:57 +03:00
default.nix Minor changes 2023-10-03 22:25:40 +03:00
features.nix Nixfmt time 2024-01-07 14:26:33 +03:00
flake.nix global: enable NUR + common/dotfiles: rise Firefox 2024-01-07 14:24:47 +03:00
LICENSE Add license file 2023-08-27 18:25:55 +03:00
README.md Remove shells 2024-01-06 13:22:47 +03:00
secrets.nix Host private yggdrasil peer 2023-12-17 10:57:18 +03:00

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
  };
}

Dotfiles development

As I fully manage my dotfiles through home-manager and fetchGit they are readonly.

To install normal version of them disable my.users.ivabus.dotfiles.enable and run this command (which installs and links dotfiles)

curl https://iva.bz/nix | sh

TODO

  • Setup services (which I host)
    • ivabus.dev
    • iva.bz (native Nix, yay!)
    • ивабус.рф (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)

This configuration is MIT licensed.

I used delroth/infra.delroth.net (MIT license) as a reference for my configuration.