Compare commits
27 Commits
a6d6637b3e
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4fa6df2cde | ||
|
|
038a82e400 | ||
|
|
e78f3510af | ||
|
|
5d5fff2da9 | ||
|
|
52df09e7e1 | ||
|
|
5200880cd0 | ||
|
|
f1eeeb5eee | ||
|
|
fe1cee54c3 | ||
|
|
09d373a5f5 | ||
|
|
2b841f6af5 | ||
|
|
a289d3a2ef | ||
|
|
b0aac26589 | ||
|
|
7ced4dc2fe | ||
|
|
8e1895f1b1 | ||
|
|
6e30000ce5 | ||
|
|
7cef5d8798 | ||
|
|
3f5ad1a3df | ||
|
|
39b987332b | ||
|
|
3c96c9818c | ||
|
|
91206fb3c0 | ||
|
|
de1d958778 | ||
|
|
dbec636ab7 | ||
|
|
bdc3a22570 | ||
|
|
56af2b408c | ||
|
|
8af386e521 | ||
|
|
7865de7103 | ||
|
|
1fdb3a8599 |
13
cachix.nix
Normal file
13
cachix.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
# WARN: this file will get overwritten by $ cachix use <name>
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
folder = ./cachix;
|
||||
toImport = name: value: folder + ("/" + name);
|
||||
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key;
|
||||
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
|
||||
in {
|
||||
inherit imports;
|
||||
nix.settings.substituters = ["https://cache.nixos.org/"];
|
||||
}
|
||||
13
cachix/rgit.nix
Normal file
13
cachix/rgit.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
{
|
||||
nix = {
|
||||
settings = {
|
||||
substituters = [
|
||||
"https://rgit.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"rgit.cachix.org-1:3Wva/GHhrlhbYx+ObbEYQSYq1Yzk8x9OAvEvcYazgL0="
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -12,7 +12,8 @@
|
||||
networking.domain = "";
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [80 443];
|
||||
allowedTCPPorts = [80 443 9418 25565];
|
||||
allowedUDPPorts = [80 443 9418 25565];
|
||||
};
|
||||
boot.loader.grub.devices = ["nodev"];
|
||||
|
||||
@@ -34,12 +35,6 @@
|
||||
'';
|
||||
};
|
||||
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
maxretry = 10;
|
||||
bantime-increment.enable = true;
|
||||
};
|
||||
|
||||
users.users.mtgmonkey = {
|
||||
isNormalUser = true;
|
||||
description = "mtgmonkey";
|
||||
|
||||
309
flake.lock
generated
Executable file → Normal file
309
flake.lock
generated
Executable file → Normal file
@@ -1,21 +1,86 @@
|
||||
{
|
||||
"nodes": {
|
||||
"elmskell-blog": {
|
||||
"andromeda-nook": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749395936,
|
||||
"narHash": "sha256-tEqZKBzQbENlyIDvVMWcnhifjEQkaEzK3eKDQWCbt58=",
|
||||
"lastModified": 1766772071,
|
||||
"narHash": "sha256-PuzrOsLDIWFmmxf/qzCpvZuXjw89TrKXODZ8ORl99rk=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "36fa8afd57449cacdc0535417c8d20fb6b702348",
|
||||
"revCount": 9,
|
||||
"rev": "c86d0a733a30e92e835a1a59b9e0f8e629325ad7",
|
||||
"revCount": 7,
|
||||
"type": "git",
|
||||
"url": "file:///var/lib/git-server/blog.git"
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/nook"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "file:///var/lib/git-server/blog.git"
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/nook"
|
||||
}
|
||||
},
|
||||
"auto-openvpn": {
|
||||
"locked": {
|
||||
"lastModified": 1756224566,
|
||||
"narHash": "sha256-SW/LESixI4cmSCR8uk3ZtLJpv4G4qkzDlP2EAUcp9to=",
|
||||
"owner": "fin444",
|
||||
"repo": "auto-openvpn.nix",
|
||||
"rev": "cbbfdc0b203633f32511d1060c13e4f64c2f0bc5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "fin444",
|
||||
"repo": "auto-openvpn.nix",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"blog": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766065119,
|
||||
"narHash": "sha256-yW5sym1Yjj0u9QhLzfWWDpD50lRmUCpxL9ss9nyONgU=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "dd5a2fbd3e276ebdd6f6a9fcc380eb56abba2a26",
|
||||
"revCount": 60,
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/blog"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/blog"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"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": {
|
||||
@@ -36,7 +101,122 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"simple-nixos-mailserver",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"simple-nixos-mailserver",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758108966,
|
||||
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"simple-nixos-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"
|
||||
}
|
||||
},
|
||||
"jank-client": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749606892,
|
||||
"narHash": "sha256-ZGUUWNORko3QFy9p/2mc4voJ65/11Joy6Au79+TwxPw=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "0e59a339c813bcf1e9969344d8b50ed380231552",
|
||||
"revCount": 1179,
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/jank-client-fork"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/jank-client-fork"
|
||||
}
|
||||
},
|
||||
"math-project": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750258769,
|
||||
"narHash": "sha256-BazJgo04yFqFfp2AA0Tfba+nBAeaNddQJBdLghVJskk=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "fa0e8ca47dd5341d24d8aae90a0bc28a689c3d46",
|
||||
"revCount": 6,
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/math-project"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/math-project"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1765934234,
|
||||
"narHash": "sha256-pJjWUzNnjbIAMIc5gRFUuKCDQ9S1cuh3b2hKgA7Mc4A=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "af84f9d270d404c17699522fab95bbf928a2d92f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-25_05": {
|
||||
"locked": {
|
||||
"lastModified": 1759143472,
|
||||
"narHash": "sha256-TvODmeR2W7yX/JmOCmP+lAFNkTT7hAxYcF3Kz8SZV3w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5ed4e25ab58fd4c028b59d5611e14ea64de51d23",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1749143949,
|
||||
"narHash": "sha256-QuUtALJpVrPnPeozlUG/y+oIMSLdptHxb3GK6cpSVhA=",
|
||||
@@ -51,23 +231,52 @@
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1749373575,
|
||||
"narHash": "sha256-/3nvhGaUMG1A6zG185QHyTFR2fMiyffxU7VdMYk5qj0=",
|
||||
"owner": "nixos",
|
||||
"lastModified": 1749285348,
|
||||
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6a8d437617048567166f83b32d07ba73aeb2d125",
|
||||
"rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "release-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1748889542,
|
||||
"narHash": "sha256-Hb4iMhIbjX45GcrgOp3b8xnyli+ysRPqAgZ/LZgyT5k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "10d7f8d34e5eb9c0f9a0485186c1ca691d2c5922",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1765472234,
|
||||
"narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1714253743,
|
||||
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||
@@ -83,13 +292,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1746141548,
|
||||
"narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
|
||||
"lastModified": 1759036355,
|
||||
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
|
||||
"rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1760524057,
|
||||
"narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -101,7 +326,7 @@
|
||||
},
|
||||
"noshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717396029,
|
||||
@@ -119,23 +344,51 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"elmskell-blog": "elmskell-blog",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"andromeda-nook": "andromeda-nook",
|
||||
"auto-openvpn": "auto-openvpn",
|
||||
"blog": "blog",
|
||||
"jank-client": "jank-client",
|
||||
"math-project": "math-project",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"noshell": "noshell",
|
||||
"simple-nixos-mailserver": "simple-nixos-mailserver",
|
||||
"spacebar-server": "spacebar-server"
|
||||
}
|
||||
},
|
||||
"simple-nixos-mailserver": {
|
||||
"inputs": {
|
||||
"blobs": "blobs",
|
||||
"flake-compat": "flake-compat",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": "nixpkgs_7",
|
||||
"nixpkgs-25_05": "nixpkgs-25_05"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759489698,
|
||||
"narHash": "sha256-2lT2i5ha23I2vrolEaBaAS/63ChgZPh181Awt6q1bDY=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"rev": "6005d88bed7a5418f9772b4058a73cd0fd1e69a1",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"ref": "master",
|
||||
"repo": "nixos-mailserver",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"spacebar-server": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748414795,
|
||||
"narHash": "sha256-nClmjajuaMVV02Rn7xqZWy5pwLmGw7/MF3RDGkYDuYQ=",
|
||||
"lastModified": 1761916341,
|
||||
"narHash": "sha256-NalvODcjJq3MutPu5nyiXqnYmz2m8yiQ6dJ8s/i+9aA=",
|
||||
"owner": "spacebarchat",
|
||||
"repo": "server",
|
||||
"rev": "f03c6209a42ae3e922bdb86954de04f1ae6daaa8",
|
||||
"rev": "c8fab8e8ff4c689b025c8b140135e9ae406229d9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
232
flake.lock.bak
Normal file
232
flake.lock.bak
Normal file
@@ -0,0 +1,232 @@
|
||||
{
|
||||
"nodes": {
|
||||
"blog": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754950153,
|
||||
"narHash": "sha256-puOP2m2ixs9nzId8CnxHvteU/iMLRJtveigb2njjrPE=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "ea162211d17489133552c12cee9ffae2b4c11e5e",
|
||||
"revCount": 30,
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/blog.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/blog.git"
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"jank-client": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749606892,
|
||||
"narHash": "sha256-ZGUUWNORko3QFy9p/2mc4voJ65/11Joy6Au79+TwxPw=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "0e59a339c813bcf1e9969344d8b50ed380231552",
|
||||
"revCount": 1179,
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/jank-client-fork.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/jank-client-fork.git"
|
||||
}
|
||||
},
|
||||
"math-project": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750258769,
|
||||
"narHash": "sha256-BazJgo04yFqFfp2AA0Tfba+nBAeaNddQJBdLghVJskk=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "fa0e8ca47dd5341d24d8aae90a0bc28a689c3d46",
|
||||
"revCount": 6,
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/math-project.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.mtgmonkey.net/Andromeda/math-project.git"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1749143949,
|
||||
"narHash": "sha256-QuUtALJpVrPnPeozlUG/y+oIMSLdptHxb3GK6cpSVhA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d3d2d80a2191a73d1e86456a751b83aa13085d7d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1749285348,
|
||||
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1748889542,
|
||||
"narHash": "sha256-Hb4iMhIbjX45GcrgOp3b8xnyli+ysRPqAgZ/LZgyT5k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "10d7f8d34e5eb9c0f9a0485186c1ca691d2c5922",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1754214453,
|
||||
"narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1714253743,
|
||||
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1746141548,
|
||||
"narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717396029,
|
||||
"narHash": "sha256-NPIhvnTYkJZqTY+aabbZ6CAaMAgG6IISvh7GZo1MTfQ=",
|
||||
"owner": "viperML",
|
||||
"repo": "noshell",
|
||||
"rev": "4d194d838a50ea106cd0e47c024e47afc154ab42",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "viperML",
|
||||
"repo": "noshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"blog": "blog",
|
||||
"jank-client": "jank-client",
|
||||
"math-project": "math-project",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"noshell": "noshell",
|
||||
"spacebar-server": "spacebar-server"
|
||||
}
|
||||
},
|
||||
"spacebar-server": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748414795,
|
||||
"narHash": "sha256-nClmjajuaMVV02Rn7xqZWy5pwLmGw7/MF3RDGkYDuYQ=",
|
||||
"owner": "spacebarchat",
|
||||
"repo": "server",
|
||||
"rev": "f03c6209a42ae3e922bdb86954de04f1ae6daaa8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "spacebarchat",
|
||||
"repo": "server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
54
flake.nix
54
flake.nix
@@ -1,23 +1,28 @@
|
||||
{
|
||||
description = "server flake";
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/release-25.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||
noshell.url = "github:viperML/noshell";
|
||||
spacebar-server.url = "github:spacebarchat/server";
|
||||
|
||||
elmskell-blog.url = "git+file:///var/lib/git-server/blog.git";
|
||||
jank-client.url = "git+file:///var/lib/git-server/jank-client-fork.git";
|
||||
math-project.url = "git+file:///var/lib/git-server/math-project.git";
|
||||
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
||||
auto-openvpn.url = "github:fin444/auto-openvpn.nix";
|
||||
andromeda-nook.url = "git+https://git.mtgmonkey.net/Andromeda/nook";
|
||||
blog.url = "git+https://git.mtgmonkey.net/Andromeda/blog";
|
||||
jank-client.url = "git+https://git.mtgmonkey.net/Andromeda/jank-client-fork";
|
||||
math-project.url = "git+https://git.mtgmonkey.net/Andromeda/math-project";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
noshell,
|
||||
elmskell-blog,
|
||||
spacebar-server,
|
||||
simple-nixos-mailserver,
|
||||
auto-openvpn,
|
||||
andromeda-nook,
|
||||
jank-client,
|
||||
math-project,
|
||||
blog,
|
||||
...
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
@@ -27,30 +32,37 @@
|
||||
specialArgs = {
|
||||
inherit self;
|
||||
inherit system;
|
||||
inherit elmskell-blog;
|
||||
inherit spacebar-server;
|
||||
inherit simple-nixos-mailserver;
|
||||
inherit auto-openvpn;
|
||||
inherit math-project;
|
||||
inherit andromeda-nook;
|
||||
inherit blog;
|
||||
ssh-pub-keys = import ./ssh-pub-keys.nix;
|
||||
};
|
||||
modules = [
|
||||
./services/ferron.nix
|
||||
./configuration.nix
|
||||
|
||||
./services/elmskell.nix
|
||||
./services/blog.nix
|
||||
# ./services/elmskell.nix
|
||||
./services/ferron.nix
|
||||
./services/gitea.nix
|
||||
# ./services/mailserver.nix
|
||||
# ./services/minecraft-server.nix
|
||||
# ./services/rgit.nix
|
||||
./services/math-project.nix
|
||||
./services/spacebar.nix
|
||||
./services/translate.nix
|
||||
./services/vpn.nix
|
||||
|
||||
jank-client.nixosModules.x86_64-linux.default
|
||||
./services/spacebar.nix
|
||||
./services/rgit.nix
|
||||
|
||||
./services/translate.nix
|
||||
|
||||
math-project.nixosModules.x86_64-linux.default
|
||||
noshell.nixosModules.default
|
||||
{programs.noshell.enable = true;}
|
||||
|
||||
math-project.nixosModules.default
|
||||
{programs.math-project.enable = true;}
|
||||
./services/math-project.nix
|
||||
|
||||
./configuration.nix
|
||||
simple-nixos-mailserver.nixosModule
|
||||
{
|
||||
programs.noshell.enable = true;
|
||||
services.math-project.enable = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
elmskell-blog,
|
||||
blog,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
@@ -18,13 +18,6 @@
|
||||
}
|
||||
];
|
||||
};
|
||||
ferron-conf-nix = {
|
||||
global = {
|
||||
port = 8181;
|
||||
secure = false;
|
||||
wwwroot = "${elmskell-blog.packages.x86_64-linux.default}/wwwroot";
|
||||
};
|
||||
};
|
||||
in {
|
||||
services.anubis = {
|
||||
instances.blog = {
|
||||
@@ -36,7 +29,7 @@ in {
|
||||
METRICS_BIND = "[::1]:9182";
|
||||
METRICS_BIND_NETWORK = "tcp";
|
||||
POLICY_FNAME = "/etc/anubis/blog.botPolicies.yaml";
|
||||
TARGET = "http://localhost:8181";
|
||||
TARGET = "http://localhost:9345";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -44,15 +37,16 @@ in {
|
||||
source = (pkgs.formats.yaml {}).generate "" botPolicies-nix;
|
||||
mode = "644";
|
||||
};
|
||||
systemd.services.blog-ferron = {
|
||||
systemd.services.blog = {
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${lib.getExe pkgs.ferron} --config=/etc/blog.ferron.yaml";
|
||||
ExecStart = "${lib.getExe pkgs.http-server} ${blog.packages.x86_64-linux.default}/wwwroot -p 9345";
|
||||
RemainAfterExit = true;
|
||||
Restart = "always";
|
||||
RestartMaxDelaySec = "1m";
|
||||
RestartSec = "100ms";
|
||||
RestartSteps = 9;
|
||||
};
|
||||
};
|
||||
environment.etc."blog.ferron.yaml" = {
|
||||
source = (pkgs.formats.yaml {}).generate "" ferron-conf-nix;
|
||||
mode = "644";
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -39,7 +39,12 @@ in {
|
||||
Type = "simple";
|
||||
ExecStart = "/etc/nixos/services/elmskell/elmskell";
|
||||
RemainAfterExit = true;
|
||||
Restart = "always";
|
||||
RestartMaxDelaySec = "1m";
|
||||
RestartSec = "100ms";
|
||||
RestartSteps = 9;
|
||||
};
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
services.tor = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
system,
|
||||
andromeda-nook,
|
||||
...
|
||||
}: let
|
||||
ferron-conf-nix = {
|
||||
@@ -15,7 +17,7 @@
|
||||
hosts = [
|
||||
{
|
||||
domain = "mtgmonkey.net";
|
||||
proxyTo = "http://localhost:9080/";
|
||||
wwwroot = "${andromeda-nook.packages.${system}.default}/wwwroot";
|
||||
}
|
||||
{
|
||||
domain = "blog.mtgmonkey.net";
|
||||
@@ -41,6 +43,10 @@
|
||||
domain = "translate.mtgmonkey.net";
|
||||
proxyTo = "http://localhost:9109/";
|
||||
}
|
||||
{
|
||||
domain = "mail.mtgmonkey.net";
|
||||
proxyTo = "http://localhost:6942/";
|
||||
}
|
||||
];
|
||||
};
|
||||
in {
|
||||
@@ -50,6 +56,7 @@ in {
|
||||
ExecStart = "${lib.getExe pkgs.ferron} --config=/etc/ferron.yaml";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
|
||||
environment.etc."ferron.yaml" = {
|
||||
|
||||
28
services/gitea.nix
Executable file
28
services/gitea.nix
Executable file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
systemd.services.gitea = {
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${lib.getExe pkgs.gitea} -c /etc/gitea/config.ini";
|
||||
RemainAfterExit = true;
|
||||
Restart = "always";
|
||||
RestartMaxDelaySec = "1m";
|
||||
RestartSec = "100ms";
|
||||
RestartSteps = 9;
|
||||
User = "git";
|
||||
Group = "git";
|
||||
};
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
environment.etc."gitea/config.ini.default" = {
|
||||
text = ''
|
||||
WORK_PATH = /var/lib/git-server
|
||||
[server]
|
||||
HTTP_PORT = 8000
|
||||
'';
|
||||
mode = "644";
|
||||
};
|
||||
}
|
||||
27
services/mailserver.nix
Normal file
27
services/mailserver.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{config, ...}: {
|
||||
mailserver = {
|
||||
enable = true;
|
||||
stateVersion = 3;
|
||||
fqdn = "mail.mtgmonkey.net";
|
||||
domains = ["mtgmonkey.net"];
|
||||
|
||||
loginAccounts = {
|
||||
"example@mtgmonkey.net" = {
|
||||
hashedPasswordFile = "/home/mtgmonkey/secrets/example_passhash";
|
||||
aliases = ["postmaster@mtgmonkey.net"];
|
||||
};
|
||||
};
|
||||
|
||||
certificateScheme = "manual";
|
||||
};
|
||||
|
||||
services.roundcube = {
|
||||
enable = true;
|
||||
hostName = "localhost:6942";
|
||||
extraConfig = ''
|
||||
$config['smtp_server'] = tls://${config.mailserver.fqdn}";
|
||||
$config['smtp_user'] = "%u";
|
||||
$config['stmp_pass'] = "%p";
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -29,7 +29,7 @@ in {
|
||||
METRICS_BIND = "[::1]:9283";
|
||||
METRICS_BIND_NETWORK = "tcp";
|
||||
POLICY_FNAME = "/etc/anubis/math-project.botPolicies.yaml";
|
||||
TARGET = "http://localhost:8080";
|
||||
TARGET = "http://localhost:8081";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -42,8 +42,13 @@ in {
|
||||
systemd.services.math-project = {
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${lib.getExe math-project}";
|
||||
ExecStart = "${lib.getExe math-project.packages.x86_64-linux.default}";
|
||||
RemainAfterExit = true;
|
||||
Restart = "always";
|
||||
RestartMaxDelaySec = "1m";
|
||||
RestartSec = "100ms";
|
||||
RestartSteps = 9;
|
||||
};
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
}
|
||||
|
||||
8
services/minecraft-server.nix
Normal file
8
services/minecraft-server.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
services.minecraft-server = {
|
||||
enable = true;
|
||||
eula = true;
|
||||
jvmOpts = "-Xms512M -Xmx1024M";
|
||||
};
|
||||
}
|
||||
@@ -1,23 +1,16 @@
|
||||
{
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
};
|
||||
virtualisation.oci-containers.backend = "docker";
|
||||
virtualisation.oci-containers.containers.rgit = {
|
||||
image = "ghcr.io/w4/rgit:main";
|
||||
ports = [
|
||||
"8000:8000"
|
||||
];
|
||||
volumes = [
|
||||
"/var/lib/git-server:/git:ro"
|
||||
];
|
||||
cmd = [
|
||||
"[::]:8000"
|
||||
"/git"
|
||||
"-d /tmp/rgit-cache.db"
|
||||
];
|
||||
environment = {
|
||||
REFRESH_INTERVAL = "5m";
|
||||
{rgit, ...}: {
|
||||
systemd.services.rgit = {
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${rgit.packages.x86_64-linux.default}/bin/rgit -d /var/lib/git-server/.db/rgit-cache.db [::1]:8000 /var/lib/git-server";
|
||||
RemainAfterExit = true;
|
||||
Restart = "always";
|
||||
RestartMaxDelay = "1m";
|
||||
RestartSec = "100ms";
|
||||
RestartSteps = 9;
|
||||
User = "git";
|
||||
Group = "git";
|
||||
};
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
}
|
||||
|
||||
23
services/rgit.nix.bak
Executable file
23
services/rgit.nix.bak
Executable file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
};
|
||||
virtualisation.oci-containers.backend = "docker";
|
||||
virtualisation.oci-containers.containers.rgit = {
|
||||
image = "ghcr.io/w4/rgit:main";
|
||||
ports = [
|
||||
"8000:8000"
|
||||
];
|
||||
volumes = [
|
||||
"/var/lib/git-server:/git:ro"
|
||||
];
|
||||
cmd = [
|
||||
"[::]:8000"
|
||||
"/git"
|
||||
"-d /tmp/rgit-cache.db"
|
||||
];
|
||||
environment = {
|
||||
REFRESH_INTERVAL = "5m";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -45,7 +45,12 @@ in {
|
||||
RemainAfterExit = true;
|
||||
User = "spacebar";
|
||||
Group = "spacebar";
|
||||
Restart = "always";
|
||||
RestartMaxDelaySec = "1m";
|
||||
RestartSec = "100ms";
|
||||
RestartSteps = 9;
|
||||
};
|
||||
wantedBy = ["multi-user.target"];
|
||||
environment = {
|
||||
DATABASE = "/var/lib/spacebar-server/database.db";
|
||||
STORAGE_LOCATION = "/var/lib/spacebar-server/files/";
|
||||
|
||||
@@ -41,8 +41,13 @@ in {
|
||||
systemd.services.translate = {
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${lib.getExe pkgs.libretranslate}";
|
||||
ExecStart = "${lib.getExe pkgs.libretranslate} --port 8108";
|
||||
RemainAfterExit = true;
|
||||
Restart = "always";
|
||||
RestartMaxDelaySec = "1m";
|
||||
RestartSec = "100ms";
|
||||
RestartSteps = 9;
|
||||
};
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
}
|
||||
|
||||
12
services/vpn.nix
Normal file
12
services/vpn.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{auto-openvpn, ...}: {
|
||||
imports = [
|
||||
auto-openvpn.nixosModules.auto-openvpn
|
||||
];
|
||||
services.auto-openvpn = {
|
||||
enable = true;
|
||||
enableIPv6 = true;
|
||||
interface = "ens18";
|
||||
address = "173.249.5.230";
|
||||
users = ["handy" "lenovo"];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user