Compare commits
3 Commits
b3b8ffd90f
...
test
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c726db73a | |||
| b5aa64e74a | |||
| d7c765b80e |
162
flake.lock
generated
162
flake.lock
generated
@@ -21,6 +21,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"blobs": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1604995301,
|
||||||
|
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
|
||||||
|
"owner": "simple-nixos-mailserver",
|
||||||
|
"repo": "blobs",
|
||||||
|
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "simple-nixos-mailserver",
|
||||||
|
"repo": "blobs",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"colmena": {
|
"colmena": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
@@ -49,11 +65,11 @@
|
|||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768336726,
|
"lastModified": 1769889994,
|
||||||
"narHash": "sha256-Os4qn0S0bv7MauXGz16ozyOYZuMrA2FJuXNjDnr5yps=",
|
"narHash": "sha256-uEn3WcpPHe3sMJMgIJ0XW3f4/+TRzZpNgv4vu5/gjmA=",
|
||||||
"owner": "9001",
|
"owner": "9001",
|
||||||
"repo": "copyparty",
|
"repo": "copyparty",
|
||||||
"rev": "c46cd7f57a8ae3b121866485c91ec078c4dd970e",
|
"rev": "9b436eb52e5cfe7a0a8e59dd9f1a37351f3a2abd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -91,11 +107,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766150702,
|
"lastModified": 1769524058,
|
||||||
"narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
|
"narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
|
"rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -136,6 +152,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761588595,
|
||||||
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659877975,
|
"lastModified": 1659877975,
|
||||||
@@ -166,21 +198,51 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"git-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"flake-compat": [
|
||||||
|
"simple-mailserver",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"simple-mailserver",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1763988335,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh+M4Qc=",
|
||||||
"owner": "numtide",
|
"owner": "cachix",
|
||||||
"repo": "flake-utils",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "50b9238891e388c9fdc6a5c49e49c42533a1b5ce",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "cachix",
|
||||||
"repo": "flake-utils",
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"simple-mailserver",
|
||||||
|
"git-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -229,15 +291,15 @@
|
|||||||
"nix-minecraft": {
|
"nix-minecraft": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-utils": "flake-utils_3",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs": "nixpkgs_4"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767838769,
|
"lastModified": 1770000653,
|
||||||
"narHash": "sha256-KCLU6SUU80tEBKIVZsBrSjRYX6kn1eVIYI3fEEqOp24=",
|
"narHash": "sha256-QO/twGynxjOSUDtxbqJLshc/Q5/wImLH5O6KV2p9eoE=",
|
||||||
"owner": "Infinidoge",
|
"owner": "Infinidoge",
|
||||||
"repo": "nix-minecraft",
|
"repo": "nix-minecraft",
|
||||||
"rev": "4da21f019f6443f513f16af7f220ba4db1cdfc04",
|
"rev": "6a2ddb643aaf7949caa6158e718c5efc3dda7dc1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -295,11 +357,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748929857,
|
"lastModified": 1769461804,
|
||||||
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
|
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -311,16 +373,16 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767313136,
|
"lastModified": 1770136044,
|
||||||
"narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=",
|
"narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d",
|
"rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -340,6 +402,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1764374374,
|
||||||
|
"narHash": "sha256-naS7hg/D1yLKSZoENx9gvsPLFiNEOTcqamJSu0OEvCA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6a49303095abc094ee77dc243a9e351b642e8e75",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable-small",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736549401,
|
"lastModified": 1736549401,
|
||||||
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
|
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
|
||||||
@@ -364,6 +442,7 @@
|
|||||||
"nix-minecraft": "nix-minecraft",
|
"nix-minecraft": "nix-minecraft",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"shoblog-front": "shoblog-front",
|
"shoblog-front": "shoblog-front",
|
||||||
|
"simple-mailserver": "simple-mailserver",
|
||||||
"testing-grounds": "testing-grounds",
|
"testing-grounds": "testing-grounds",
|
||||||
"unstable": "unstable"
|
"unstable": "unstable"
|
||||||
}
|
}
|
||||||
@@ -386,6 +465,27 @@
|
|||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"simple-mailserver": {
|
||||||
|
"inputs": {
|
||||||
|
"blobs": "blobs",
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
|
"nixpkgs": "nixpkgs_7"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766321686,
|
||||||
|
"narHash": "sha256-icOWbnD977HXhveirqA10zoqvErczVs3NKx8Bj+ikHY=",
|
||||||
|
"owner": "simple-nixos-mailserver",
|
||||||
|
"repo": "nixos-mailserver",
|
||||||
|
"rev": "7d433bf89882f61621f95082e90a4ab91eb0bdd3",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "simple-nixos-mailserver",
|
||||||
|
"repo": "nixos-mailserver",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"stable": {
|
"stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750133334,
|
"lastModified": 1750133334,
|
||||||
@@ -434,7 +534,7 @@
|
|||||||
},
|
},
|
||||||
"testing-grounds": {
|
"testing-grounds": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755527993,
|
"lastModified": 1755527993,
|
||||||
@@ -452,11 +552,11 @@
|
|||||||
},
|
},
|
||||||
"unstable": {
|
"unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768127708,
|
"lastModified": 1769789167,
|
||||||
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
|
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
|
"rev": "62c8382960464ceb98ea593cb8321a2cf8f9e3e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
39
flake.nix
39
flake.nix
@@ -3,24 +3,24 @@
|
|||||||
|
|
||||||
# Flake inputs
|
# Flake inputs
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||||
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
colmena.url = "github:zhaofengli/colmena";
|
colmena.url = "github:zhaofengli/colmena";
|
||||||
|
|
||||||
# commons
|
# commons
|
||||||
agenix.url = "github:ryantm/agenix";
|
agenix.url = "github:ryantm/agenix";
|
||||||
|
|
||||||
# zimablade inputs
|
# sin inputs
|
||||||
disko.url = "github:nix-community/disko";
|
disko.url = "github:nix-community/disko";
|
||||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
copyparty.url = "github:9001/copyparty";
|
||||||
|
simple-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
|
||||||
|
|
||||||
# sin inputs
|
# thea inputs
|
||||||
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
|
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||||
testing-grounds.url = "gitlab:shobu13/testing-grounds";
|
testing-grounds.url = "gitlab:shobu13/testing-grounds";
|
||||||
shoblog-front.url = "gitlab:shobu13/shoblog";
|
shoblog-front.url = "gitlab:shobu13/shoblog";
|
||||||
|
|
||||||
copyparty.url = "github:9001/copyparty";
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Flake outputs
|
# Flake outputs
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
);
|
);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations = rec {
|
||||||
sin = nixpkgs.lib.nixosSystem {
|
sin = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
|
||||||
@@ -80,6 +80,24 @@
|
|||||||
inherit inputs;
|
inherit inputs;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
thea = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
agenix.nixosModules.default
|
||||||
|
./hosts/thea/configuration.nix
|
||||||
|
./hosts/thea/hardware-configuration.nix
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
# modules
|
||||||
|
./modules/gitea/thea
|
||||||
|
];
|
||||||
|
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
nodes = {inherit sin;};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
colmenaHive = colmena.lib.makeHive {
|
colmenaHive = colmena.lib.makeHive {
|
||||||
meta = {
|
meta = {
|
||||||
@@ -111,7 +129,9 @@
|
|||||||
./modules/gitea/${name}
|
./modules/gitea/${name}
|
||||||
];
|
];
|
||||||
|
|
||||||
deployment.targetHost = "192.168.1.12";
|
deployment.targetHost = "git.shobu.fr";
|
||||||
|
|
||||||
|
# deployment.targetHost = "192.168.1.12";
|
||||||
};
|
};
|
||||||
|
|
||||||
sin =
|
sin =
|
||||||
@@ -133,7 +153,10 @@
|
|||||||
./modules/gitea/${name}
|
./modules/gitea/${name}
|
||||||
];
|
];
|
||||||
|
|
||||||
deployment.targetHost = "192.168.1.14";
|
deployment.targetHost = "git.shobu.fr";
|
||||||
|
deployment.targetPort = 24658;
|
||||||
|
|
||||||
|
# deployment.targetHost = "192.168.1.14";
|
||||||
deployment.allowLocalDeployment = true;
|
deployment.allowLocalDeployment = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
./secrets.nix
|
./secrets.nix
|
||||||
./coredns
|
./coredns
|
||||||
./copyparty.nix
|
./copyparty.nix
|
||||||
# ./trilium.nix
|
./trilium.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ "usb_storage" ];
|
boot.initrd.kernelModules = [ "usb_storage" ];
|
||||||
@@ -44,6 +44,8 @@
|
|||||||
|
|
||||||
3000 # gitea
|
3000 # gitea
|
||||||
|
|
||||||
|
config.services.trilium-server.port
|
||||||
|
|
||||||
53
|
53
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -2,19 +2,15 @@
|
|||||||
let
|
let
|
||||||
unstable = import inputs.unstable { system = pkgs.system; };
|
unstable = import inputs.unstable { system = pkgs.system; };
|
||||||
in
|
in
|
||||||
{
|
{systemd.services.jellyfin.environment.LIBVA_DRIVER_NAME = "iHD"; # or i965 for older GPUs
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; };
|
||||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
|
||||||
};
|
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
|
intel-ocl # Generic OpenCL support
|
||||||
|
|
||||||
|
# For Broadwell and newer (ca. 2014+), use with LIBVA_DRIVER_NAME=iHD:
|
||||||
intel-media-driver
|
intel-media-driver
|
||||||
intel-vaapi-driver
|
|
||||||
vaapiVdpau
|
|
||||||
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in)
|
|
||||||
vpl-gpu-rt # QSV on 11th gen or newer
|
|
||||||
intel-media-sdk # QSV up to 11th gen
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -84,16 +80,25 @@ in
|
|||||||
group = "starr";
|
group = "starr";
|
||||||
settings = {
|
settings = {
|
||||||
authentication.AuthenticationMethod = "external";
|
authentication.AuthenticationMethod = "external";
|
||||||
|
authentication.AuthenticationType = "enabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
radarr = {
|
radarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
group = "starr";
|
group = "starr";
|
||||||
|
settings = {
|
||||||
|
authentication.AuthenticationMethod = "external";
|
||||||
|
authentication.AuthenticationType = "enabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
prowlarr = {
|
prowlarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
authentication.AuthenticationMethod = "external";
|
||||||
|
authentication.AuthenticationType = "enabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
bazarr = {
|
bazarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -102,10 +107,18 @@ in
|
|||||||
lidarr = {
|
lidarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
authentication.AuthenticationMethod = "external";
|
||||||
|
authentication.AuthenticationType = "enabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
whisparr = {
|
whisparr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
authentication.AuthenticationMethod = "external";
|
||||||
|
authentication.AuthenticationType = "enabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
jellyseerr = {
|
jellyseerr = {
|
||||||
|
|||||||
37
hosts/sin/mailserver.nix
Normal file
37
hosts/sin/mailserver.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib)
|
||||||
|
mkDefault
|
||||||
|
;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.simple-mailserver.default
|
||||||
|
];
|
||||||
|
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = mkDefault true;
|
||||||
|
certs.${config.mailserver.fqdn} = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mailserver = {
|
||||||
|
enable = true;
|
||||||
|
stateVersion = 3;
|
||||||
|
fqdn = "mail.shobu.fr";
|
||||||
|
domains = [ "shobu.fr" ];
|
||||||
|
|
||||||
|
x509.useACMEHost = config.mailserver.fqdn;
|
||||||
|
|
||||||
|
loginAccounts = {
|
||||||
|
"auth@shobu.fr" = {
|
||||||
|
password = "$y$j9T$aLAZYUOUrc2jxcNYGy1qt/$B1ZdufZtzJJmnLYIYW11nk1BwIIy1Xkjxb7lx3ge/Z3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1 +1,9 @@
|
|||||||
{ ... }: { }
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.trilium-server = {
|
||||||
|
enable = true;
|
||||||
|
port = 12783;
|
||||||
|
host = "0.0.0.0";
|
||||||
|
noAuthentication = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
@@ -49,6 +49,10 @@ in
|
|||||||
access_control = {
|
access_control = {
|
||||||
default_policy = "deny";
|
default_policy = "deny";
|
||||||
rules = [
|
rules = [
|
||||||
|
# {
|
||||||
|
# domain = "radarr.shobu.fr";
|
||||||
|
# policy = "bypass";
|
||||||
|
# }
|
||||||
{
|
{
|
||||||
domain = "*.shobu.fr";
|
domain = "*.shobu.fr";
|
||||||
policy = "one_factor";
|
policy = "one_factor";
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/D1B9-8019";
|
device = "/dev/disk/by-uuid/2CF4-0109";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [
|
options = [
|
||||||
"fmask=0077"
|
"fmask=0077"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
proxy = pkgs.writeText "proxy.conf" ''
|
proxy = pkgs.writeText "proxy.conf" ''
|
||||||
## Headers
|
## Headers
|
||||||
proxy_set_header Host $host;
|
# proxy_set_header Host $host;
|
||||||
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
|
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Forwarded-Host $http_host;
|
proxy_set_header X-Forwarded-Host $http_host;
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
{ inputs, pkgs, ... }:
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
# striped-front = inputs.striped-front;
|
# striped-front = inputs.striped-front;
|
||||||
|
|
||||||
@@ -18,64 +23,93 @@ in
|
|||||||
recommendedProxySettings = true;
|
recommendedProxySettings = true;
|
||||||
recommendedTlsSettings = true;
|
recommendedTlsSettings = true;
|
||||||
|
|
||||||
|
typesHashMaxSize = 512;
|
||||||
|
mapHashMaxSize = 512;
|
||||||
|
|
||||||
virtualHosts =
|
virtualHosts =
|
||||||
let
|
let
|
||||||
mkStarr = host: port: {
|
mkVHost = host: port: {
|
||||||
"${host}" = {
|
"${host}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://${sin-address}:${port}";
|
proxyPass = "http://${sin-address}:${port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mkStarr = host: port: {
|
||||||
|
"${host}" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
include ${authelia-snippets.authelia-location};
|
||||||
|
'';
|
||||||
|
|
||||||
|
locations."/api" = {
|
||||||
|
proxyPass = "http://${sin-address}:${port}";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_ssl_server_name on;
|
proxy_ssl_server_name on;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${sin-address}:${port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
extraConfig = ''
|
||||||
|
include ${authelia-snippets.proxy};
|
||||||
|
include ${authelia-snippets.authelia-authrequest};
|
||||||
|
|
||||||
|
proxy_ssl_server_name on;
|
||||||
proxy_read_timeout 4800s;
|
proxy_read_timeout 4800s;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
withAuthelia =
|
||||||
|
vhost: location:
|
||||||
|
(builtins.mapAttrs (
|
||||||
|
name: value:
|
||||||
|
(lib.recursiveUpdate value {
|
||||||
|
extraConfig = (if value ? extraConfig then value.extraConfig else "") + ''
|
||||||
|
include ${authelia-snippets.authelia-location};
|
||||||
|
'';
|
||||||
|
locations."${location}".extraConfig =
|
||||||
|
(
|
||||||
|
if value.locations."${location}" ? extraConfig then
|
||||||
|
value.locations."${location}".extraConfig
|
||||||
|
else
|
||||||
|
""
|
||||||
|
)
|
||||||
|
+ ''
|
||||||
|
include ${authelia-snippets.proxy};
|
||||||
|
include ${authelia-snippets.authelia-authrequest};
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
) vhost);
|
||||||
|
withWebsockets =
|
||||||
|
vhost: location:
|
||||||
|
(builtins.mapAttrs (
|
||||||
|
name: value:
|
||||||
|
(lib.recursiveUpdate value {
|
||||||
|
locations."${location}".proxyWebsockets = true;
|
||||||
|
})
|
||||||
|
) vhost);
|
||||||
in
|
in
|
||||||
(
|
(
|
||||||
mkStarr "jellyfin.shobu.fr" "8096"
|
(withWebsockets (mkVHost "jellyfin.shobu.fr" "8096") "/")
|
||||||
# // mkStarr "radarr.shobu.fr" "7878"
|
// mkStarr "radarr.shobu.fr" "7878"
|
||||||
// mkStarr "sonarr.shobu.fr" "8989"
|
// mkStarr "sonarr.shobu.fr" "8989"
|
||||||
// mkStarr "prowlarr.shobu.fr" "9696"
|
// mkStarr "prowlarr.shobu.fr" "9696"
|
||||||
// mkStarr "bazarr.shobu.fr" "6767"
|
// mkStarr "bazarr.shobu.fr" "6767"
|
||||||
// mkStarr "lidarr.shobu.fr" "8686"
|
// mkStarr "lidarr.shobu.fr" "8686"
|
||||||
// mkStarr "whisparr.shobu.fr" "6969"
|
// mkStarr "whisparr.shobu.fr" "6969"
|
||||||
// mkStarr "jellyseerr.shobu.fr" "5055"
|
// mkVHost "jellyseerr.shobu.fr" "5055"
|
||||||
// mkStarr "transmission.shobu.fr" "9091"
|
// mkVHost "transmission.shobu.fr" "9091"
|
||||||
// mkStarr "zimablade-admin.shobu.fr" "61208"
|
// mkVHost "zimablade-admin.shobu.fr" "61208"
|
||||||
|
// (withWebsockets (withAuthelia (mkVHost "trilium.shobu.fr" "12783") "/") "/")
|
||||||
// {
|
// {
|
||||||
"radarr.shobu.fr" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
include ${authelia-snippets.authelia-location};
|
|
||||||
error_log /var/log/nginx/debug_radarr.log debug;
|
|
||||||
'';
|
|
||||||
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://${sin-address}:7878";
|
|
||||||
proxyWebsockets = true;
|
|
||||||
extraConfig = ''
|
|
||||||
include ${authelia-snippets.proxy};
|
|
||||||
include ${authelia-snippets.authelia-authrequest};
|
|
||||||
proxy_ssl_server_name on;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
locations."/api" = {
|
|
||||||
proxyPass = "http://${sin-address}:7878";
|
|
||||||
proxyWebsockets = true;
|
|
||||||
extraConfig = ''
|
|
||||||
proxy_ssl_server_name on;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
"shobu.fr" = {
|
"shobu.fr" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
@@ -137,9 +171,16 @@ in
|
|||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
# include ${authelia-snippets.authelia-location};
|
||||||
|
# error_log /var/log/nginx/debug_files.log debug;
|
||||||
|
'';
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://${sin-address}:8086";
|
proxyPass = "http://${sin-address}:8086";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
# include ${authelia-snippets.proxy};
|
||||||
|
# include ${authelia-snippets.authelia-authrequest};
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
client_max_body_size 100M;
|
client_max_body_size 100M;
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ nodes, pkgs, ... }:
|
{ nodes, pkgs, ... }:
|
||||||
{
|
{
|
||||||
systemd.sockets.podman.socketConfig.Symlinks = [
|
systemd.sockets.podman.socketConfig.Symlinks = [
|
||||||
"/run/docker.sock"
|
"/run/docker.sock"
|
||||||
|
|||||||
Reference in New Issue
Block a user