restructure homelab nixfiles
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
{ config, lib, inputs, stable_pkgs, unstable_pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
stable_pkgs,
|
||||
unstable_pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../nixos
|
||||
../../../users/blake
|
||||
@@ -41,34 +46,49 @@
|
||||
};
|
||||
homelab = {
|
||||
enable = true;
|
||||
tailscale.enable = true;
|
||||
dnsmasq.enable = true;
|
||||
backups.enable = true;
|
||||
motd.enable = true;
|
||||
postfix.enable = true;
|
||||
|
||||
# services
|
||||
gitea.enable = true;
|
||||
glance.enable = true;
|
||||
immich.enable = true;
|
||||
hass.enable = true;
|
||||
jellyfin.enable = true;
|
||||
audiobookshelf.enable = true;
|
||||
yacreader.enable = true;
|
||||
qbittorrent.enable = true;
|
||||
sonarr.enable = true;
|
||||
radarr.enable = true;
|
||||
bazarr.enable = true;
|
||||
prowlarr.enable = true;
|
||||
flaresolverr.enable = true;
|
||||
zigbee2mqtt.enable = true;
|
||||
mosquitto.enable = true;
|
||||
wyoming.enable = true;
|
||||
caddy.enable = true;
|
||||
uptime-kuma.enable = true;
|
||||
vaultwarden.enable = true;
|
||||
searx.enable = true;
|
||||
|
||||
# home assistant
|
||||
home.enable = true;
|
||||
# hass.enable = true;
|
||||
# mosquitto.enable = true;
|
||||
# zigbee2mqtt.enable = true;
|
||||
|
||||
# network
|
||||
tailscale.enable = true;
|
||||
caddy.enable = true;
|
||||
dnsmasq.enable = true;
|
||||
|
||||
# mediastack
|
||||
mediastack.enable = true;
|
||||
ollama.enable = true;
|
||||
# jellyfin.enable = true;
|
||||
# audiobookshelf.enable = true;
|
||||
# yacreader.enable = true;
|
||||
# qbittorrent.enable = true;
|
||||
# sonarr.enable = true;
|
||||
# radarr.enable = true;
|
||||
# bazarr.enable = true;
|
||||
# prowlarr.enable = true;
|
||||
# flaresolverr.enable = true;
|
||||
|
||||
# system
|
||||
backups.enable = true;
|
||||
motd.enable = true;
|
||||
postfix.enable = true;
|
||||
uptime-kuma.enable = true;
|
||||
|
||||
# ai
|
||||
open-webui.enable = true;
|
||||
ollama.enable = true;
|
||||
wyoming.enable = true;
|
||||
};
|
||||
|
||||
gameservers = {
|
||||
minecraft_recpro.enable = true;
|
||||
minecraft_modded.enable = true;
|
||||
@@ -82,7 +102,7 @@
|
||||
# setup hostname and networking stack
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
fallbackDns = [ "1.1.1.1" "9.9.9.9" ];
|
||||
fallbackDns = ["1.1.1.1" "9.9.9.9"];
|
||||
dnsovertls = "opportunistic";
|
||||
};
|
||||
networking = {
|
||||
@@ -106,12 +126,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
|
||||
|
||||
# Open ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
80 # set - http
|
||||
@@ -149,11 +165,9 @@
|
||||
25567 # | | |
|
||||
];
|
||||
|
||||
networking.firewall.allowedUDPPorts = [ 51820 ];
|
||||
networking.firewall.allowedUDPPorts = [51820];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = true;
|
||||
|
||||
system.stateVersion = "25.05"; # stays here : )
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
let
|
||||
cfg = config.homelab.mediastack;
|
||||
in
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.homelab.mediastack;
|
||||
in {
|
||||
options.homelab.mediastack = {
|
||||
enable = lib.mkEnableOption "enable the mediastack";
|
||||
media_user = lib.mkOption {
|
||||
@@ -22,7 +25,6 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# the order determines the order in glance :3
|
||||
imports = [
|
||||
./bazarr
|
||||
@@ -47,15 +49,14 @@ in
|
||||
group = cfg.media_group;
|
||||
};
|
||||
};
|
||||
homelab.jellyfin.enable = lib.mkDefault true;
|
||||
homelab.yacreader.enable = lib.mkDefault true;
|
||||
homelab.qbittorrent.enable = lib.mkDefault true;
|
||||
homelab.bazarr.enable = lib.mkDefault true;
|
||||
homelab.prowlarr.enable = lib.mkDefault true;
|
||||
homelab.radarr.enable = lib.mkDefault true;
|
||||
homelab.qbittorrent.enable = lib.mkDefault true;
|
||||
homelab.sonarr.enable = lib.mkDefault true;
|
||||
homelab.yacreader.enable = lib.mkDefault true;
|
||||
homelab.audiobookshelf.enable = lib.mkDefault true;
|
||||
homelab.jellyfin.enable = lib.mkDefault true;
|
||||
homelab.flaresolverr.enable = lib.mkDefault true;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,9 +11,6 @@
|
||||
./gitea
|
||||
./immich
|
||||
./searxng
|
||||
./home/homeassistant
|
||||
./home/zigbee2mqtt
|
||||
./home/mosquitto
|
||||
./home/wyoming
|
||||
./home
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.homelab.home;
|
||||
in {
|
||||
options.homelab.home = {
|
||||
enable = lib.mkEnableOption "enable the smarthome stack";
|
||||
};
|
||||
|
||||
# the order determines the order in glance :3
|
||||
imports = [
|
||||
./homeassistant
|
||||
./zigbee2mqtt
|
||||
./mosquitto
|
||||
./wyoming
|
||||
];
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
homelab.hass.enable = lib.mkDefault true;
|
||||
homelab.mosquitto.enable = lib.mkDefault true;
|
||||
homelab.zigbee2mqtt.enable = lib.mkDefault true;
|
||||
homelab.wyoming.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
service = "searxng";
|
||||
service = "searx";
|
||||
cfg = config.homelab.${service};
|
||||
sec = config.sops.secrets;
|
||||
homelab = config.homelab;
|
||||
@@ -68,6 +68,13 @@ in {
|
||||
# declare the gitea service
|
||||
services.${service} = {
|
||||
enable = true;
|
||||
settings = {
|
||||
server.port = cfg.port;
|
||||
server.bind_address = "0.0.0.0";
|
||||
#server.secret_key = "$SEARX_SECRET_KEY";
|
||||
engines = [
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# override umask to make permissions work out
|
||||
|
||||
Reference in New Issue
Block a user