https://github.com/ivan770/modulo
A collection of NixOS and Home Manager modules
https://github.com/ivan770/modulo
declarative desktop dotfiles flake linux nix nixos server
Last synced: 5 months ago
JSON representation
A collection of NixOS and Home Manager modules
- Host: GitHub
- URL: https://github.com/ivan770/modulo
- Owner: ivan770
- License: mit
- Created: 2023-12-02T20:51:07.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-21T00:32:19.000Z (5 months ago)
- Last Synced: 2025-09-21T02:35:41.787Z (5 months ago)
- Topics: declarative, desktop, dotfiles, flake, linux, nix, nixos, server
- Language: Nix
- Homepage:
- Size: 321 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Modulo


A collection of NixOS and Home Manager modules that I use
on my own devices.
- [x] Declarative filesystem support
- For image-based devices:
- Fully immutable Nix store with updates using `systemd-sysupdate`
- Update packages are built as a single derivation
- At the moment, Modulo supports only the A/B schema for the OS itself,
and an additional partition for the persistent data
- For regular devices:
- Filesystem configuration using [Disko](https://github.com/nix-community/disko)
- [x] Impermanence with root filesystem mounted as a `tmpfs`
- [x] Configurable networking using only systemd-based components (networkd, resolved, etc.)
- [x] WireGuard mesh private network support
- [x] Pre-configured desktop and server configurations
## Usage
Include Modulo as a flake input in your system configuration:
```nix
inputs = {
modulo.url = "github:ivan770/modulo";
# Optional, but highly recommended.
nixpkgs.follows = "modulo/nixpkgs";
unstable.follows = "modulo/unstable";
home-manager.follows = "modulo/home-manager";
snowfall.follows = "modulo/snowfall";
# ...
};
```
Support for separate module usage is best effort, so it's recommended
to import all repository modules together.
Example (when using [Snowfall Lib](https://github.com/snowfallorg/lib)):
```nix
systems.modules.nixos = attrValues inputs.modulo.nixosModules
++ [inputs.home-manager.nixosModules.home-manager];
```
## License
This software is licensed under the MIT license.