created vars.nix for jeeves and set up envvars

This commit is contained in:
Richie Cahill 2024-06-27 21:38:29 -04:00
parent e6cacdccc1
commit e0f2d2a856
8 changed files with 70 additions and 26 deletions

View File

@ -1,4 +1,7 @@
{ pkgs, ... }:
let
vars = import ./vars.nix;
in
{
imports = [
../../users/richie/global/ssh.nix
@ -43,6 +46,12 @@
mode = "0440";
};
};
variables = {
ZFS_MEDIA = vars.zfs_media;
ZFS_STORAGE = vars.zfs_storage;
ZFS_STORAGE_PLEX = vars.storage_plex;
ZFS_TORRENTING = vars.zfs_torrenting;
};
};
services = {
@ -52,7 +61,7 @@
plex = {
enable = true;
dataDir = "/zfs/media/plex/";
dataDir = vars.media_plex;
};
smartd.enable = true;
@ -63,7 +72,7 @@
syncthing.settings.folders = {
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = "/zfs/media/notes";
path = vars.media_notes;
devices = [
"bob"
"phone"
@ -73,7 +82,7 @@
};
"books" = {
id = "6uppx-vadmy"; # cspell:disable-line
path = "/zfs/storage/syncthing/books";
path = "${vars.storage_syncthing}/books";
devices = [
"bob"
"phone"
@ -83,7 +92,7 @@
};
"important" = {
id = "4ckma-gtshs"; # cspell:disable-line
path = "/zfs/storage/syncthing/important";
path = "${vars.storage_syncthing}/important";
devices = [
"bob"
"phone"
@ -93,7 +102,7 @@
};
"music" = {
id = "vprc5-3azqc"; # cspell:disable-line
path = "/zfs/storage/syncthing/music";
path = "${vars.storage_syncthing}/music";
devices = [
"bob"
"phone"
@ -103,7 +112,7 @@
};
"projects" = {
id = "vyma6-lqqrz"; # cspell:disable-line
path = "/zfs/storage/syncthing/projects";
path = "${vars.storage_syncthing}/projects";
devices = [
"bob"
"rhapsody-in-green"

View File

@ -1,10 +1,13 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers.filebrowser = {
image = "hurlenko/filebrowser";
extraOptions = [ "--network=web" ];
volumes = [
"/zfs:/data"
"/zfs/media/docker/configs/filebrowser:/config"
"${vars.media_docker_configs}/filebrowser:/config"
];
autoStart = true;
user = "1000:users";

View File

@ -1,4 +1,7 @@
{ config, ... }:
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers = {
qbit = {
@ -10,8 +13,8 @@
"29432:29432"
];
volumes = [
"/zfs/media/docker/configs/qbit:/config"
"/zfs/torrenting/qbit/:/data"
"${vars.media_docker_configs}/qbit:/config"
"${vars.torrenting_qbit}:/data"
];
environment = {
PUID = "600";
@ -31,8 +34,8 @@
"8118:8118"
];
volumes = [
"/zfs/media/docker/configs/qbitvpn:/config"
"/zfs/torrenting/qbitvpn/:/data"
"${vars.media_docker_configs}/qbitvpn:/config"
"${vars.torrenting_qbitvpn}:/data"
"/etc/localtime:/etc/localtime:ro"
];
environment = {
@ -61,7 +64,7 @@
PGID = "100";
TZ = "America/New_York";
};
volumes = [ "/zfs/media/docker/configs/prowlarr:/config" ];
volumes = [ "${vars.media_docker_configs}/prowlarr:/config" ];
autoStart = true;
};
radarr = {
@ -73,9 +76,9 @@
TZ = "America/New_York";
};
volumes = [
"/zfs/media/docker/configs/radarr:/config"
"/zfs/storage/plex/movies:/movies"
"/zfs/torrenting/qbitvpn:/data"
"${vars.media_docker_configs}/radarr:/config"
"${vars.storage_plex}/movies:/movies"
"${vars.torrenting_qbitvpn}:/data"
];
autoStart = true;
};
@ -88,9 +91,9 @@
TZ = "America/New_York";
};
volumes = [
"/zfs/media/docker/configs/sonarr:/config"
"/zfs/storage/plex/tv:/tv"
"/zfs/torrenting/qbitvpn:/data"
"${vars.media_docker_configs}/sonarr:/config"
"${vars.storage_plex}/tv:/tv"
"${vars.torrenting_qbitvpn}:/data"
];
autoStart = true;
};

View File

@ -1,4 +1,7 @@
{ config, ... }:
let
vars = import ../vars.nix;
in
{
users = {
users.postgres = {
@ -15,7 +18,7 @@
postgres = {
image = "postgres:16";
ports = [ "5432:5432" ];
volumes = [ "/zfs/media/databases/postgres:/var/lib/postgresql/data" ];
volumes = [ "${vars.media_database}/postgres:/var/lib/postgresql/data" ];
environment = {
POSTGRES_USER = "admin";
POSTGRES_DB = "archive";

View File

@ -1,9 +1,12 @@
{ config, ... }:
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers = {
grafana = {
image = "grafana/grafana-enterprise";
volumes = [ "/zfs/media/docker/configs/grafana:/var/lib/grafana" ];
volumes = [ "${vars.media_docker_configs}/grafana:/var/lib/grafana" ];
user = "600:600";
extraOptions = [ "--network=web" ];
autoStart = true;
@ -11,8 +14,8 @@
dnd_file_server = {
image = "ubuntu/apache2:latest";
volumes = [
"/zfs/media/docker/templates/file_server/sites/:/etc/apache2/sites-enabled/"
"/zfs/storage/main/Table_Top/:/data"
"${vars.media_docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/"
"${vars.storage_main}/Table_Top/:/data"
];
extraOptions = [ "--network=web" ];
autoStart = true;
@ -20,8 +23,8 @@
arch_mirror = {
image = "ubuntu/apache2:latest";
volumes = [
"/zfs/media/docker/templates/file_server/sites/:/etc/apache2/sites-enabled/"
"/zfs/media/mirror/:/data"
"${vars.media_docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/"
"${vars.media_mirror}:/data"
];
ports = [ "800:80" ];
extraOptions = [ "--network=web" ];

View File

@ -1,6 +1,6 @@
#!/bin/bash
plex_dir="/zfs/storage/plex/"
plex_dir=$ZFS_STORAGE_PLEX
chown docker-service:users -R "$plex_dir"
find "$plex_dir" -type f -exec chmod 664 {} \;

22
systems/jeeves/vars.nix Normal file
View File

@ -0,0 +1,22 @@
let
zfs_storage = "/zfs/storage";
zfs_torrenting = "/zfs/torrenting";
zfs_media = "/zfs/media";
in
{
# media
media_database = "${zfs_media}/syncthing/database";
media_docker = "${zfs_media}/docker";
media_docker_configs = "${zfs_media}/docker/configs";
media_docker_templates = "${zfs_media}/docker/templates";
media_mirror = "${zfs_media}/mirror";
media_notes = "${zfs_media}/notes";
media_plex = "${zfs_media}/plex/";
# storage
storage_main = "${zfs_storage}/main";
storage_plex = "${zfs_storage}/plex";
storage_syncthing = "${zfs_storage}/syncthing";
# torrenting
torrenting_qbit = "${zfs_torrenting}/qbit";
torrenting_qbitvpn = "${zfs_torrenting}/qbitvpn";
}

View File

@ -57,5 +57,6 @@
"github.copilot.enable": {
"*": false
},
"terminal.integrated.scrollback": 10000
"terminal.integrated.scrollback": 10000,
"diffEditor.ignoreTrimWhitespace": false
}