This project contains a NixOS configuration setup for self-hosting applications, specifically Rust and Next.js servers. The configuration emphasizes clean machine management, seamless updates, networking best practices, and comprehensive metrics monitoring.
- Clean Machine Management: Structured and modular configuration files for easy management of multiple machines.
- Seamless Updates: Automated updates using Nix's declarative and reproducible package management.
- Networking Best Practices: Configurations ensuring secure and efficient networking setups.
- Comprehensive Metrics: Monitoring of bandwidth, CPU, and data usage using integrated metrics tools.
Follow these steps to set up the project:
-
Clone the repository:
git clone https://github.com/your-username/nixconfig.git cd nixconfig
-
Set up NixOS: Follow the official NixOS installation guide.
-
Apply the Configuration: Copy the configuration files to
/etc/nixos
and apply the configuration:sudo cp -r ./nixos-config /etc/nixos sudo nixos-rebuild switch
- Add a New Machine: Create a new configuration file in the
machines
directory and define your machine-specific settings. - Update a Machine: Modify the respective configuration file and run
nixos-rebuild switch
on the target machine.
- Setup Monitoring Tools: Ensure your monitoring tools (e.g., Prometheus, Grafana) are included in the NixOS configuration.
- Access Metrics: Use the configured tools to view metrics on bandwidth, CPU, and data usage.
We welcome contributions! To contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature-branch
) - Open a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or support, please contact [email protected] or open an issue on GitHub.