Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

162 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MujaOS β€” Modular NixOS Configuration

Release NixOS Version License CI

MujaOS Logo

Declarative. Modular. Reproducible.

A modern, flake-based NixOS configuration designed for clarity, maintainability, and reliability.

πŸ“¦ Installation β€’ ✨ Features β€’ 🧠 Philosophy β€’ 🧩 Requirements β€’ 🧭 Structure β€’ 🀝 Contributing β€’ πŸ“„ License


MujaOS Logo

🧠 Philosophy

NixOS done right.
MujaOS delivers a clean, reproducible, and modular approach to NixOS configuration built around Nix flakes. It aims to make system management predictable and maintainable by design.

Key goals:

  • πŸ’‘ Build and rebuild identical systems β€” every time.
  • 🧩 Modular architecture that’s easy to customize safely.
  • πŸͺΆ Lightweight, readable structure for long-term maintainability.
  • πŸ” Versioned configurations β€” rollback to any state with Git.

No fragile scripts. No β€œsnowflake” systems. Just reproducible infrastructure as code.


✨ Features

  • βš™οΈ Flake-based design β€” modern, self-contained configuration
  • 🧩 Modular system components β€” plug-and-play modules for services and settings
  • 🧰 User profiles β€” separate user environments for clarity
  • πŸ” Reproducible builds β€” eliminate configuration drift
  • 🌐 Multi-host support β€” manage desktops, laptops, and servers from one repo
  • πŸ”’ Security-focused defaults β€” consistency meets hardening
  • πŸͺΆ Minimal boilerplate β€” simple to read, simple to extend

🧩 Requirements

Before you begin, make sure your environment meets the following:

Software Requirements

  • Nix β‰₯ 2.18 with flakes enabled
  • NixOS 25.05 or newer
  • Git for fetching and versioning
  • sudo privileges for system rebuilds
  • (Optional) nix-command enabled in /etc/nix/nix.conf

Hardware Recommendations

  • Architecture: x86_64 or aarch64
  • Memory: 2 GB+ RAM (4 GB recommended)
  • Storage: 10 GB free disk space minimum
  • Network: Reliable Internet connection for fetching dependencies

Knowledge Requirements

  • Familiarity with:
    • Basic Nix expressions and the NixOS module system
    • Using nixos-rebuild and flake commands
    • Git workflow basics
    • General Linux system administration

πŸ’‘ New to NixOS? Start with Nix Pills or the NixOS Flakes Wiki.


πŸš€ Installation

  1. Clone the repository

    git clone https://github.com/mujaxso/mujaos.git
    cd mujaos
  2. Build and switch to your host configuration

    sudo nixos-rebuild switch --flake .#laptop --show-trace

    Replace laptop with your target host name (as defined under hosts/).

  3. Reboot your system

    Once rebuilt, reboot to load the new configuration.


🧭 Repository Structure

mujaos/
β”œβ”€β”€ flake.nix              # Main Nix flake entrypoint
β”œβ”€β”€ flake.lock             # Pin exact dependency versions
β”œβ”€β”€ hosts/                 # Host-specific configurations
β”‚   β”œβ”€β”€ laptop/            # Example laptop profile
β”‚   └── server/            # Example server profile
β”œβ”€β”€ modules/               # Modular components (network, desktop, etc.)
β”œβ”€β”€ users/                 # User-specific configurations
β”œβ”€β”€ overlays/              # Custom Nix package overlays
β”œβ”€β”€ assets/                # Images, branding, and docs
└── README.md              # Project documentation

🧩 Each folder and module is self-contained for clarity and scalability. Add or remove hosts without affecting others.


βš™οΈ Example Usage

To rebuild or switch configurations:

sudo nixos-rebuild switch --flake .#desktop

To update flake inputs (e.g., Nixpkgs, Home Manager):

nix flake update

To test configurations without applying them:

sudo nixos-rebuild test --flake .#server

🀝 Contributing

Contributions are always welcome!
Here’s how you can help improve MujaOS:

  • πŸ› Report bugs β€” open an issue
  • πŸ’‘ Suggest features β€” share ideas to improve modularity or usability
  • πŸ”§ Submit pull requests β€” keep your commits clean and atomic

Please follow conventional commits (feat:, fix:, docs:, etc.) and ensure your changes remain modular.


πŸ“„ License

This project is licensed under the MIT License.
You’re free to use, modify, and distribute under the same terms.


MujaOS β€” Declarative, Modular, Reproducible.
Built with ❀️ for NixOS and the open-source community.

About

πŸŒ‹β€‹ MujaOS lightweight Modular nix configuration

Resources

Code of conduct

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages