mirror of
https://github.com/harryssecret/homelab-nix.git
synced 2025-02-23 06:43:57 +01:00
more -arr config
This commit is contained in:
parent
8b4d6f027e
commit
314b039790
|
@ -6,6 +6,7 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
ip = "192.168.1.207";
|
ip = "192.168.1.207";
|
||||||
|
gateway = "192.168.1.1";
|
||||||
driveMountPoint = "/mnt/hdd1";
|
driveMountPoint = "/mnt/hdd1";
|
||||||
authentik-version = "2024.2.3";
|
authentik-version = "2024.2.3";
|
||||||
authentik-nix-src = builtins.fetchTarball {
|
authentik-nix-src = builtins.fetchTarball {
|
||||||
|
@ -15,17 +16,6 @@ let
|
||||||
authentik-nix = import authentik-nix-src;
|
authentik-nix = import authentik-nix-src;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# mounting external hard drives !
|
|
||||||
fileSystems."/mnt/hdd1" = {
|
|
||||||
device = "/dev/disk/by-uuid/008e5b16-5620-4fd5-a506-ef8d9bdec0c7";
|
|
||||||
fsType = "ext4";
|
|
||||||
options = [
|
|
||||||
"defaults"
|
|
||||||
"nofail"
|
|
||||||
"rw"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# setting up networking!!
|
# setting up networking!!
|
||||||
networking = {
|
networking = {
|
||||||
interfaces = {
|
interfaces = {
|
||||||
|
@ -37,7 +27,7 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultGateway = "192.168.1.1";
|
defaultGateway = gateway;
|
||||||
nameservers = [
|
nameservers = [
|
||||||
"1.1.1.1"
|
"1.1.1.1"
|
||||||
"1.0.0.1"
|
"1.0.0.1"
|
||||||
|
@ -56,6 +46,18 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
users.groups.multimedia = {
|
||||||
|
members = [
|
||||||
|
"slskd"
|
||||||
|
"radarr"
|
||||||
|
"readarr"
|
||||||
|
"sonarr"
|
||||||
|
"transmission"
|
||||||
|
"jellyfin"
|
||||||
|
"cypherpunk"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# enable samba
|
# enable samba
|
||||||
services.samba = {
|
services.samba = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -69,7 +71,7 @@ in
|
||||||
'';
|
'';
|
||||||
shares = {
|
shares = {
|
||||||
music = {
|
music = {
|
||||||
path = "${driveMountPoint}/Music";
|
path = "${driveMountPoint}/Musique";
|
||||||
browseable = "yes";
|
browseable = "yes";
|
||||||
"read only" = "no";
|
"read only" = "no";
|
||||||
"create mask" = "0644";
|
"create mask" = "0644";
|
||||||
|
@ -93,16 +95,25 @@ in
|
||||||
sops.age.keyFile = "/var/lib/sops-nix/key.txt";
|
sops.age.keyFile = "/var/lib/sops-nix/key.txt";
|
||||||
sops.age.generateKey = true;
|
sops.age.generateKey = true;
|
||||||
|
|
||||||
sops.secrets."searx.env" = {
|
# define your secrets with
|
||||||
|
# `nix-shell -p sops --run "sops ./secrets/yoursecret.env"`
|
||||||
|
|
||||||
|
sops.secrets."searx" = {
|
||||||
sopsFile = ./secrets/searx.env;
|
sopsFile = ./secrets/searx.env;
|
||||||
format = "dotenv";
|
format = "dotenv";
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.secrets."slskd.env" = {
|
sops.secrets."slskd" = {
|
||||||
sopsFile = ./secrets/slskd.env;
|
sopsFile = ./secrets/slskd.env;
|
||||||
format = "dotenv";
|
format = "dotenv";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sops.secrets."authentik" = {
|
||||||
|
sopsFile = ./secrets/authentik.env;
|
||||||
|
format = "dotenv";
|
||||||
|
disable_startup_analytics = true;
|
||||||
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
jellyfin
|
jellyfin
|
||||||
jellyfin-web
|
jellyfin-web
|
||||||
|
@ -124,6 +135,7 @@ in
|
||||||
user = "cypherpunk";
|
user = "cypherpunk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# -arr suite
|
||||||
services.sonarr = {
|
services.sonarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
@ -139,19 +151,6 @@ in
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.slskd = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
environmentFile = config.sops.secrets."slskd.env".path;
|
|
||||||
domain = null;
|
|
||||||
settings = {
|
|
||||||
shares.directories = [ "${driveMountPoint}/Music" ];
|
|
||||||
soulseek.description = "i luv katz n mewsik";
|
|
||||||
directories.files.downloads = "${driveMountPoint}/Music/clean";
|
|
||||||
directories.files.incomplete = "${driveMountPoint}/Music/incomplete";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.prowlarr = {
|
services.prowlarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
@ -162,21 +161,38 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# torrenting apps
|
||||||
services.transmission = {
|
services.transmission = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
openRPCPort = true;
|
openRPCPort = true;
|
||||||
|
credentialsFile = "";
|
||||||
settings = {
|
settings = {
|
||||||
rpc-bind-address = "0.0.0.0";
|
rpc-bind-address = "0.0.0.0";
|
||||||
rpc-whitelist-enabled = false;
|
rpc-whitelist-enabled = false;
|
||||||
|
rpc-authentication-required = true;
|
||||||
download-dir = "${driveMountPoint}/Torrents";
|
download-dir = "${driveMountPoint}/Torrents";
|
||||||
|
ratio-limit-enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.slskd = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
environmentFile = config.sops.secrets."slskd".path;
|
||||||
|
domain = null;
|
||||||
|
settings = {
|
||||||
|
shares.directories = [ "${driveMountPoint}/Music" ];
|
||||||
|
soulseek.description = "i luv katz n mewsik";
|
||||||
|
directories.files.downloads = "${driveMountPoint}/Music/clean";
|
||||||
|
directories.files.incomplete = "${driveMountPoint}/Music/incomplete";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.searx = {
|
services.searx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
server.secret_key = builtins.toJSON config.sops.secrets."searx.env";
|
server.secret_key = builtins.toJSON config.sops.secrets."searx";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -188,35 +204,56 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.caddy = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts."localhost".extraConfig = ''
|
||||||
|
reverse_proxy :8082
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
services.authentik = {
|
services.authentik = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
environmentFile = config.sops.secrets."authentik".path;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.photoprism = {
|
services.photoprism = {
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
originalsPath = "/mnt/hdd1/photoprism";
|
|
||||||
settings = {
|
settings = {
|
||||||
PHOTOPRISM_DEFAULT_LOCALE = "fr";
|
PHOTOPRISM_DEFAULT_LOCALE = "fr";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
# docker containers, for apps that aren't avaiable on Nix. (yet)
|
||||||
virtualisation.oci-containers = {
|
virtualisation.oci-containers = {
|
||||||
backend = "docker";
|
backend = "docker";
|
||||||
containers = {
|
containers = {
|
||||||
flaresolverr = {
|
flaresolverr = {
|
||||||
ports = [ "8181:8181" ];
|
ports = [ "8181:8181" ];
|
||||||
image = "ghcr.io/flaresolverr/flaresolverr:latest";
|
image = "ghcr.io/flaresolverr/flaresolverr:latest";
|
||||||
environment = { };
|
environment = {
|
||||||
|
"LOG_LEVEL" = "info";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
crafty-controller = {
|
||||||
|
image = "registry.gitlab.com/crafty-controller/crafty-4:latest";
|
||||||
|
ports = [
|
||||||
|
"8443:8443"
|
||||||
|
"8123:8123"
|
||||||
|
"19132:19132/udp"
|
||||||
|
"25500-25600:25500-25600"
|
||||||
|
];
|
||||||
|
volumes = [ ];
|
||||||
|
environment = {
|
||||||
|
"TZ" = "Europe/Paris";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.homepage-dashboard = {
|
services.homepage-dashboard = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
|
||||||
services = [
|
services = [
|
||||||
{
|
{
|
||||||
"Divertissement" = [
|
"Divertissement" = [
|
||||||
|
@ -229,7 +266,7 @@ in
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"calibre-web" = {
|
"calibre-web" = {
|
||||||
icon = "calibre";
|
icon = "Calibre";
|
||||||
description = "Serveur de livres";
|
description = "Serveur de livres";
|
||||||
href = "http://${ip}:8083";
|
href = "http://${ip}:8083";
|
||||||
};
|
};
|
||||||
|
@ -240,7 +277,7 @@ in
|
||||||
"Téléchargement" = [
|
"Téléchargement" = [
|
||||||
{
|
{
|
||||||
"Jellyseerr" = {
|
"Jellyseerr" = {
|
||||||
icon = "jellyseerr";
|
icon = "Jellyseerr";
|
||||||
description = "Moteur de recherche de films/séries";
|
description = "Moteur de recherche de films/séries";
|
||||||
href = "http://${ip}:5055";
|
href = "http://${ip}:5055";
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue