init
This commit is contained in:
commit
265e09d77a
635
flake.lock
generated
Normal file
635
flake.lock
generated
Normal file
@ -0,0 +1,635 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"agenix": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754433428,
|
||||||
|
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"colmena": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nix-github-actions": "nix-github-actions",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"stable": "stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755272288,
|
||||||
|
"narHash": "sha256-ypTPb2eKcOBbOoyvPV0j4ZOXs4kayo73/2KI456QnE0=",
|
||||||
|
"owner": "zhaofengli",
|
||||||
|
"repo": "colmena",
|
||||||
|
"rev": "5bf4ce6a24adba74a5184f4a9bef01d545a09473",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "zhaofengli",
|
||||||
|
"repo": "colmena",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"copyparty": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757797810,
|
||||||
|
"narHash": "sha256-cecYpMD1SR0QwqiMTmhy1OtfjC4UUkP3TAeiHQjVpG0=",
|
||||||
|
"owner": "9001",
|
||||||
|
"repo": "copyparty",
|
||||||
|
"rev": "8f587627e16cb14efa0c20ad77e18728792e4186",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "9001",
|
||||||
|
"repo": "copyparty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744478979,
|
||||||
|
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disko": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757508292,
|
||||||
|
"narHash": "sha256-7lVWL5bC6xBIMWWDal41LlGAG+9u2zUorqo3QCUL4p4=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"rev": "146f45bee02b8bd88812cfce6ffc0f933788875a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650374568,
|
||||||
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747046372,
|
||||||
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659877975,
|
||||||
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1678901627,
|
||||||
|
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745494811,
|
||||||
|
"narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-github-actions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"colmena",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729742964,
|
||||||
|
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-minecraft": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": "nixpkgs_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757555667,
|
||||||
|
"narHash": "sha256-09403AZgH/TR1bpilDm8yJucZ2hYcZm8bzY3t8NgPJQ=",
|
||||||
|
"owner": "Infinidoge",
|
||||||
|
"repo": "nix-minecraft",
|
||||||
|
"rev": "d6d19d54dcec2a6afac3b9442643dd18e8b0566d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Infinidoge",
|
||||||
|
"repo": "nix-minecraft",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754028485,
|
||||||
|
"narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "59e69648d345d6e8fef86158c555730fa12af9de",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1750134718,
|
||||||
|
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748162331,
|
||||||
|
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748929857,
|
||||||
|
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757545623,
|
||||||
|
"narHash": "sha256-mCxPABZ6jRjUQx3bPP4vjA68ETbPLNz9V2pk9tO7pRQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "8cd5ce828d5d1d16feff37340171a98fc3bf6526",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1737062831,
|
||||||
|
"narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=",
|
||||||
|
"rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c",
|
||||||
|
"revCount": 738982,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.738982%2Brev-5df43628fdf08d642be8ba5b3625a6c70731c19c/01947627-561b-7a9f-a379-f9ac4c680cb0/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744440957,
|
||||||
|
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_8": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744463964,
|
||||||
|
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
|
||||||
|
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
|
||||||
|
"revCount": 782401,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.782401%2Brev-2631b0b7abcea6e640ce31cd78ea58910d31e650/01962c8a-63c4-7abd-a3df-63a17b548cc7/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_9": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736549401,
|
||||||
|
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ollama-intel": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757015956,
|
||||||
|
"narHash": "sha256-A8zt9SE6rUCm06LkNB1dwsV8lZ+dMMZZWkAhjlnUawU=",
|
||||||
|
"owner": "NikolasEnt",
|
||||||
|
"repo": "ollama-webui-intel",
|
||||||
|
"rev": "ac701a2e9bd1a61deba8d88e5a4ac65b60adc173",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NikolasEnt",
|
||||||
|
"repo": "ollama-webui-intel",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pyproject-build-systems": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"striped-back",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pyproject-nix": [
|
||||||
|
"striped-back",
|
||||||
|
"pyproject-nix"
|
||||||
|
],
|
||||||
|
"uv2nix": [
|
||||||
|
"striped-back",
|
||||||
|
"uv2nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744599653,
|
||||||
|
"narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "build-system-pkgs",
|
||||||
|
"rev": "7dba6dbc73120e15b558754c26024f6c93015dd7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "build-system-pkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pyproject-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"striped-back",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743438845,
|
||||||
|
"narHash": "sha256-1GSaoubGtvsLRwoYwHjeKYq40tLwvuFFVhGrG8J9Oek=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
|
"rev": "8063ec98edc459571d042a640b1c5e334ecfca1e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
|
"colmena": "colmena",
|
||||||
|
"copyparty": "copyparty",
|
||||||
|
"disko": "disko",
|
||||||
|
"nix-minecraft": "nix-minecraft",
|
||||||
|
"nixpkgs": "nixpkgs_5",
|
||||||
|
"ollama-intel": "ollama-intel",
|
||||||
|
"shoblog-front": "shoblog-front",
|
||||||
|
"striped-back": "striped-back",
|
||||||
|
"striped-front": "striped-front",
|
||||||
|
"testing-grounds": "testing-grounds",
|
||||||
|
"unstable": "unstable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shoblog-front": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752594581,
|
||||||
|
"narHash": "sha256-chBYrFK4ZVYIhMpW5rhbdmUllep+cOtOQD7/4ttL8hg=",
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "shoblog",
|
||||||
|
"rev": "eb4fb1a5d077586e359506b8e0469e46d241028d",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "shoblog",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1750133334,
|
||||||
|
"narHash": "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "36ab78dab7da2e4e27911007033713bab534187b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"striped-back": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_7",
|
||||||
|
"pyproject-build-systems": "pyproject-build-systems",
|
||||||
|
"pyproject-nix": "pyproject-nix",
|
||||||
|
"uv2nix": "uv2nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748719386,
|
||||||
|
"narHash": "sha256-nyXHemXPEKnqIVIYIorSbt64zRwMvijyGQGCW3zUUkc=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "bdfd6f1f4aac6a00ae4509f14b3a63c84d169edf",
|
||||||
|
"revCount": 8,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-back"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-back"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"striped-front": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_8"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748718798,
|
||||||
|
"narHash": "sha256-KUxbrUjRfuKjkJZLzKr11WEXLfPs38YrW/CMG6XbnbY=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "a553f10147dad9e41829f67b247817a079f6f671",
|
||||||
|
"revCount": 11,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-front"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-front"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"testing-grounds": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_9"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755527993,
|
||||||
|
"narHash": "sha256-h+72V/KNXnFw/v/6Spme6wwFlYxRdQo6Cxub1uveJlQ=",
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "testing-grounds",
|
||||||
|
"rev": "efa72d320e1dcff1e2e8f696125ec7d4b40c0dd3",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "testing-grounds",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757745802,
|
||||||
|
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uv2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"striped-back",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pyproject-nix": [
|
||||||
|
"striped-back",
|
||||||
|
"pyproject-nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744797880,
|
||||||
|
"narHash": "sha256-gt9JBkYjZAEvGwCG7RMAAAr0j2RsaRmOMj/vV0briXk=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "uv2nix",
|
||||||
|
"rev": "3583e037163491ecd833f1d5d3eedf3869543c5d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "uv2nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
113
flake.nix
Normal file
113
flake.nix
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
description = "An empty flake template that you can adapt to your own environment";
|
||||||
|
|
||||||
|
# Flake inputs
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||||
|
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
colmena.url = "github:zhaofengli/colmena";
|
||||||
|
|
||||||
|
# commons
|
||||||
|
agenix.url = "github:ryantm/agenix";
|
||||||
|
|
||||||
|
# zimablade inputs
|
||||||
|
disko.url = "github:nix-community/disko";
|
||||||
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# sin inputs
|
||||||
|
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||||
|
testing-grounds.url = "gitlab:shobu13/testing-grounds";
|
||||||
|
shoblog-front.url = "gitlab:shobu13/shoblog";
|
||||||
|
striped-front.url = "git+ssh://git@gitlab.com/striped1/striped-front";
|
||||||
|
striped-back.url = "git+ssh://git@gitlab.com/striped1/striped-back";
|
||||||
|
ollama-intel = {
|
||||||
|
url = "github:NikolasEnt/ollama-webui-intel";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
copyparty.url = "github:9001/copyparty";
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
# Flake outputs
|
||||||
|
outputs = inputs@{
|
||||||
|
self,
|
||||||
|
|
||||||
|
nixpkgs,
|
||||||
|
unstable,
|
||||||
|
colmena,
|
||||||
|
|
||||||
|
agenix,
|
||||||
|
|
||||||
|
disko,
|
||||||
|
|
||||||
|
shoblog-front,
|
||||||
|
striped-front,
|
||||||
|
striped-back,
|
||||||
|
nix-minecraft,
|
||||||
|
testing-grounds,
|
||||||
|
copyparty,
|
||||||
|
ollama-intel,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
# The systems supported for this flake
|
||||||
|
supportedSystems = [
|
||||||
|
"x86_64-linux" # 64-bit Intel/AMD Linux
|
||||||
|
];
|
||||||
|
|
||||||
|
# Helper to provide system-specific attributes
|
||||||
|
forEachSupportedSystem = f: inputs.nixpkgs.lib.genAttrs supportedSystems (system: f {
|
||||||
|
pkgs = import inputs.nixpkgs { inherit system; };
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
colmenaHive = colmena.lib.makeHive {
|
||||||
|
meta = {
|
||||||
|
nixpkgs = import nixpkgs {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
overlays = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sin = {
|
||||||
|
imports = [
|
||||||
|
./hosts/n100/configuration.nix
|
||||||
|
./hosts/n100/hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
deployment.targetHost = "n100.homelab.local";
|
||||||
|
};
|
||||||
|
|
||||||
|
zimablade = {
|
||||||
|
imports = [
|
||||||
|
disko.nixosModules.disko
|
||||||
|
agenix.nixosModules.default
|
||||||
|
./hosts/zimablade/configuration.nix
|
||||||
|
./hosts/zimablade/hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
deployment.targetHost = "zimablade.homelab.local";
|
||||||
|
# deployment.targetPort = 22223;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
devShells = forEachSupportedSystem ({ pkgs }: {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
# The Nix packages provided in the environment
|
||||||
|
# Add any you need here
|
||||||
|
packages = with pkgs; [ colmena.packages.${pkgs.system}.colmena ];
|
||||||
|
|
||||||
|
# Set any environment variables for your dev shell
|
||||||
|
env = { };
|
||||||
|
|
||||||
|
# Add any shell logic you want executed any time the environment is activated
|
||||||
|
shellHook = ''
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
110
hosts/n100/configuration.nix
Normal file
110
hosts/n100/configuration.nix
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page, on
|
||||||
|
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||||
|
|
||||||
|
{ config, lib, pkgs, nodes, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
./nginx.nix
|
||||||
|
# ./striped
|
||||||
|
# ./cybercoffee
|
||||||
|
./ollama.nix
|
||||||
|
./minecraft.nix
|
||||||
|
# ./shares.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "n100"; # Define your hostname.
|
||||||
|
|
||||||
|
nameservers = [ "10.0.0.4" ];
|
||||||
|
|
||||||
|
dhcpcd.extraConfig = "nohook resolv.conf";
|
||||||
|
|
||||||
|
firewall = {
|
||||||
|
allowedTCPPorts = [ nodes.zimablade.config.services.gitea.settings.server.SSH_PORT ];
|
||||||
|
};
|
||||||
|
nat = {
|
||||||
|
enable = true;
|
||||||
|
internalInterfaces = [ "enp1s0" ];
|
||||||
|
externalInterface = "enp1s0";
|
||||||
|
forwardPorts = [ {
|
||||||
|
sourcePort = nodes.zimablade.config.services.gitea.settings.server.SSH_PORT;
|
||||||
|
proto = "tcp";
|
||||||
|
destination = "10.0.0.4:22";
|
||||||
|
} ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Paris";
|
||||||
|
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
users.users.n100 = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
|
packages = with pkgs; [
|
||||||
|
];
|
||||||
|
|
||||||
|
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKsu+4S+BHmypQTq2IR9y+ihvbF7sXbBznKtIjVAeHJ1 shobu@nixos" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.root = {
|
||||||
|
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKsu+4S+BHmypQTq2IR9y+ihvbF7sXbBznKtIjVAeHJ1 shobu@nixos" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
lunarvim
|
||||||
|
wget
|
||||||
|
httpie
|
||||||
|
tmux
|
||||||
|
git
|
||||||
|
helix
|
||||||
|
python312
|
||||||
|
# lemonade
|
||||||
|
];
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
ports = [ 22 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
|
# accidentally delete configuration.nix.
|
||||||
|
# system.copySystemConfiguration = true;
|
||||||
|
|
||||||
|
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||||
|
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||||
|
#
|
||||||
|
# Most users should NEVER change this value after the initial install, for any reason,
|
||||||
|
# even if you've upgraded your system to a new NixOS release.
|
||||||
|
#
|
||||||
|
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||||
|
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||||
|
# to actually do that.
|
||||||
|
#
|
||||||
|
# This value being lower than the current NixOS release does NOT mean your system is
|
||||||
|
# out of date, out of support, or vulnerable.
|
||||||
|
#
|
||||||
|
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||||
|
# and migrated your data accordingly.
|
||||||
|
#
|
||||||
|
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||||
|
system.stateVersion = "24.11"; # Did you read the comment?
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
8
hosts/n100/cybercoffee/default.nix
Normal file
8
hosts/n100/cybercoffee/default.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{pkgs, ...}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./halflife.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.steamcmd ];
|
||||||
|
}
|
||||||
2
hosts/n100/cybercoffee/halflife.nix
Normal file
2
hosts/n100/cybercoffee/halflife.nix
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
{...}: {}
|
||||||
327
hosts/n100/flake.lock
generated
Normal file
327
hosts/n100/flake.lock
generated
Normal file
@ -0,0 +1,327 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-minecraft": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748570485,
|
||||||
|
"narHash": "sha256-oDnEc/rxyDf+uUXO56Z2TJtrrQoBe0Z4MCIRaY6lVZ0=",
|
||||||
|
"owner": "Infinidoge",
|
||||||
|
"repo": "nix-minecraft",
|
||||||
|
"rev": "6c961ee42ff2301ee61c75aa42cbe8c8adecf3c8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Infinidoge",
|
||||||
|
"repo": "nix-minecraft",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742889210,
|
||||||
|
"narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "698214a32beb4f4c8e3942372c694f40848b360d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748421225,
|
||||||
|
"narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "78add7b7abb61689e34fc23070a8f55e1d26185b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1737062831,
|
||||||
|
"narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=",
|
||||||
|
"rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c",
|
||||||
|
"revCount": 738982,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.738982%2Brev-5df43628fdf08d642be8ba5b3625a6c70731c19c/01947627-561b-7a9f-a379-f9ac4c680cb0/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744440957,
|
||||||
|
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744463964,
|
||||||
|
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
|
||||||
|
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
|
||||||
|
"revCount": 782401,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.782401%2Brev-2631b0b7abcea6e640ce31cd78ea58910d31e650/01962c8a-63c4-7abd-a3df-63a17b548cc7/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736549401,
|
||||||
|
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pyproject-build-systems": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"striped-back",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pyproject-nix": [
|
||||||
|
"striped-back",
|
||||||
|
"pyproject-nix"
|
||||||
|
],
|
||||||
|
"uv2nix": [
|
||||||
|
"striped-back",
|
||||||
|
"uv2nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744599653,
|
||||||
|
"narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "build-system-pkgs",
|
||||||
|
"rev": "7dba6dbc73120e15b558754c26024f6c93015dd7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "build-system-pkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pyproject-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"striped-back",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743438845,
|
||||||
|
"narHash": "sha256-1GSaoubGtvsLRwoYwHjeKYq40tLwvuFFVhGrG8J9Oek=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
|
"rev": "8063ec98edc459571d042a640b1c5e334ecfca1e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nix-minecraft": "nix-minecraft",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"shoblog-front": "shoblog-front",
|
||||||
|
"striped-back": "striped-back",
|
||||||
|
"striped-front": "striped-front",
|
||||||
|
"testing-grounds": "testing-grounds"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shoblog-front": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739983642,
|
||||||
|
"narHash": "sha256-yfswl2czYcKShilYbs+/TOevdCzuj8z/vpqAQuIK7C0=",
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "shoblog",
|
||||||
|
"rev": "4d96597762215c7b76de8543e8e482071bfbdff4",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "shoblog",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"striped-back": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"pyproject-build-systems": "pyproject-build-systems",
|
||||||
|
"pyproject-nix": "pyproject-nix",
|
||||||
|
"uv2nix": "uv2nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748719386,
|
||||||
|
"narHash": "sha256-nyXHemXPEKnqIVIYIorSbt64zRwMvijyGQGCW3zUUkc=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "bdfd6f1f4aac6a00ae4509f14b3a63c84d169edf",
|
||||||
|
"revCount": 8,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-back"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-back"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"striped-front": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748718798,
|
||||||
|
"narHash": "sha256-KUxbrUjRfuKjkJZLzKr11WEXLfPs38YrW/CMG6XbnbY=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "a553f10147dad9e41829f67b247817a079f6f671",
|
||||||
|
"revCount": 11,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-front"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitlab.com/striped1/striped-front"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"testing-grounds": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1737653472,
|
||||||
|
"narHash": "sha256-tXlQ6AWb1kFeyEPo4dhp1GLoeS5rY+qD9eB4OTUNbL8=",
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "testing-grounds",
|
||||||
|
"rev": "6cbf3e58cea39e5d93897be96e9fe81021c0b9ab",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "shobu13",
|
||||||
|
"repo": "testing-grounds",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uv2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"striped-back",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pyproject-nix": [
|
||||||
|
"striped-back",
|
||||||
|
"pyproject-nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744797880,
|
||||||
|
"narHash": "sha256-gt9JBkYjZAEvGwCG7RMAAAr0j2RsaRmOMj/vV0briXk=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "uv2nix",
|
||||||
|
"rev": "3583e037163491ecd833f1d5d3eedf3869543c5d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "uv2nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
34
hosts/n100/flake.nix
Normal file
34
hosts/n100/flake.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
description = "An empty flake template that you can adapt to your own environment";
|
||||||
|
|
||||||
|
# Flake inputs
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
|
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||||
|
testing-grounds.url = "gitlab:shobu13/testing-grounds";
|
||||||
|
shoblog-front.url = "gitlab:shobu13/shoblog";
|
||||||
|
striped-front.url = "git+ssh://git@gitlab.com/striped1/striped-front";
|
||||||
|
striped-back.url = "git+ssh://git@gitlab.com/striped1/striped-back";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Flake outputs
|
||||||
|
outputs = inputs@{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
nix-minecraft,
|
||||||
|
shoblog-front,
|
||||||
|
striped-front,
|
||||||
|
striped-back,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
nixosConfigurations.n100 = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
58
hosts/n100/hardware-configuration.nix
Normal file
58
hosts/n100/hardware-configuration.nix
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "sd_mod" "sdhci_pci" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/09c733e4-b0df-4416-977b-50d9feb225fc";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=root" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/nix" =
|
||||||
|
{ device = "/dev/disk/by-uuid/09c733e4-b0df-4416-977b-50d9feb225fc";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=nix" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home" =
|
||||||
|
{ device = "/dev/disk/by-uuid/09c733e4-b0df-4416-977b-50d9feb225fc";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=home" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/swap" =
|
||||||
|
{ device = "/dev/disk/by-uuid/09c733e4-b0df-4416-977b-50d9feb225fc";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=swap" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/D1B9-8019";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
33
hosts/n100/minecraft.nix
Normal file
33
hosts/n100/minecraft.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{pkgs, inputs, ...}:
|
||||||
|
let
|
||||||
|
modpack = pkgs.fetchPackwizModpack {
|
||||||
|
url = "file:///${inputs.testing-grounds.modpack}/pack.toml";
|
||||||
|
packHash = "sha256-+taYj4uroLNxM4Nia3n+5P1Y/g6dzE6Iq13TsZgk4mU=";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ inputs.nix-minecraft.nixosModules.minecraft-servers ];
|
||||||
|
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
|
||||||
|
|
||||||
|
services.minecraft-servers = {
|
||||||
|
enable = true;
|
||||||
|
eula = true;
|
||||||
|
openFirewall = true;
|
||||||
|
|
||||||
|
servers.testing-grounds = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
package = inputs.testing-grounds.packages.x86_64-linux.forge-server;
|
||||||
|
|
||||||
|
symlinks = {
|
||||||
|
"libraries" = inputs.testing-grounds.forge-libraries;
|
||||||
|
"mods" = "${modpack}/mods";
|
||||||
|
};
|
||||||
|
|
||||||
|
serverProperties = {
|
||||||
|
motd = "welcome to testing grounds";
|
||||||
|
allow-flight = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
126
hosts/n100/nginx.nix
Normal file
126
hosts/n100/nginx.nix
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
{inputs, ...}:
|
||||||
|
let
|
||||||
|
striped-front = inputs.striped-front;
|
||||||
|
in {
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 443 8448 ];
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
recommendedTlsSettings = true;
|
||||||
|
|
||||||
|
virtualHosts =
|
||||||
|
let
|
||||||
|
mkStarr = host: port: {
|
||||||
|
"${host}" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://10.0.0.4:${port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_ssl_server_name on;
|
||||||
|
proxy_read_timeout 4800s;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
(
|
||||||
|
mkStarr "jellyfin.shobu.fr" "8096"
|
||||||
|
// mkStarr "radarr.shobu.fr" "7878"
|
||||||
|
// mkStarr "sonarr.shobu.fr" "8989"
|
||||||
|
// mkStarr "prowlarr.shobu.fr" "9696"
|
||||||
|
// mkStarr "bazarr.shobu.fr" "6767"
|
||||||
|
// mkStarr "jellyseerr.shobu.fr" "5055"
|
||||||
|
// mkStarr "fileshelter.shobu.fr" "5091"
|
||||||
|
// mkStarr "lidarr.shobu.fr" "8686"
|
||||||
|
// mkStarr "transmission.shobu.fr" "9091"
|
||||||
|
// mkStarr "zimablade-admin.shobu.fr" "61208"
|
||||||
|
// {
|
||||||
|
"shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
root = "${inputs.shoblog-front.packages.x86_64-linux.default}/dist";
|
||||||
|
};
|
||||||
|
"data.shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
root = "/mnt/shares/data";
|
||||||
|
};
|
||||||
|
"bddtrans.shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://10.0.0.4:8001";
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_ssl_server_name on;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"bddtrans-api.shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://10.0.0.4:8000";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_ssl_server_name on;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"striped.shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
root = "${striped-front.packages.x86_64-linux.default}/dist";
|
||||||
|
};
|
||||||
|
"dashboard.shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://10.0.0.4:8082";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"git.shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://10.0.0.4:3000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"files.shobu.fr" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://10.0.0.4:8086";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# "matrix.shobu.fr" = {
|
||||||
|
# forceSSL = true;
|
||||||
|
# enableACME = true;
|
||||||
|
# locations."/".extraConfig = ''
|
||||||
|
# return 404;
|
||||||
|
# '';
|
||||||
|
# locations."/_matrix".proxyPass = "http://10.0.0.4:8008";
|
||||||
|
# locations."/_synapse/client".proxyPass = "http://10.0.0.4:8008";
|
||||||
|
# locations."/.well-known/matrix/server".proxyPass = "http://10.0.0.4:8008/.well-known/matrix/server";
|
||||||
|
# };
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "shobu_serhao@proton.me";
|
||||||
|
};
|
||||||
|
}
|
||||||
6
hosts/n100/ollama.nix
Normal file
6
hosts/n100/ollama.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{inputs, ...}: {
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
storageDriver = "btrfs";
|
||||||
|
};
|
||||||
|
}
|
||||||
18
hosts/n100/shares.nix
Normal file
18
hosts/n100/shares.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{...}: {
|
||||||
|
boot.supportedFilesystems = [ "fuse.sshfs" ];
|
||||||
|
programs.fuse.userAllowOther = true;
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/mnt/shares/data" = {
|
||||||
|
device = "shobu@10.0.0.4:/mnt/data/";
|
||||||
|
fsType = "fuse.sshfs";
|
||||||
|
options = [
|
||||||
|
"debug"
|
||||||
|
"allow_other"
|
||||||
|
"nodev"
|
||||||
|
"nosuid"
|
||||||
|
"IdentityFile=/home/n100/.ssh/id_ed25519"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
31
hosts/n100/striped/back.nix
Normal file
31
hosts/n100/striped/back.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{inputs, ...}:
|
||||||
|
let
|
||||||
|
striped-back = inputs.striped-back;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
striped-back.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
services.striped-back-api = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
nginx = {
|
||||||
|
enable = true;
|
||||||
|
useSSL = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
socket.enable = true;
|
||||||
|
|
||||||
|
settings.django = {
|
||||||
|
allowed-hosts = ["striped-api.shobu.fr"];
|
||||||
|
debug = true;
|
||||||
|
databases = {
|
||||||
|
default = {
|
||||||
|
ENGINE = "django.db.backends.sqlite3";
|
||||||
|
NAME = "/var/lib/striped_back_api/db.sqlite3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
media-root = "/var/lib/striped_back_api/media";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
5
hosts/n100/striped/default.nix
Normal file
5
hosts/n100/striped/default.nix
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{striped-back, striped-front, ...}:{
|
||||||
|
imports = [
|
||||||
|
./back.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
1
hosts/zimablade/.envrc
Normal file
1
hosts/zimablade/.envrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
use flake
|
||||||
91
hosts/zimablade/configuration.nix
Normal file
91
hosts/zimablade/configuration.nix
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
{
|
||||||
|
modulesPath,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
./luks-btrfs-raid.nix
|
||||||
|
./jellyfin.nix
|
||||||
|
./transmission.nix
|
||||||
|
./homepage.nix
|
||||||
|
./glances.nix
|
||||||
|
./secrets.nix
|
||||||
|
./coredns
|
||||||
|
./gitea.nix
|
||||||
|
./copyparty.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.kernelModules = [ "usb_storage" ];
|
||||||
|
|
||||||
|
boot.loader.grub = {
|
||||||
|
# devices = [ ];
|
||||||
|
efiSupport = true;
|
||||||
|
efiInstallAsRemovable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "sin";
|
||||||
|
|
||||||
|
nameservers = [ "10.0.0.4" ];
|
||||||
|
|
||||||
|
dhcpcd.extraConfig = "nohook resolv.conf";
|
||||||
|
|
||||||
|
firewall = {
|
||||||
|
allowedTCPPorts = [
|
||||||
|
8000
|
||||||
|
8001
|
||||||
|
|
||||||
|
3000 # gitea
|
||||||
|
|
||||||
|
53
|
||||||
|
];
|
||||||
|
|
||||||
|
allowedUDPPorts = [ 53 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Paris";
|
||||||
|
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
users.users = {
|
||||||
|
zimablade = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" ];
|
||||||
|
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKsu+4S+BHmypQTq2IR9y+ihvbF7sXbBznKtIjVAeHJ1 shobu@nixos" ];
|
||||||
|
};
|
||||||
|
shobu = {
|
||||||
|
isNormalUser = true;
|
||||||
|
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKsu+4S+BHmypQTq2IR9y+ihvbF7sXbBznKtIjVAeHJ1 shobu@nixos" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
|
# change this to your ssh key
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKsu+4S+BHmypQTq2IR9y+ihvbF7sXbBznKtIjVAeHJ1 shobu@nixos"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = map lib.lowPrio [
|
||||||
|
pkgs.curl
|
||||||
|
pkgs.gitMinimal
|
||||||
|
] ++ (with pkgs; [
|
||||||
|
helix
|
||||||
|
httpie
|
||||||
|
btop
|
||||||
|
tmux
|
||||||
|
]);
|
||||||
|
|
||||||
|
services = {
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
ports = [ 22 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
}
|
||||||
31
hosts/zimablade/copyparty.nix
Normal file
31
hosts/zimablade/copyparty.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{inputs, pkgs, ...}: {
|
||||||
|
imports = [ inputs.copyparty.nixosModules.default ];
|
||||||
|
nixpkgs.overlays = [ inputs.copyparty.overlays.default ];
|
||||||
|
environment.systemPackages = [ pkgs.copyparty ];
|
||||||
|
services.copyparty = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
p = [ 8086 ];
|
||||||
|
e2dsa = true;
|
||||||
|
e2ts = true;
|
||||||
|
z = true;
|
||||||
|
qr = true;
|
||||||
|
xff-src = "lan";
|
||||||
|
http-only = true;
|
||||||
|
og = true;
|
||||||
|
shr = "/shares";
|
||||||
|
};
|
||||||
|
|
||||||
|
volumes = {
|
||||||
|
"/media" = {
|
||||||
|
path = "/mnt/mediacenter/media";
|
||||||
|
access = {
|
||||||
|
r = "*";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 8086 ];
|
||||||
|
}
|
||||||
6
hosts/zimablade/coredns/db.homelab.local
Normal file
6
hosts/zimablade/coredns/db.homelab.local
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
$ORIGIN homelab.local.
|
||||||
|
@ IN SOA dns.homelab.local. shobu_serhao.proton.me. 2502011720 7200 3600 1209600 3600
|
||||||
|
|
||||||
|
dns IN A 10.0.0.5
|
||||||
|
n100 IN A 10.0.0.5
|
||||||
|
zimablade IN A 10.0.0.4
|
||||||
22
hosts/zimablade/coredns/default.nix
Normal file
22
hosts/zimablade/coredns/default.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{...}: {
|
||||||
|
services.coredns = {
|
||||||
|
enable = true;
|
||||||
|
config = ''
|
||||||
|
homelab.local {
|
||||||
|
file ${./db.homelab.local}
|
||||||
|
log
|
||||||
|
errors
|
||||||
|
cache
|
||||||
|
}
|
||||||
|
|
||||||
|
. {
|
||||||
|
forward . 8.8.8.8
|
||||||
|
forward . 84.200.69.80
|
||||||
|
forward . 84.200.70.40
|
||||||
|
log
|
||||||
|
errors
|
||||||
|
cache
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
161
hosts/zimablade/flake.lock
generated
Normal file
161
hosts/zimablade/flake.lock
generated
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"agenix": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736955230,
|
||||||
|
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1700795494,
|
||||||
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disko": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738765162,
|
||||||
|
"narHash": "sha256-3Z40qHaFScWUCVQrGc4Y+RdoPsh1R/wIh+AN4cTXP0I=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"rev": "ff3568858c54bd306e9e1f2886f0f781df307dff",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703113217,
|
||||||
|
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703013332,
|
||||||
|
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738843498,
|
||||||
|
"narHash": "sha256-7x+Q4xgFj9UxZZO9aUDCR8h4vyYut4zPUvfj3i+jBHE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "f5a32fa27df91dfc4b762671a0e0a859a8a0058f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
|
"disko": "disko",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"unstable": "unstable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740367490,
|
||||||
|
"narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "0196c0175e9191c474c26ab5548db27ef5d34b05",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
54
hosts/zimablade/flake.nix
Normal file
54
hosts/zimablade/flake.nix
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
description = "An empty flake template that you can adapt to your own environment";
|
||||||
|
|
||||||
|
# Flake inputs
|
||||||
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
|
inputs.disko.url = "github:nix-community/disko";
|
||||||
|
inputs.disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
# projects
|
||||||
|
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
agenix.url = "github:ryantm/agenix";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Flake outputs
|
||||||
|
outputs = inputs@{ self, nixpkgs, disko, unstable, agenix, ... }:
|
||||||
|
let
|
||||||
|
# The systems supported for this flake
|
||||||
|
supportedSystems = [
|
||||||
|
"x86_64-linux" # 64-bit Intel/AMD Linux
|
||||||
|
];
|
||||||
|
|
||||||
|
# Helper to provide system-specific attributes
|
||||||
|
forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f {
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations.zimablade = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
disko.nixosModules.disko
|
||||||
|
agenix.nixosModules.default
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells = forEachSupportedSystem ({ pkgs }: {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
# The Nix packages provided in the environment
|
||||||
|
# Add any you need here
|
||||||
|
packages = with pkgs; [ pkgs.disko nixos-anywhere ];
|
||||||
|
|
||||||
|
# Add any shell logic you want executed any time the environment is activated
|
||||||
|
shellHook = '''';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
18
hosts/zimablade/gitea.nix
Normal file
18
hosts/zimablade/gitea.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{lib, nodes, ...}: let
|
||||||
|
ssh_port = 24658;
|
||||||
|
in {
|
||||||
|
services = {
|
||||||
|
gitea = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
DOMAIN = "git.shobu.fr";
|
||||||
|
SSH_PORT = ssh_port;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# openssh = {
|
||||||
|
# ports = lib.mkAfter [ ssh_port ];
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
||||||
8
hosts/zimablade/glances.nix
Normal file
8
hosts/zimablade/glances.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{...}: {
|
||||||
|
services.glances = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
# TODO Change secrets
|
||||||
|
extraArgs = [ "--webserver" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
26
hosts/zimablade/hardware-configuration.nix
Normal file
26
hosts/zimablade/hardware-configuration.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp0s21f0u3u4.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
231
hosts/zimablade/homepage.nix
Normal file
231
hosts/zimablade/homepage.nix
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
|
||||||
|
{inputs, pkgs, ...}: {
|
||||||
|
services.homepage-dashboard = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
allowedHosts = "dashboard.shobu.fr";
|
||||||
|
settings = {
|
||||||
|
title = "Shobu's homelab dashboard";
|
||||||
|
description = "a dashboard of free and wesome bullshit";
|
||||||
|
startUrl = "https://dashboard.shobu.fr";
|
||||||
|
base = "https://dashboard.shobu.fr";
|
||||||
|
headerStyle = "boxed";
|
||||||
|
|
||||||
|
providers = {
|
||||||
|
"finnhub" = "cuvq5e9r01qub8tv03g0cuvq5e9r01qub8tv03gg";
|
||||||
|
};
|
||||||
|
|
||||||
|
layout = [
|
||||||
|
{"resources" = {};}
|
||||||
|
{
|
||||||
|
"about me stuff" = {
|
||||||
|
tab = "Public";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"tools" = {
|
||||||
|
tab = "Public";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"gayming" = {
|
||||||
|
tab = "Public";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"mediacenter" = {
|
||||||
|
tab = "Mediacenter";
|
||||||
|
header = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
widgets = [
|
||||||
|
{
|
||||||
|
greeting = {
|
||||||
|
text = "Welcome on my services and links dashboard, make yourself home.";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
datetime = {
|
||||||
|
format = {
|
||||||
|
dateStyle = "short";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
glances = {
|
||||||
|
url = "https://zimablade-admin.shobu.fr";
|
||||||
|
user = "shobu";
|
||||||
|
password = "shobu";
|
||||||
|
version = 4;
|
||||||
|
disk = [
|
||||||
|
"/"
|
||||||
|
"/mnt/fs"
|
||||||
|
];
|
||||||
|
expanded = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
bookmarks = [
|
||||||
|
{
|
||||||
|
"tools" = [
|
||||||
|
{
|
||||||
|
"bddtrans" = [
|
||||||
|
{
|
||||||
|
icon = "https://bddtrans.shobu.fr/favicon.ico";
|
||||||
|
href = "https://bddtrans.shobu.fr";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"about me stuff" = [
|
||||||
|
{
|
||||||
|
"shobu.fr" = [
|
||||||
|
{
|
||||||
|
icon = "https://shobu.fr/favicon.ico";
|
||||||
|
href = "https://shobu.fr";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"gitlab" = [
|
||||||
|
{
|
||||||
|
icon = "gitlab.png";
|
||||||
|
href = "https://gitlab.com/shobu13";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
services = [
|
||||||
|
{
|
||||||
|
"gayming" = [
|
||||||
|
{
|
||||||
|
"testing grounds" = {
|
||||||
|
description = "a lightweight modded minecraft server";
|
||||||
|
href = "https://modrinth.com/modpack/testing-grounds";
|
||||||
|
widget = {
|
||||||
|
type = "minecraft";
|
||||||
|
url = "udp://minecraft.shobu.fr:25565";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"mediacenter" = [
|
||||||
|
{
|
||||||
|
"users" = [
|
||||||
|
{
|
||||||
|
"jellyfin" = {
|
||||||
|
icon = "jellyfin.png";
|
||||||
|
href = "https://jellyfin.shobu.fr";
|
||||||
|
description = "Movies & TV shows";
|
||||||
|
widget = {
|
||||||
|
type = "jellyfin";
|
||||||
|
url = "https://jellyfin.shobu.fr";
|
||||||
|
key = "af4888d2c6594473be63e8299355d048";
|
||||||
|
enableBlocks = true;
|
||||||
|
enableNowPlaying = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"jellyseerr" = {
|
||||||
|
icon = "jellyseerr.png";
|
||||||
|
href = "https://jellyseerr.shobu.fr";
|
||||||
|
description = "Request movies and shows";
|
||||||
|
widget = {
|
||||||
|
type = "jellyseerr";
|
||||||
|
url = "https://jellyseerr.shobu.fr";
|
||||||
|
key = "MTczNzkyNzMxMzgwODk4N2FlZWJkLTQ0N2QtNGU0MS1iOWE1LTJmZmE3OTI4ZGQ5OQ==";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"calendar" = {
|
||||||
|
widget = {
|
||||||
|
type = "calendar";
|
||||||
|
view = "agenda";
|
||||||
|
showTime = true;
|
||||||
|
integrations = [
|
||||||
|
{
|
||||||
|
type = "sonarr";
|
||||||
|
service_group = "administration";
|
||||||
|
service_name = "sonarr";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "radarr";
|
||||||
|
service_group = "administration";
|
||||||
|
service_name = "radarr";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "lidarr";
|
||||||
|
service_group = "administration";
|
||||||
|
service_name = "lidarr";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"administration" = [
|
||||||
|
{
|
||||||
|
"radarr" = {
|
||||||
|
icon = "radarr.png";
|
||||||
|
href = "https://radarr.shobu.fr";
|
||||||
|
widget = {
|
||||||
|
type = "radarr";
|
||||||
|
url = "https://radarr.shobu.fr";
|
||||||
|
key = "13474b968893451fb5aa378457dc84a2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"sonarr" = {
|
||||||
|
icon = "sonarr.png";
|
||||||
|
href = "https://sonarr.shobu.fr";
|
||||||
|
widget = {
|
||||||
|
type = "sonarr";
|
||||||
|
url = "https://sonarr.shobu.fr";
|
||||||
|
key = "f194704f6dce4072928d857d49c1f185";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"lidarr" = {
|
||||||
|
icon = "lidarr.png";
|
||||||
|
href = "https://lidarr.shobu.fr";
|
||||||
|
widget = {
|
||||||
|
type = "lidarr";
|
||||||
|
url = "https://lidarr.shobu.fr";
|
||||||
|
key = "deff3fc5052844e7b37dfe439a91f8bc";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"transmission" = {
|
||||||
|
icon = "transmission.png";
|
||||||
|
href = "https://transmission.shobu.fr";
|
||||||
|
widget = {
|
||||||
|
type = "transmission";
|
||||||
|
url = "https://transmission.shobu.fr";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
83
hosts/zimablade/jellyfin.nix
Normal file
83
hosts/zimablade/jellyfin.nix
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{pkgs, inputs, ...}: let
|
||||||
|
unstable = import inputs.unstable { system = pkgs.system; };
|
||||||
|
in {
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||||
|
};
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
|
"dotnet-sdk-6.0.428"
|
||||||
|
"aspnetcore-runtime-6.0.36"
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users."starr" = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "starr";
|
||||||
|
extraGroups = [ "jellyfin" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.sonarr.extraGroups = ["jellyfin" "radarr" "transmission" "starr"];
|
||||||
|
users.users.radarr.extraGroups = ["jellyfin" "sonarr" "transmission" "starr"];
|
||||||
|
users.users.bazarr.extraGroups = ["jellyfin" "sonarr" "transmission" "starr" "radarr"];
|
||||||
|
users.users.lidarr.extraGroups = ["jellyfin" "starr" "transmission"];
|
||||||
|
|
||||||
|
users.users.shobu.extraGroups = [ "jellyfin" "starr" "transmission" "radarr" "sonarr" ];
|
||||||
|
|
||||||
|
|
||||||
|
users.groups = {
|
||||||
|
starr = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
sonarr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
group = "starr";
|
||||||
|
};
|
||||||
|
radarr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
group = "starr";
|
||||||
|
};
|
||||||
|
prowlarr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
bazarr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
lidarr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
package = unstable.lidarr;
|
||||||
|
};
|
||||||
|
|
||||||
|
jellyseerr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.jellyfin
|
||||||
|
pkgs.jellyfin-web
|
||||||
|
pkgs.jellyfin-ffmpeg
|
||||||
|
];
|
||||||
|
}
|
||||||
136
hosts/zimablade/luks-btrfs-raid.nix
Normal file
136
hosts/zimablade/luks-btrfs-raid.nix
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
{...}: {
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
# Devices will be mounted and formatted in alphabetical order, and btrfs can only mount raids
|
||||||
|
# when all devices are present. So we define an "empty" luks device on the first disk,
|
||||||
|
# and the actual btrfs raid on the second disk, and the name of these entries matters!
|
||||||
|
system = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/mmcblk0";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
boot = {
|
||||||
|
name = "boot";
|
||||||
|
size = "1M";
|
||||||
|
type = "EF02";
|
||||||
|
};
|
||||||
|
ESP = {
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [ "umask=0077" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
crypt_root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "p_root";
|
||||||
|
settings = {
|
||||||
|
allowDiscards = true;
|
||||||
|
keyFile = "/dev/disk/by-uuid/2021-07-11-12-33-27-00";
|
||||||
|
keyFileSize = 4096;
|
||||||
|
};
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
subvolumes = {
|
||||||
|
"/root" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
data1 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/sda";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
crypt_p1 = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "p_data1"; # device-mapper name when decrypted
|
||||||
|
# Remove settings.keyFile if you want to use interactive password entry
|
||||||
|
settings = {
|
||||||
|
allowDiscards = true;
|
||||||
|
keyFile = "/dev/disk/by-uuid/2021-07-11-12-33-27-00";
|
||||||
|
keyFileSize = 4096;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
data2 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/sdb";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
crypt_p2 = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "p_data2";
|
||||||
|
# Remove settings.keyFile if you want to use interactive password entry
|
||||||
|
settings = {
|
||||||
|
allowDiscards = true;
|
||||||
|
keyFile = "/dev/disk/by-uuid/2021-07-11-12-33-27-00"; # Same key for both devices
|
||||||
|
keyFileSize = 4096;
|
||||||
|
};
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [
|
||||||
|
"-d raid0"
|
||||||
|
"/dev/mapper/p_data1" # Use decrypted mapped device, same name as defined in disk1
|
||||||
|
];
|
||||||
|
subvolumes = {
|
||||||
|
"/" = {
|
||||||
|
mountpoint = "/mnt/fs";
|
||||||
|
mountOptions = [ "compress=zstd:3" ];
|
||||||
|
};
|
||||||
|
"/nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [ "compress=zstd:3" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/data" = {
|
||||||
|
mountpoint = "/mnt/data";
|
||||||
|
mountOptions = [ "compress=zstd:3" ];
|
||||||
|
};
|
||||||
|
"/mediacenter" = {
|
||||||
|
mountpoint = "/mnt/mediacenter";
|
||||||
|
mountOptions = [ "compress=zstd:3" ];
|
||||||
|
};
|
||||||
|
"/backups" = {
|
||||||
|
mountpoint = "/mnt/backups";
|
||||||
|
mountOptions = [ "compress=zstd:6" ];
|
||||||
|
};
|
||||||
|
"/jellyfin" = {
|
||||||
|
mountpoint = "/mnt/jellyfin";
|
||||||
|
mountOptions = [ ];
|
||||||
|
};
|
||||||
|
"/containers" = {
|
||||||
|
mountpoint = "/var/lib/containers";
|
||||||
|
mountOptions = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
60
hosts/zimablade/matrix.nix
Normal file
60
hosts/zimablade/matrix.nix
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{pkgs, config, ...}:
|
||||||
|
{
|
||||||
|
users.users = {
|
||||||
|
postgres = {
|
||||||
|
isSystemUser = true;
|
||||||
|
};
|
||||||
|
matrix-synapse = {
|
||||||
|
isSystemUser = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
ensureDatabases = [ "matrix-synapse" ];
|
||||||
|
ensureUsers = [
|
||||||
|
{
|
||||||
|
name = "matrix-synapse";
|
||||||
|
ensureDBOwnership = true;
|
||||||
|
ensureClauses.login = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
authentication = pkgs.lib.mkOverride 10 ''
|
||||||
|
#type #database #user #auth-method
|
||||||
|
local postgres all trust
|
||||||
|
local matrix-synapse matrix-synapse trust
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 8008 8448 ];
|
||||||
|
|
||||||
|
services.matrix-synapse = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server_name = "matrix.shobu.fr";
|
||||||
|
public_baseurl = "https://matrix.shobu.fr/";
|
||||||
|
enable_registration = true;
|
||||||
|
enable_registration_captcha = true;
|
||||||
|
serve_server_wellknown = true;
|
||||||
|
listeners = [
|
||||||
|
{
|
||||||
|
port = 8008;
|
||||||
|
bind_addresses = ["0.0.0.0"];
|
||||||
|
type = "http";
|
||||||
|
tls = false;
|
||||||
|
x_forwarded = true;
|
||||||
|
resources = [
|
||||||
|
{
|
||||||
|
names = [ "client" "federation" ];
|
||||||
|
compress = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfigFiles = [
|
||||||
|
config.age.secrets.captcha.path
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
13
hosts/zimablade/secrets.nix
Normal file
13
hosts/zimablade/secrets.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{...}: {
|
||||||
|
age.secrets = {
|
||||||
|
# captcha = {
|
||||||
|
# file = ./secrets/matrix_captcha.age;
|
||||||
|
# group = "matrix-synapse";
|
||||||
|
# mode = "770";
|
||||||
|
# };
|
||||||
|
airvpn-params = {
|
||||||
|
file = ./secrets/airvpn_wireguard_key_env.age;
|
||||||
|
mode = "700";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
BIN
hosts/zimablade/secrets/airvpn_wireguard_key_env.age
Normal file
BIN
hosts/zimablade/secrets/airvpn_wireguard_key_env.age
Normal file
Binary file not shown.
BIN
hosts/zimablade/secrets/matrix_captcha.age
Normal file
BIN
hosts/zimablade/secrets/matrix_captcha.age
Normal file
Binary file not shown.
69
hosts/zimablade/transmission.nix
Normal file
69
hosts/zimablade/transmission.nix
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
{config, ...}: {
|
||||||
|
|
||||||
|
users.users."starr" = {
|
||||||
|
extraGroups = [ "transmission" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.transmission = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "transmission";
|
||||||
|
uid = 992;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups = {
|
||||||
|
transmission.gid = 989;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.oci-containers = let
|
||||||
|
peerport = "63369";
|
||||||
|
in {
|
||||||
|
backend = "docker";
|
||||||
|
containers = {
|
||||||
|
gluetun = {
|
||||||
|
image = "qmcgaw/gluetun";
|
||||||
|
environment = {
|
||||||
|
VPN_SERVICE_PROVIDER = "airvpn";
|
||||||
|
VPN_TYPE = "wireguard";
|
||||||
|
# WIREGUARD_PRIVATE_KEY = "from agenix";
|
||||||
|
# WIREGUARD_PRESHARED_KEY = "from agenix";
|
||||||
|
# WIREGUARD_ADDRESSES = "from agenix";
|
||||||
|
# SERVER_COUNTRIES = "from agenix";
|
||||||
|
FIREWALL_VPN_INPUT_PORTS = "13277,${peerport}";
|
||||||
|
};
|
||||||
|
environmentFiles = [
|
||||||
|
config.age.secrets.airvpn-params.path
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--cap-add=NET_ADMIN"
|
||||||
|
"--device=/dev/net/tun"
|
||||||
|
];
|
||||||
|
ports = [
|
||||||
|
"13277:13277"
|
||||||
|
"9091:13277"
|
||||||
|
"${peerport}:${peerport}"
|
||||||
|
"${peerport}:${peerport}/udp"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
transmission = {
|
||||||
|
image = "docker.io/linuxserver/transmission:latest";
|
||||||
|
volumes = [
|
||||||
|
"/etc/transmission:/config"
|
||||||
|
"/etc/localtime:/etc/localtime:ro"
|
||||||
|
"/mnt/mediacenter/torrents:/mnt/mediacenter/torrents"
|
||||||
|
"/mnt/data/transmission_downloads:/mnt/data/transmission_downloads"
|
||||||
|
];
|
||||||
|
dependsOn = [
|
||||||
|
"gluetun"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=container:gluetun"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
PUID = toString config.users.users.transmission.uid;
|
||||||
|
GUID = toString config.users.groups.transmission.gid;
|
||||||
|
PEERPORT = peerport;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
0
modules/gitea/n100/default.nix
Normal file
0
modules/gitea/n100/default.nix
Normal file
15
modules/gitea/zimablade/default.nix
Normal file
15
modules/gitea/zimablade/default.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{lib, ...}: let
|
||||||
|
ssh_port = 24658;
|
||||||
|
in {
|
||||||
|
services = {
|
||||||
|
gitea = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
DOMAIN = "git.shobu.fr";
|
||||||
|
SSH_PORT = ssh_port;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user