This commit is contained in:
2026-03-23 18:22:21 +03:00
parent 6297df804e
commit c8c7c68c04
18 changed files with 225 additions and 203 deletions
+9 -12
View File
@@ -53,7 +53,9 @@ in
wget
tree
dust
flow-control
tuckr
fresh-editor
#flow-control
# Net Diagnostic
mtr
@@ -86,24 +88,19 @@ in
# To save
tuios
# Test
bluetui
jocalsend
lazydocker
dtop
tlrc
lazyssh
mcat
framework-tool-tui
bluetui
snitch
devenv
whosthere
devenv
# tree-sitter
tree-sitter-grammars.tree-sitter-nix
fresh-editor
tuckr
# Test
# lazydocker
# dtop
# framework-tool-tui
];
};
environment.variables.EDITOR = "fresh";
+1 -1
View File
@@ -32,7 +32,7 @@
connect-timeout = 4;
auto-optimise-store = true;
fallback = true;
allow-import-from-derivation = false;
allow-import-from-derivation = true;
keep-derivations = false;
keep-outputs = false;
experimental-features = [
+2 -2
View File
@@ -6,13 +6,13 @@
...
}:
let
stable = import inputs.nixpkgs-beets {
stable = import inputs.nixpkgs-calibre {
system = "x86_64-linux";
};
in
{
services.calibre-web = {
# package = stable.calibre-web;
package = stable.calibre-web;
enable = true;
# dataDir = "${xlib.dirs.services-mnt-folder}/calibre-web";
options = {
-4
View File
@@ -22,10 +22,6 @@ in
accelerationDevices = null;
machine-learning.enable = true;
mediaLocation = "${xlib.dirs.services-mnt-folder}/immich";
database = {
enableVectors = false;
enableVectorChord = true;
};
};
};
+5 -5
View File
@@ -18,14 +18,14 @@ in
nextcloud-whiteboard-server = {
enable = true;
settings = {
NEXTCLOUD_URL = "http://nextcloud.local";
NEXTCLOUD_URL = "http://nextcloud-private.local";
};
secrets = [ "${inputs.zeroq-credentials}/services/nextcloud/jwt-secret.txt" ];
};
nextcloud = {
enable = true;
package = pkgs.nextcloud33;
hostName = "nextcloud.local";
hostName = "nextcloud-private.local";
database.createLocally = true;
home = "${xlib.dirs.services-mnt-folder}/nextcloud";
configureRedis = true;
@@ -49,11 +49,12 @@ in
"192.168.1.20"
"localhost"
"nextcloud.local"
"nextcloud-private.local"
];
trusted_proxies = [
"100.64.1.0"
];
overwriteprotocol = "https";
overwriteprotocol = "";
};
extraAppsEnable = true;
appstoreEnable = false;
@@ -86,7 +87,6 @@ in
impersonate
mail
music
#tasks?
tasks
# news
notes
@@ -142,7 +142,7 @@ in
# fonts.packages = [ work.corefonts ];
networking.hosts = {
"localhost" = [ "nextcloud.local" ];
"localhost" = [ "nextcloud-private.local" ];
};
systemd.services.nextcloud-config-collabora =
+108 -60
View File
@@ -5,6 +5,9 @@
xlib,
...
}:
let
server = "192.168.1.20";
in
{
services = {
nginx = {
@@ -14,84 +17,129 @@
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts = {
"nextcloud-private.local" = {
forceSSL = false;
enableACME = false;
listen = [
{
addr = "100.64.0.0";
port = 10000;
}
{
addr = "192.168.1.20";
port = 10000;
}
];
};
"nextcloud.local" = {
forceSSL = false;
enableACME = false;
listen = [
{
addr = "100.64.0.0";
port = 10000;
}
{
addr = "192.168.1.20";
port = 10000;
}
];
locations = {
"/" = {
proxyPass = "http://${server}:10000";
proxyWebsockets = true;
};
"/whiteboard" = {
proxyPass = "http://${server}:3002";
proxyWebsockets = true;
};
};
extraConfig = ''
client_max_body_size 5G;
'';
};
# "localhost:19999" = {
# forceSSL = false;
# enableACME = false;
# listen = [
# {
# addr = "100.64.0.0";
# port = 19999;
# }
# {
# addr = "192.168.1.20";
# port = 19999;
# }
# ];
# };
"zeroq.local" = {
"kuma.local" = {
forceSSL = false;
enableACME = false;
root = pkgs.writeTextDir "index.html" ''
<!doctype html>
<html>
<body>
<pre>This server is running in backend.</pre>
</body>
</html>
'';
listen = [
{
addr = "100.64.0.0";
port = 80;
}
{
addr = "192.168.1.20";
port = 80;
}
];
locations."/" = {
proxyPass = "http://${server}:4001";
proxyWebsockets = true;
};
};
# "localhost:8000" = {
"health.local" = {
forceSSL = false;
enableACME = false;
locations."/" = {
proxyPass = "http://${server}:19999";
proxyWebsockets = true;
};
};
"agent.local" = {
forceSSL = false;
enableACME = false;
locations."/" = {
proxyPass = "http://${server}:3000";
proxyWebsockets = true;
};
};
"flux.local" = {
forceSSL = false;
enableACME = false;
locations."/" = {
proxyPass = "http://${server}:6061";
proxyWebsockets = true;
};
};
"immich.local" = {
forceSSL = false;
enableACME = false;
locations."/" = {
proxyPass = "http://${server}:2283";
proxyWebsockets = true;
};
extraConfig = ''
client_max_body_size 5G;
'';
};
"office.local" = {
enableACME = false;
forceSSL = false;
locations = {
"/" = {
proxyPass = "http://${server}:9980";
proxyWebsockets = true;
};
};
extraConfig = ''
client_max_body_size 5G;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
''; # absolute_redirect off;
};
"calibre.local" = {
forceSSL = false;
enableACME = false;
locations."/" = {
proxyPass = "http://${server}:8083";
proxyWebsockets = true;
};
extraConfig = ''
client_max_body_size 5G;
'';
};
# "zeroq.local" = {
# forceSSL = false;
# enableACME = false;
# root = pkgs.writeTextDir "index.html" ''
# <!doctype html>
# <html>
# <body>
# <pre>This server is running in backend.</pre>
# </body>
# </html>
# '';
# listen = [
# {
# addr = "100.64.0.0";
# port = 9980;
# port = 80;
# }
# {
# addr = "192.168.1.20";
# port = 9980;
# port = 80;
# }
# ];
# };
# "office.zeroq.ru" = {
# forceSSL = false;
# enableACME = false;
# locations."/" = {
# proxyPass = "http://onlyoffice.local:8000";
# proxyWebsockets = true;
# };
# extraConfig = ''
# # Force nginx to return relative redirects. This lets the browser
# # figure out the full URL. This ends up working better because it's in
# # front of the reverse proxy and has the right protocol, hostname & port.
# absolute_redirect off;
# '';
# };
};
};
};
+3
View File
@@ -6,6 +6,9 @@
{
services.samba = {
enable = true;
nmbd = {
enable = false;
};
settings = {
global = {
"invalid users" = [ ];
+1
View File
@@ -6,6 +6,7 @@
imports = [
../containers/3x-ui.nix
./nginx.nix
./samba.nix
# ./xray.nix
# ./netbird.nix
];
+5 -7
View File
@@ -45,6 +45,10 @@ in
proxyPass = "http://localhost:2096";
proxyWebsockets = true;
};
"/subsjs/" = {
proxyPass = "http://localhost:2096";
proxyWebsockets = true;
};
};
};
"kuma.zeroq.ru" = {
@@ -54,9 +58,6 @@ in
proxyPass = "http://${server}:4001";
proxyWebsockets = true;
};
extraConfig = ''
client_max_body_size 5G;
'';
};
"health.zeroq.ru" = {
forceSSL = true;
@@ -117,16 +118,13 @@ in
proxyPass = "http://${server}:6061";
proxyWebsockets = true;
};
extraConfig = ''
client_max_body_size 5G;
'';
};
"office.zeroq.ru" = {
enableACME = true;
forceSSL = true;
locations = {
"/" = {
proxyPass = "http://${server}:9980"; # API и coauthoring
proxyPass = "http://${server}:9980";
proxyWebsockets = true;
};
};
+56
View File
@@ -0,0 +1,56 @@
{
config,
xlib,
...
}:
{
services.samba = {
enable = true;
nmbd = {
enable = false;
};
settings = {
global = {
"invalid users" = [ ];
"passwd program" = "/run/wrappers/bin/passwd %u";
security = "user";
};
nixos = {
"path" = "/etc/nixos";
"browseable" = "yes";
"read only" = "no";
"valid users" = "${xlib.device.username}";
"guest ok" = "no";
"writable" = "yes";
"create mask" = 755;
"directory mask" = 755;
"force user" = "${xlib.device.username}";
"force group" = "users";
};
root = {
"path" = "/";
"browseable" = "yes";
"read only" = "no";
"valid users" = "${xlib.device.username}";
"guest ok" = "no";
"writable" = "yes";
#"create mask" = 0644;
#"directory mask" = 0644;
"force user" = "root";
"force group" = "root";
};
"${xlib.device.username}" = {
"path" = "/home/${xlib.device.username}";
"browseable" = "yes";
"read only" = "no";
"valid users" = "${xlib.device.username}";
"guest ok" = "no";
"writable" = "yes";
"create mask" = 700;
"directory mask" = 700;
"force user" = "${xlib.device.username}";
"force group" = "users";
};
};
};
}
+1 -1
View File
@@ -13,7 +13,7 @@
#../server/open-webui.nix
#../services/tts.nix
];
environment.systemPackages = [
environment.systemPackages = [
pkgs.rovr
];
}