Skip to content

gaspardetienne97/nixos-config

Repository files navigation

nixos-config

My NixOS configuration

NixOS Configuration

This repository contains my personal NixOS configuration, managed using Nix Flakes.

Structure

  • flake.nix: The entry point for the Nix Flake, defining inputs and outputs.

  • configuration.nix: The main NixOS configuration file, importing other modules.

  • hardware-configuration.nix: Hardware-specific configuration (generated by NixOS).

  • personal-config.nix: Personal configuration options.

  • modules/: Directory containing modular NixOS configurations:

    • system.nix: System-wide settings and packages.
    • networking.nix: Network-related configurations.
    • users.nix: User account settings.
    • services.nix: Service configurations (e.g., SSH, Caddy).
  • home/: Home-Manager configurations:

    • default.nix: Main Home-Manager configuration.
    • programs.nix: User-specific program configurations.
    • shell.nix: Shell-related configurations (e.g., aliases, prompt).
    • desktop.nix: Desktop environment and related program configs.
  • overlays/: Custom Nix overlays:

    • freecad.nix: Custom overlay for FreeCAD.

    TODO

  • implement nix-authentic

  • set up sveltekit devshell to auto start web server

  • implement oidc for auth in sveltekit app using lucia https://lucia-auth.com/tutorials/google-oauth/sveltekit

  • implement nextcloud

  • implement arr-nix for arr suite and make use nix-authentic

  • implement https://joinemm.dev/blog/yubikey-nixos-guide

  • implement https://github.com/pulsejet/memories or https://github.com/immich-app/immich

  • implement actual-budget server

  • implement manga sync server for mihon

  • implement ai suite and expose through site

Functionality

  • Uses Nix Flakes for reproducible builds and easier management.
  • Integrates Home-Manager for user-specific configurations.
  • Implements custom overlays (e.g., for FreeCAD).
  • Utilizes SOPS for secret management.
  • Configures various services including Caddy as a web server.
  • Sets up a development environment with tools like VSCodium, Git, and Alacritty.

Usage

To rebuild and switch to this configuration:

sudo nixos-rebuild switch --flake .#nixos

To update all inputs:

nix flake update

Customization

To customize this configuration:

  1. Modify personal-config.nix with your personal details.
  2. Edit files in the modules/ directory to change system-wide settings.
  3. Adjust files in the home/ directory for user-specific configurations.
  4. Add or modify services in modules/services.nix.
  5. Create or edit overlays in the overlays/ directory for custom package modifications.

Remember to rebuild your system after making changes.

About

My NixOS configurations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published