Laptop, desktop, and home lab flake featuring Hyprland, Sway, declarative containers, a reverse proxy, and more.
Find a file
Aly Raffauf aec4214add
aly: switch to bitwarden (#72)
* aly: add password-store with extensions

* aly: add rofi-pass

* aly: simplify rofi-pass config

* aly: add rbw config

* aly/wm: bind super+p to rofi-rbw

* aly: remove password-store

* aly: remove rofi-pass

* aly/firefox: remove keepassxc extension

* aly: install bitwarden-desktop

* rofi: include rofi-rbw by default with sane defaults

* aly/wm: don't autostart keepassxc

* aly: remove keepassxc secret

* aly/wm: center and float bitwarden gui

* chromium: don't install keepassxc extension by default
2024-08-02 07:50:06 -04:00
.github/workflows github: rename flakehub workflow 2024-07-30 11:58:33 -04:00
_img README: update screenshot 2024-07-03 16:27:34 -04:00
baseModules home: move gnome config to hm (#59) 2024-07-23 13:04:10 -04:00
flake clean-install: prompt for host 2024-07-17 11:07:29 -04:00
homeManagerModules aly: switch to bitwarden (#72) 2024-08-02 07:50:06 -04:00
homes aly: switch to bitwarden (#72) 2024-08-02 07:50:06 -04:00
hosts hosts/common: install git by default 2024-07-30 20:56:38 -04:00
nixosModules drop gnome modules (#66) 2024-07-28 15:56:41 -04:00
secrets aly: switch to bitwarden (#72) 2024-08-02 07:50:06 -04:00
userModules users: authorize ssh keys with builtins.readFile to work around initrd ssh issues #49 2024-07-20 12:21:50 -04:00
.gitignore add .gitignore 2024-04-02 17:48:27 -04:00
.gitlab-ci.yml code cleanup (#47) 2024-07-18 21:05:35 -04:00
flake.lock flake: update nixpkgs-unstable 2024-07-30 12:04:43 -04:00
flake.nix flake: drop nixvim 2024-07-24 13:42:52 -04:00
LICENSE.md hosts: add READMEs (#50) 2024-07-20 19:41:51 -04:00
README.md README: format update 2024-07-30 21:18:20 -04:00
update_fetchgit.sh fetchgit script: simplify 2024-07-25 12:15:14 -04:00

nixos

My comprehensive NixOS flake for managing my laptop, desktop, and home lab environments.

Features

  • Hyprland: Dynamic tiling Wayland compositor and window manager.
  • Home Lab Services: Media, file sharing, and more.
  • Reverse Proxy: Efficient traffic routing for my home lab services.
  • Modular Configuration: Reasonably adaptable for different hardware and use cases.

Inputs

This flake takes a variety of inputs, first and foremost my other flakes:

  • nixhw: opinionated set of generic (AMD, Intel, Laptop, SSD) and specific (Framework 13, Yoga 9i, Thinkpad T440p) hardware configuration modules for NixOS.
  • raffauflabs: everything (containers, services, nginx, etc) that makes my home lab a home lab.

As well as upstream third-party projects that I use for various tasks:

  • agenix: secrets storage and orchestration.
  • disko: declarative partitions and disk configuration.
  • home-manager: declarative dotfile and user package management.
  • hyprland: great dynamic tiling wayland compositor.
  • iio-hyprland: autorotate daemon for Hyprland.
  • nur: extra packages from the nix user repository.

Outputs

  • homeManagerModules.default: app modules + everything you need for a competent Hyprland desktop (and a few others).
  • nixosModules.base: opinionated basic system configuration.
  • nixosModules.nixos: opinionated desktop, app, and service modules.
  • nixosModules.users: basic user configuration.

In addition, this flake outputs NixOS configuration and home-manager configurations for all of my hosts and users, respectively.

Deploying to NixOS

Each hardware configuration is host-specific. If you fork this repository, add a host configuration for your own hardware. Secrets are encrypted with agenix and will not be available without the private decryption keys.

Enabling Flakes

While widely used and considered stable, flakes are still considered experimental. To enable Flakes, add the following lines to your configuration.nix and rebuild.

nix.settings.experimental-features = [ "nix-command" "flakes" ];

Alternatively, pass --experimental-features "nix-command flakes" to nix to temporarily use flakes.

Building Flake

In order to deploy this Flake on your host, run the following command:

sudo nixos-rebuild boot --flake github:alyraffauf/nixcfg#$HOSTNAME

Substitute $HOSTNAME for whichever hostname you have chosen. Reboot to apply the flake's configuration for the chosen host.

Installing from Live USB

If you want to install NixOS from this flake, run the following commands, ideally from a NixOS live environment, providing the hostname associated with a NixOS configuration specified in flake.nix when prompted.

sudo nix --experimental-features "nix-command flakes" run github:alyraffauf/nixcfg