Compare commits

...

10 commits

Author SHA1 Message Date
4d17f8d4bf updated readme.md 2025-08-02 10:41:04 +02:00
beffce096f bump flake 2025-08-02 10:16:38 +02:00
d784f55702 lutris fix 2025-08-02 10:16:38 +02:00
6ef751f330 start discord with moonlight instead of vesktop 2025-08-02 10:16:38 +02:00
c8aa3bbc74 fixed lutris 2025-08-02 10:16:38 +02:00
3e64801e8c better moonlight override 2025-08-02 10:16:38 +02:00
e9d297b9ac solved conflicts 2025-08-02 10:16:38 +02:00
76fb6a0531 enabled jack 2025-08-02 10:16:38 +02:00
b615595b14 fixed conflicts 2025-08-02 10:16:38 +02:00
91fa4bf48a removed vulnerable packages and enabled lix 2025-08-02 10:16:38 +02:00
13 changed files with 101 additions and 77 deletions

View file

@ -1,22 +1,26 @@
# my nix homelab config # nix dotfiles
**THIS CONFIG IS STILL EXPERIMENTAL !! IT MIGHT WONT WORK OR JUST BREAK YOUR CURRENT INSTALL** This repo hosts all my dotfiles. It includes two desktop config, one (terrible) computer config, and some server dots. It brings my own neovim config, called [miovim](https://git.rougebordeaux.xyz/misschloe/miovim).
Hosted on a Proxmox VM (8Go RAM + 300Gb storage). It is not using the flake.nix because i don't see the use for it, as much than home-manager...
The goal of this config is to include : | name | description |
| ----------- | ------------------------------------------------- |
| `goober` | my main desktop config. Intel 9th gen + 1660 GPU. |
| `workspace` | my config for professional workspaces. |
| `sisyphe` | proxmox server vm |
| `labouse` | ASUS X75s (laptop) nix config. Highly experimental, as this is old hardware! |
| `dadarwin` | some basic iMac 2015 config. |
- [x] -arr suite `diva`, `strawberry` are WIP. Supposed to be two servers config.
- [x] Authentik
- [x] slskd
- [ ] a cloud solution, to backup family files
- [x] crafty controller\*
- [x] a matrix server
- [x] tt-rss / freshrss\*
- [x] tailscale
\*Not using the "Nix" way (i prefer using Docker atm, i currently lack time) `packages` also comes with some packages bundling i made for various software i use (and too shy to put in nixpkgs).
## Installation # Installation
!! This config is not plug and play; it comes with some encrypted secrets and files that are not included here. !!
You will need to do a basic NixOS install with my config files placed @ `/etc/nixos`. Make sure flakes and nix command is enabled first in your configuration, then run :
Then, setup and adapt the config with your secrets. I am using sops-nix here.
```bash
git clone <repo-url>
# replace goober by whatever config interests you
sudo nixos-rebuild switch --flake .#goober
```

44
flake.lock generated
View file

@ -381,15 +381,15 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751909859, "lastModified": 1751240025,
"narHash": "sha256-gbpuESxl/An4GTh7QEbQRYJozVIxWkwVGbWK0/0GoRc=", "narHash": "sha256-SXUAlxpjPRkArRMHy5+Hdi+PiC+ND9yzzIjiaHmTvQU=",
"rev": "4d4c2b8f0a801c91ce5b717c77fe3a17efa1402f", "rev": "8b1094356f4723d6e89d3f8a95b333ee16d9ab02",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/4d4c2b8f0a801c91ce5b717c77fe3a17efa1402f.tar.gz?rev=4d4c2b8f0a801c91ce5b717c77fe3a17efa1402f" "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/8b1094356f4723d6e89d3f8a95b333ee16d9ab02.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz" "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz"
} }
}, },
"miovim": { "miovim": {
@ -436,7 +436,9 @@
}, },
"musnix": { "musnix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4" "nixpkgs": [
"nixpkgsUnstable"
]
}, },
"locked": { "locked": {
"lastModified": 1741303672, "lastModified": 1741303672,
@ -459,7 +461,7 @@
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"hercules-ci-effects": "hercules-ci-effects", "hercules-ci-effects": "hercules-ci-effects",
"neovim-src": "neovim-src", "neovim-src": "neovim-src",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_4",
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
@ -676,22 +678,6 @@
} }
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": {
"lastModified": 1740695751,
"narHash": "sha256-D+R+kFxy1KsheiIzkkx/6L63wEHBYX21OIwlFV8JvDs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6313551cd05425cd5b3e63fe47dbc324eabb15e4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1753151930, "lastModified": 1753151930,
"narHash": "sha256-XSQy6wRKHhRe//iVY5lS/ZpI/Jn6crWI8fQzl647wCg=", "narHash": "sha256-XSQy6wRKHhRe//iVY5lS/ZpI/Jn6crWI8fQzl647wCg=",
@ -707,7 +693,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1753115646, "lastModified": 1753115646,
"narHash": "sha256-yLuz5cz5Z+sn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c=", "narHash": "sha256-yLuz5cz5Z+sn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c=",
@ -723,7 +709,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1744868846, "lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@ -739,7 +725,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1750605355, "lastModified": 1750605355,
"narHash": "sha256-xT8cPLTxlktxI9vSdoBlAVK7dXgd8IK59j7ZwzkkhnI=", "narHash": "sha256-xT8cPLTxlktxI9vSdoBlAVK7dXgd8IK59j7ZwzkkhnI=",
@ -817,7 +803,7 @@
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nix-secrets": "nix-secrets", "nix-secrets": "nix-secrets",
"nixos-generators": "nixos-generators", "nixos-generators": "nixos-generators",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_5",
"nixpkgsSmall": "nixpkgsSmall", "nixpkgsSmall": "nixpkgsSmall",
"nixpkgsUnstable": "nixpkgsUnstable", "nixpkgsUnstable": "nixpkgsUnstable",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
@ -848,7 +834,7 @@
}, },
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1752544651, "lastModified": 1752544651,
@ -867,7 +853,7 @@
"swww": { "swww": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_7",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {

View file

@ -52,12 +52,13 @@
}; };
lix-module = { lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"; url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz";
inputs.nixpkgs.follows = "nixpkgsUnstable"; inputs.nixpkgs.follows = "nixpkgsUnstable";
inputs.lix.follows = "lix"; inputs.lix.follows = "lix";
}; };
musnix = { musnix = {
url = "github:musnix/musnix"; url = "github:musnix/musnix";
inputs.nixpkgs.follows = "nixpkgsUnstable";
}; };
moonlight = { moonlight = {
url = "github:moonlight-mod/moonlight/develop"; # Add `/develop` to the flake URL to use nightly. url = "github:moonlight-mod/moonlight/develop"; # Add `/develop` to the flake URL to use nightly.
@ -119,7 +120,7 @@
specialArgs = specialArgs; specialArgs = specialArgs;
modules = [ modules = [
./hosts/goober/configuration.nix ./hosts/goober/configuration.nix
lix-module.nixosModules.default # lix-module.nixosModules.default
nix-flatpak.nixosModules.nix-flatpak nix-flatpak.nixosModules.nix-flatpak
musnix.nixosModules.musnix musnix.nixosModules.musnix
catppuccin.nixosModules.catppuccin catppuccin.nixosModules.catppuccin

View file

@ -580,7 +580,7 @@ environment {
// apps to launch at startup // apps to launch at startup
spawn-at-startup "qutebrowser" spawn-at-startup "qutebrowser"
spawn-at-startup "vesktop" spawn-at-startup "discord"
spawn-at-startup "beeper" spawn-at-startup "beeper"
spawn-at-startup "cinny" spawn-at-startup "cinny"

View file

@ -87,6 +87,7 @@
obsidian obsidian
papirus-icon-theme papirus-icon-theme
nvimpager nvimpager
mpc
# # You can also create simple shell scripts directly inside your # # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your # # configuration. For example, this adds a command 'my-hello' to your
# # environment: # # environment:

View file

@ -110,6 +110,7 @@
slurp slurp
wl-clipboard wl-clipboard
udiskie udiskie
lutris
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
@ -132,6 +133,15 @@
}; };
documentation.dev.enable = true; documentation.dev.enable = true;
systemd.extraConfig = "DefaultLimitNOFILE=524288";
security.pam.loginLimits = [
{
domain = "misschloe777";
type = "hard";
item = "nofile";
value = "524288";
}
];
# This option defines the first version of NixOS you have installed on this particular machine, # This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.

View file

@ -1,6 +1,10 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
environment.systemPackages = with pkgs; [
glxinfo
];
boot.blacklistedKernelModules = [ "nouveau" ]; boot.blacklistedKernelModules = [ "nouveau" ];
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;

View file

@ -8,6 +8,7 @@
alsa.enable = true; alsa.enable = true;
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
jack.enable = true;
}; };
environment.systemPackages = [ environment.systemPackages = [
pkgs.pwvucontrol pkgs.pwvucontrol

View file

@ -4,14 +4,15 @@
pkgs, pkgs,
... ...
}: }:
let
discord = pkgs.discord.override {
withMoonlight = true;
moonlight = inputs.moonlight.packages.${pkgs.system}.moonlight;
};
in
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = [
discord.override discord
{
withMoonlight = true;
moonlight = inputs.moonlight.packages.${pkgs.system}.moonlight;
}
vesktop
]; ];
# screen record support # screen record support
xdg = { xdg = {

View file

@ -23,6 +23,7 @@
musnix.rtcqs.enable = true; musnix.rtcqs.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
zathura zathura
qutebrowser
# music editing software # music editing software
reaper reaper
surge surge
@ -65,7 +66,7 @@
kicad kicad
ente-auth ente-auth
ente-web ente-web
jetbrains.rider # jetbrains.rider
revolt-desktop revolt-desktop
exactaudiocopy exactaudiocopy
picard picard

View file

@ -27,7 +27,7 @@
"kvm-intel" "kvm-intel"
"wl" "wl"
]; ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; # boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/4efbf111-4cbb-4e1e-b3ee-dc3fca1f6f4a"; device = "/dev/disk/by-uuid/4efbf111-4cbb-4e1e-b3ee-dc3fca1f6f4a";

View file

@ -1,18 +1,34 @@
{config, pkgs, ...}:
{ {
programs.steam = { config,
enable = true; lib,
remotePlay.openFirewall = true; pkgs,
dedicatedServer.openFirewall = true; ...
}:
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ nixpkgs.config.allowUnfreePredicate =
"steam" pkg:
"steam-original" builtins.elem (lib.getName pkg) [
"steam-run" "steam"
]; "steam-original"
"steam-run"
];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
lutris lutris
]; ];
}; systemd.extraConfig = "DefaultLimitNOFILE=524288";
security.pam.loginLimits = [
{
domain = "misschloe777";
type = "hard";
item = "nofile";
value = "524288";
}
];
};
} }

View file

@ -48,10 +48,9 @@
pkg: pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [
"nvidia" "nvidia"
"broadcom-sta"
]; ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; boot.extraModulePackages = [ ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Add your own packages here # Add your own packages here
neovim neovim
@ -68,7 +67,7 @@
# Nvidia power management. Experimental, and can cause sleep/suspend to fail. # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking # Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials. # of just the bare essentials.
powerManagement.enable = false; powerManagement.enable = false;
@ -78,9 +77,9 @@
# Use the NVidia open source kernel module (not to be confused with the # Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver). # independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of # Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at: # supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+ # Only available from driver 515.43.04+
# Currently "beta quality", so false is currently the recommended setting. # Currently "beta quality", so false is currently the recommended setting.
open = false; open = false;