Skip to content

donvini94/nixos-config

Repository files navigation

This repository contains my configuration files for managing multiple NixOS systems, including desktops, laptops, and a server. The configuration is structured to support modularity, allowing anyone to start with these configs and selectively enable the modules they need for their own homeserver setup.

Goals

The primary goal of this repository is to provide a flexible and modular configuration for:

  • Desktop systems running Hyprland, Waybar, Doom Emacs, and other key tools
  • A server hosting various services accessible through a secure setup with Keycloak authentication

Structure

The repository is organized into separate configuration files for each machine, with reusable modules for common services and setups.

  • hm-modules contains configurations for specific tools I use on my machine.
  • modules contains thematic packages like in programming.nix as well as my hyprland config.
  • hosts contains machine specific information. It is the place where you would put your hardware-configuration.nix

modules

  • services.nix contains the desktop services I want to have running for all users (not managed by home-manager)

Desktop Software

SoftwarePurpose
HyprlandWindow manager
WaybarStatus bar
Doom EmacsCode editor and personal organizer
KittyTerminal emulator
NushellModern shell
SwaylockScreen locker

Desktop config

2 main files drive the desktop configuration: common.nix, which contains the commmon configuration for my desktop systems like user setup, filesystems and hardware config like bluetooth and network. desktop.nix is the entrance file for all packages and services running on my desktop systems.

Server Setup

The server configuration, found in `alucard.nix`, is designed to create a home server environment with the following services, all routed through nginx reverse proxies and accessible via Dashy, an entry point dashboard:

ServiceDescription
DashyHomepage and service portal
JellyfinMedia server
PaperlessDocument management
NavidromeMusic server
Calibre-WebE-book library
OverleafCollaborative document editor
CoderCode-server for development

All access to these services is managed via Keycloak for unified authentication.

How to Use

To get started, clone this repository and review the alucard.nix configuration file and other system-specific files for module options. Each module can be selectively enabled depending on the services you want to deploy on your own system.

Secret Management

To manage secrets on my system and the server, I utilize sops-nix, which is managed via the configuration files .sops.yaml, secrets.nix and the secrets file dmbs.yaml for the server.

Future Goals

I aim to continuously improve the modularity of these configurations, adding more reusable modules and further simplifying the setup process for both desktop and server configurations.

About

NixOS configuration for desktops and homeservers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •