Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 4 days 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 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-05T23:45:28.000Z (12 days ago)
- Last Synced: 2025-01-11T11:59:05.663Z (6 days ago)
- Topics: declarative, desktop, dotfiles, flake, linux, nix, nixos, server
- Language: Nix
- Homepage:
- Size: 207 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Modulo
![Nix Badge](https://img.shields.io/badge/built_with-nix-blue)
![GitHub License](https://img.shields.io/github/license/ivan770/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.