This commit is contained in:
2025-08-08 22:33:10 +03:00
parent 310f41d9eb
commit 90e9707d27
17 changed files with 69 additions and 56 deletions
+2 -1
View File
@@ -2,10 +2,11 @@
config,
lib,
pkgs,
xlib,
...
}:
{
services = {
tailscale.enable = config.xlib.device.type != "wsl"; # true, if not wsl
tailscale.enable = xlib.device.type != "wsl"; # true, if not wsl
};
}
+3 -2
View File
@@ -1,14 +1,15 @@
{
config,
xlib,
...
}:
{
services.calibre-web = {
enable = true;
group = "users";
user = "${config.xlib.device.username}";
user = "${xlib.device.username}";
options = {
calibreLibrary = "${config.xlib.dirs.calibre-library}";
calibreLibrary = "${xlib.dirs.calibre-library}";
enableBookUploading = true;
enableKepubify = false;
};
+5 -4
View File
@@ -2,16 +2,17 @@
config,
lib,
pkgs,
xlib,
...
}:
{
services = {
cloudflared = {
enable = false;
certificateFile = "${config.xlib.dirs.server-credentials}/cloudflared/cert.pem";
certificateFile = "${xlib.dirs.server-credentials}/cloudflared/cert.pem";
tunnels = {
"58b340ee-e98a-4af9-b786-74600c71f49e" = {
credentialsFile = "${config.xlib.dirs.server-credentials}/cloudflared/server.json";
credentialsFile = "${xlib.dirs.server-credentials}/cloudflared/server.json";
warp-routing.enabled = true;
ingress = {
"immich.zeroq.ru" = {
@@ -24,7 +25,7 @@
default = "http_status:404";
};
# "58b340ee-e98a-4af9-b786-74600c71f49e" = {
# credentialsFile = "${config.xlib.dirs.server-credentials}/cloudflared/server.json";
# credentialsFile = "${xlib.dirs.server-credentials}/cloudflared/server.json";
# warp-routing.enabled = true;
# ingress = {
# "nextcloud.zeroq.ru" = {
@@ -56,7 +57,7 @@
# ];
# wantedBy = [ "multi-user.target" ];
# serviceConfig = {
# ExecStart = "${pkgs.cloudflared}/bin/cloudflared tunnel --no-autoupdate --config=${config.xlib.dirs.server-credentials}/cloudflared/config.yaml --origincert=${config.xlib.dirs.server-credentials}/cloudflared/cert.pem --credentials-file=${config.xlib.dirs.server-credentials}/cloudflared/server.json run";
# ExecStart = "${pkgs.cloudflared}/bin/cloudflared tunnel --no-autoupdate --config=${xlib.dirs.server-credentials}/cloudflared/config.yaml --origincert=${xlib.dirs.server-credentials}/cloudflared/cert.pem --credentials-file=${xlib.dirs.server-credentials}/cloudflared/server.json run";
# Group = "root";
# User = "root";
# Restart = "on-failure";
+2 -1
View File
@@ -3,6 +3,7 @@
lib,
pkgs,
inputs,
xlib,
...
}:
{
@@ -20,7 +21,7 @@
};
fileSystems."${config.services.immich.mediaLocation}" = {
device = "${config.xlib.dirs.immich-folder}";
device = "${xlib.dirs.immich-folder}";
options = [
"bind"
#"uid=1000"
+2 -1
View File
@@ -3,6 +3,7 @@
lib,
pkgs,
inputs,
xlib,
...
}:
{
@@ -76,7 +77,7 @@
};
fileSystems."/mnt/nextcloud" = {
device = "${config.xlib.dirs.nextcloud-folder}";
device = "${xlib.dirs.nextcloud-folder}";
options = [
"bind"
#"uid=1000"
+8 -7
View File
@@ -1,5 +1,6 @@
{
config,
xlib,
...
}:
{
@@ -15,19 +16,19 @@
"path" = "/etc/nixos";
"browseable" = "yes";
"read only" = "no";
"valid users" = "${config.xlib.device.username}";
"valid users" = "${xlib.device.username}";
"guest ok" = "no";
"writable" = "yes";
"create mask" = 755;
"directory mask" = 755;
"force user" = "${config.xlib.device.username}";
"force user" = "${xlib.device.username}";
"force group" = "users";
};
root = {
"path" = "/";
"browseable" = "yes";
"read only" = "no";
"valid users" = "${config.xlib.device.username}";
"valid users" = "${xlib.device.username}";
"guest ok" = "no";
"writable" = "yes";
#"create mask" = 0644;
@@ -35,16 +36,16 @@
"force user" = "root";
"force group" = "root";
};
"${config.xlib.device.username}" = {
"path" = "${config.xlib.dirs.server-home}";
"${xlib.device.username}" = {
"path" = "${xlib.dirs.server-home}";
"browseable" = "yes";
"read only" = "no";
"valid users" = "${config.xlib.device.username}";
"valid users" = "${xlib.device.username}";
"guest ok" = "no";
"writable" = "yes";
"create mask" = 700;
"directory mask" = 700;
"force user" = "${config.xlib.device.username}";
"force user" = "${xlib.device.username}";
"force group" = "users";
};
};
+4 -3
View File
@@ -1,5 +1,6 @@
{
config,
xlib,
...
}:
{
@@ -7,9 +8,9 @@
enable = true;
systemService = true;
guiAddress = "0.0.0.0:8384";
configDir = "${config.xlib.dirs.storage}/Syncthing/${config.xlib.device.hostname}";
dataDir = "${config.xlib.dirs.server-home}";
configDir = "${xlib.dirs.storage}/Syncthing/${xlib.device.hostname}";
dataDir = "${xlib.dirs.server-home}";
group = "users";
user = "${config.xlib.device.username}";
user = "${xlib.device.username}";
};
}
+3 -2
View File
@@ -2,6 +2,7 @@
config,
lib,
pkgs,
xlib,
...
}:
{
@@ -12,8 +13,8 @@
#after = [ ];
requisite = [ "mnt-archive.mount" ]; # hard-code
script = ''
${pkgs.rsync}/bin/rsync -rtv --delete ${config.xlib.dirs.immich-folder}/ ${config.xlib.dirs.archive-drive}/Services/immich/
${pkgs.rsync}/bin/rsync -rtv --delete ${config.xlib.dirs.nextcloud-folder}/ ${config.xlib.dirs.archive-drive}/Services/nextcloud/
${pkgs.rsync}/bin/rsync -rtv --delete ${xlib.dirs.immich-folder}/ ${xlib.dirs.archive-drive}/Services/immich/
${pkgs.rsync}/bin/rsync -rtv --delete ${xlib.dirs.nextcloud-folder}/ ${xlib.dirs.archive-drive}/Services/nextcloud/
'';
serviceConfig = {
Type = "oneshot";
+5 -4
View File
@@ -1,19 +1,20 @@
{
config,
pkgs,
xlib,
...
}:
{
services.transmission = {
enable = false;
#credentialsFile = "${config.xlib.dirs.server-home}/server/transmission/settings.json";
#credentialsFile = "${xlib.dirs.server-home}/server/transmission/settings.json";
openRPCPort = true;
package = pkgs.transmission_4;
user = "${config.xlib.device.username}";
user = "${xlib.device.username}";
group = "users";
settings = {
download-dir = "${config.xlib.dirs.server-home}/Downloads";
incomplete-dir = "${config.xlib.dirs.server-home}/Downloads/Temp";
download-dir = "${xlib.dirs.server-home}/Downloads";
incomplete-dir = "${xlib.dirs.server-home}/Downloads/Temp";
incomplete-dir-enabled = true;
rpc-bind-address = "0.0.0.0";
rpc-port = 9091;
+2 -2
View File
@@ -1,8 +1,8 @@
{ inputs, ... }@flakeContext:
{
config,
lib,
pkgs,
xlib,
...
}:
{
@@ -15,7 +15,7 @@
# HSA_OVERRIDE_GFX_VERSION = "11.5.0";
# HCC_AMDGPU_TARGET = "gfx1150"; # used to be necessary, but doesn't seem to anymore
# };
# user = "ollama"; # "${config.xlib.device.username}";
# user = "ollama"; # "${xlib.device.username}";
# group = "ollama";
# acceleration = "rocm";
# rocmOverrideGfx = "11.5.0";
@@ -1,8 +1,8 @@
{ inputs, ... }@flakeContext:
{
config,
lib,
pkgs,
xlib,
...
}:
let
@@ -38,12 +38,12 @@ let
in
{
systemd.tmpfiles.rules = [
"z /mnt/beets 0700 ${config.xlib.device.username} users -" # beets absolute paths
"z /mnt/beets 0700 ${xlib.device.username} users -" # beets absolute paths
];
users = {
users = {
"${config.xlib.device.username}" = {
"${xlib.device.username}" = {
packages = [
beetsEnv
pkgs.beets