Compare commits

..
6 Commits
Author SHA1 Message Date
oqyude 521d922961 nextcloud update 2026-07-16 23:34:06 +03:00
oqyude e5e9dfd1de samba fixup 2026-07-16 17:33:19 +03:00
oqyude 867a3227b8 calibre fixup 2026-07-16 01:14:47 +03:00
oqyude 7e8cc45a85 nix flake update 2026-07-16 00:14:03 +03:00
oqyude 69c53ccd65 fixup for onlyoffice (disabling) 2026-07-16 00:12:52 +03:00
oqyude 536bdf801e homebox added 2026-07-15 23:08:18 +03:00
11 changed files with 146 additions and 50 deletions
Generated
+18 -18
View File
@@ -88,11 +88,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783823409, "lastModified": 1784129366,
"narHash": "sha256-OI4IkRjRXa1e7hYmCGJDPDq5H/kPwhsyoS80cNUF9fI=", "narHash": "sha256-N5JiyICSeQF14x+OQebNyPpYowOT9Rs1iKyeCylSzOA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "7566825d4652a1b885bd4ce65bd9e8def432fec9", "rev": "165228b0efefc3e635e5174020c40ea64271dc25",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -106,11 +106,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1783792734, "lastModified": 1784100666,
"narHash": "sha256-50rvY9GdFvpYDcMLcD/4cWSi0hVxArT5wsGlVsHy8eY=", "narHash": "sha256-HF/mrw5NYQfKFZgkfV2h1UL5/E3ccfsE2XJ1AbbLLJ0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "8efb4337e857949f4cfac86d12ef1066f417f31f", "rev": "fccfa9031a85b78a437f2f153c1f6449f3bc3185",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -130,11 +130,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783336371, "lastModified": 1784058842,
"narHash": "sha256-ZisTtweyb7JUwPP54HAXE9TypT8m89dIxDI36Ak0hAs=", "narHash": "sha256-3u3tvbCIAid3Mv7RrJx13jusIEQC/HeKYhO/SUSxR3A=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "a9620cfa43f0c1c30a46c31ae3c6e58cdb124a14", "rev": "24c8dc8e0f2170e1a377be24dfadc7d9d21dc1ad",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -191,11 +191,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1783868082, "lastModified": 1784147573,
"narHash": "sha256-Y3chcYsoUJp8VqLl2x1JoZZ1OktO4oYAT1F74hwvLH8=", "narHash": "sha256-HPB/v0N2fCm4zhb5NxTpdd6vB64Bi7yx80cJ3Ah6bK0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2b169ebe89d6fad56a1c84298d15f2c9ee5d8c60", "rev": "25d63b75f3246a99b53a02c18e0fa74a57817669",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -239,11 +239,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1783816212, "lastModified": 1784115452,
"narHash": "sha256-2aZisVTVGSFEk3MYcOiWQp3zvwyzbqpktB69Rcfp150=", "narHash": "sha256-BoYPdqk6jlKXy+DyUzyGV/CtRGfAhk2MmIgBhsemTGI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3b32825de172d0bc85664f495edb096b10862524", "rev": "35d3407a3816f3b341d8cf1d60abaf2b7b8166ac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -255,11 +255,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1783776592, "lastModified": 1784007870,
"narHash": "sha256-UgCQzxeWI75XM8G+hPrPh+MKzEPjG3SpAj7dtqSbksA=", "narHash": "sha256-djcLt/JJphyNt4eDY9XTly+/WbCK5lqWq9lSgCmJkkQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3", "rev": "18b9261cb3294b6d2a06d03f96872827b8fe2698",
"type": "github" "type": "github"
}, },
"original": { "original": {
+2 -2
View File
@@ -6,14 +6,14 @@
... ...
}: }:
let let
stable = import inputs.nixpkgs-calibre { stable = import inputs.nixpkgs-previous {
system = "x86_64-linux"; system = "x86_64-linux";
}; };
in in
{ {
services = { services = {
calibre-web = { calibre-web = {
# package = stable.calibre-web; package = stable.calibre-web;
enable = true; enable = true;
# dataDir = "${xlib.dirs.services-mnt-folder}/calibre-web"; # dataDir = "${xlib.dirs.services-mnt-folder}/calibre-web";
options = { options = {
+2
View File
@@ -15,6 +15,7 @@
192.168.1.20 flux.zeroq.su 192.168.1.20 flux.zeroq.su
192.168.1.20 git.zeroq.su 192.168.1.20 git.zeroq.su
192.168.1.20 glances.zeroq.su 192.168.1.20 glances.zeroq.su
192.168.1.20 homebox.home.arpa
192.168.1.20 immich.zeroq.su 192.168.1.20 immich.zeroq.su
192.168.1.20 kuma.zeroq.su 192.168.1.20 kuma.zeroq.su
192.168.1.20 nextcloud.zeroq.su 192.168.1.20 nextcloud.zeroq.su
@@ -38,6 +39,7 @@
192.168.1.20 git.home.arpa 192.168.1.20 git.home.arpa
192.168.1.20 glances.home.arpa 192.168.1.20 glances.home.arpa
192.168.1.20 home.arpa 192.168.1.20 home.arpa
192.168.1.20 homebox.home.arpa
192.168.1.20 immich.home.arpa 192.168.1.20 immich.home.arpa
192.168.1.20 kuma.home.arpa 192.168.1.20 kuma.home.arpa
192.168.1.20 nextcloud.home.arpa 192.168.1.20 nextcloud.home.arpa
+2
View File
@@ -12,11 +12,13 @@
./coredns.nix ./coredns.nix
./gitea.nix ./gitea.nix
./glances.nix ./glances.nix
./homebox.nix
./immich.nix ./immich.nix
./miniflux.nix ./miniflux.nix
./nextcloud.nix ./nextcloud.nix
./nginx.nix ./nginx.nix
./nix-serve.nix ./nix-serve.nix
# ./onlyoffice.nix
./postgresql.nix ./postgresql.nix
./samba.nix ./samba.nix
./step-ca.nix ./step-ca.nix
+1
View File
@@ -23,6 +23,7 @@
}; };
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d ${config.services.gitea.stateDir} 0755 gitea gitea -"
"z ${config.services.gitea.stateDir} 0755 gitea gitea -" "z ${config.services.gitea.stateDir} 0755 gitea gitea -"
]; ];
} }
+44
View File
@@ -0,0 +1,44 @@
{
config,
pkgs,
xlib,
...
}:
let
configDir = "${xlib.dirs.services-mnt-folder}/homebox";
varDir = "/var/lib/homebox";
in
{
services.homebox = {
enable = true;
settings = {
HBOX_WEB_HOST = "0.0.0.0";
HBOX_WEB_PORT = "7745";
HBOX_STORAGE_CONN_STRING = "file://${varDir}";
HBOX_STORAGE_PREFIX_PATH = "data";
HBOX_DATABASE_DRIVER = "sqlite3";
HBOX_DATABASE_SQLITE_PATH = "${varDir}/data/homebox.db?_pragma=busy_timeout=999&_pragma=journal_mode=WAL&_fk=1";
HBOX_OPTIONS_ALLOW_REGISTRATION = "true";
HBOX_OPTIONS_GITHUB_RELEASE_CHECK = "false";
HBOX_MODE = "production";
HOME = "${varDir}";
TMPDIR = "${varDir}/tmp";
};
};
systemd.tmpfiles.rules = [
"d ${configDir} 0755 homebox homebox -"
"z ${configDir} 0755 homebox homebox -"
];
fileSystems = {
"${varDir}" = {
device = "${configDir}";
fsType = "none";
options = [
"bind"
"nofail"
];
};
};
}
+2 -28
View File
@@ -1,8 +1,8 @@
{ {
config, config,
inputs,
lib, lib,
pkgs, pkgs,
inputs,
xlib, xlib,
... ...
}: }:
@@ -56,7 +56,7 @@ in
}; };
nextcloud = { nextcloud = {
enable = true; enable = true;
package = pkgs.nextcloud33; package = pkgs.nextcloud34;
hostName = "nextcloud.private"; hostName = "nextcloud.private";
database.createLocally = true; database.createLocally = true;
home = "${xlib.dirs.services-mnt-folder}/nextcloud"; home = "${xlib.dirs.services-mnt-folder}/nextcloud";
@@ -170,16 +170,6 @@ in
# }; # };
# }; # };
# }; # };
onlyoffice = {
enable = true;
package = previous.onlyoffice-documentserver;
hostname = "office.home.arpa";
port = 8090;
allowLocalConnections = true;
wopi = true;
jwtSecretFile = config.sops.secrets.onlyoffice-jwt.path;
securityNonceFile = config.sops.secrets.onlyoffice-nonce.path;
};
}; };
# fonts.packages = [ work.corefonts ]; # fonts.packages = [ work.corefonts ];
@@ -240,22 +230,6 @@ in
group = "nextcloud"; group = "nextcloud";
mode = "0650"; mode = "0650";
}; };
onlyoffice-nonce = {
format = "yaml";
key = "nonce";
sopsFile = ./secrets/onlyoffice.yaml;
owner = "onlyoffice";
group = "onlyoffice";
mode = "0650";
};
onlyoffice-jwt = {
format = "yaml";
key = "jwt";
sopsFile = ./secrets/onlyoffice.yaml;
owner = "onlyoffice";
group = "onlyoffice";
mode = "0650";
};
nextcloud-talk-secret = { nextcloud-talk-secret = {
format = "yaml"; format = "yaml";
key = "nextcloud-talk-secret"; key = "nextcloud-talk-secret";
+10
View File
@@ -77,6 +77,16 @@ in
client_max_body_size 5G; client_max_body_size 5G;
''; '';
}; };
"homebox.home.arpa" = {
forceSSL = true;
enableACME = true;
locations = {
"/" = {
proxyPass = "http://127.0.0.1:7745";
proxyWebsockets = true;
};
};
};
"nextcloud.home.arpa" = { "nextcloud.home.arpa" = {
forceSSL = true; forceSSL = true;
enableACME = true; enableACME = true;
+45
View File
@@ -0,0 +1,45 @@
{
config,
inputs,
lib,
pkgs,
xlib,
...
}:
let
previous = import inputs.nixpkgs-master {
system = "x86_64-linux";
config.allowUnfree = true;
config.allowUnfreePredicate = true;
};
in
{
services.onlyoffice = {
enable = true;
# package = previous.onlyoffice-documentserver;
hostname = "office.home.arpa";
port = 8090;
allowLocalConnections = true;
wopi = true;
jwtSecretFile = config.sops.secrets.onlyoffice-jwt.path;
securityNonceFile = config.sops.secrets.onlyoffice-nonce.path;
};
sops.secrets = {
onlyoffice-nonce = {
format = "yaml";
key = "nonce";
sopsFile = ./secrets/onlyoffice.yaml;
owner = "onlyoffice";
group = "onlyoffice";
mode = "0650";
};
onlyoffice-jwt = {
format = "yaml";
key = "jwt";
sopsFile = ./secrets/onlyoffice.yaml;
owner = "onlyoffice";
group = "onlyoffice";
mode = "0650";
};
};
}
+7 -1
View File
@@ -1,9 +1,15 @@
{ {
config, config,
inputs,
pkgs, pkgs,
xlib, xlib,
... ...
}: }:
let
stable = import inputs.nixpkgs-master {
system = "x86_64-linux";
};
in
{ {
services = { services = {
samba-wsdd = { samba-wsdd = {
@@ -14,7 +20,7 @@
}; };
samba = { samba = {
enable = true; enable = true;
package = pkgs.samba4Full; # package = pkgs.samba4Full;
nmbd = { nmbd = {
enable = true; enable = true;
}; };
+13 -1
View File
@@ -49,6 +49,10 @@ in
proxyPass = "http://localhost:2096"; proxyPass = "http://localhost:2096";
proxyWebsockets = true; proxyWebsockets = true;
}; };
"/clash/" = {
proxyPass = "http://localhost:2096";
proxyWebsockets = true;
};
}; };
}; };
"kuma.zeroq.su" = { "kuma.zeroq.su" = {
@@ -75,6 +79,14 @@ in
proxyWebsockets = true; proxyWebsockets = true;
}; };
}; };
"homebox.zeroq.su" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://${server}:7745";
proxyWebsockets = true;
};
};
# "agent.zeroq.su" = { # "agent.zeroq.su" = {
# forceSSL = true; # forceSSL = true;
# enableACME = true; # enableACME = true;
@@ -123,7 +135,7 @@ in
forceSSL = true; forceSSL = true;
enableACME = true; enableACME = true;
locations."/" = { locations."/" = {
proxyPass = "http://${server}:4096"; proxyPass = "http://${server}:6061";
proxyWebsockets = true; proxyWebsockets = true;
}; };
}; };