Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rshohruh/nix-config


https://github.com/rshohruh/nix-config

dotfles linux nixos nixos-configuration nixos-flake

Last synced: 30 days ago
JSON representation

Awesome Lists containing this project

README

        

# 💻 My NixOS Configuration Setup

Welcome to my NixOS configuration repository! This setup is based on the fantastic Misterio77/nix-starter-configs template, designed to help users get started with NixOS configuration in a simple and structured way.
## 📚 Overview

This repository contains my personal configurations for NixOS, organized and managed using the Nix package manager. It's structured in a modular way, making it easy to customize, manage, and extend my system.
## 🌟 Features

- **Declarative System Configuration**: Manage every aspect of the system, from packages to services, all from a single configuration file.
- **Modular Setup**: Organized and split into multiple modules for better maintainability.
- **Multi-User Support**: Configurations for both system-wide settings and individual user profiles.
- **Flakes**: Powered by Nix Flakes for reproducible builds and easier management of dependencies.

## 📁 Repository Structure

The following structure represents my NixOS configuration files, organized into relevant directories for modularity and maintainability:
```
├── home-manager # Home-manager configurations for user environments
├── modules # Custom NixOS modules
├── nixos # System-wide NixOS configurations
├── overlays # Overlays for customizing package sets
├── pkgs # Custom packages and Nix expressions
├── flake.lock # Lock file for Nix Flakes (ensures reproducibility)
├── flake.nix # Nix Flakes configuration
└── shell.nix # Development shell setup
```

### Key Files and Directories

- **`home-manager/`**: Configures home environments and packages for each user.
- **`modules/`**: Custom NixOS modules for specific configurations or services.
- **`nixos/`**: Main NixOS configuration directory (e.g., system-wide settings, hardware configurations).
- **`overlays/`**: Nix overlays for extending and customizing package sets.
- **`pkgs/`**: Custom Nix packages and expressions tailored for specific needs.
- **`flake.lock`**: Lock file generated by Nix Flakes to ensure reproducible builds.
- **`flake.nix`**: Defines the inputs, outputs, and system configurations using Nix Flakes.
- **`shell.nix`**: Configuration for setting up the development environment shell.

## 🚀 Getting Started

To use this setup, follow these steps:

1. **Clone the Repository**:
```bash
git clone https://github.com/rshohruh/nixos-config.git
cd nixos-config
```

2. **Install NixOS: Follow the official NixOS installation guide**.

3. **Set Up the System:**

Link or copy the configuration files to your NixOS installation.
Run the following to apply the configuration:

```bash
sudo nixos-rebuild switch --flake .
```
4. Manage Home Configurations:

Ensure you have home-manager installed.
Apply home-manager configurations:

```bash
home-manager switch --flake .
```

## ⚙️ Customization

This setup is designed to be modular and easy to extend. Here are a few customization options:

- **System Packages**: Add or remove system-wide packages by editing the `nixos/configuration.nix` file or creating additional modules in `nixos/modules`.
- **User Packages**: Customize user environments by editing the `home/` directory with user-specific packages and configurations.
- **Services**: Enable or disable system services (e.g., SSH, Docker, etc.) in the `nixos/modules` directory.

## 🛠️ Dependencies

- **NixOS**: The Linux distribution with a declarative configuration.
- **Nix**: The package manager used by NixOS.
- **Nix Flakes**: Optional but highly recommended for better dependency management.
- **Home-Manager**: For managing user profiles, including packages, dotfiles, and configurations.

## 📝 Acknowledgements

This configuration is based on the [nix-starter-configs](https://github.com/Misterio77/nix-starter-configs) template by [Misterio77](https://github.com/Misterio77). Special thanks for creating such an easy-to-use and modular starter configuration!

## 🖥️ Screenshots

Feel free to add screenshots of your desktop environment, terminal setup, or any other customizations here.

## 📜 License

This repository is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more information.

---

Feel free to fork or use this setup as a starting point for your own NixOS configurations. Contributions and suggestions are always welcome!