diff --git a/configuration.nix b/configuration.nix index 2a1abe6..d3c6bea 100755 --- a/configuration.nix +++ b/configuration.nix @@ -12,8 +12,8 @@ networking.domain = ""; networking.firewall = { enable = true; - allowedTCPPorts = [80 443 9418]; - allowedUDPPorts = [80 443 9418]; + allowedTCPPorts = [80 443 9418 25565]; + allowedUDPPorts = [80 443 9418 25565]; }; boot.loader.grub.devices = ["nodev"]; diff --git a/flake.lock b/flake.lock index d12dad1..4834b28 100644 --- a/flake.lock +++ b/flake.lock @@ -1,15 +1,31 @@ { "nodes": { + "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" }, "locked": { - "lastModified": 1756357572, - "narHash": "sha256-P6T94sif/tjPXdA6MISmnwot57+4FzJ0iHe83KAdOlI=", + "lastModified": 1761290086, + "narHash": "sha256-MUmldwnP65Iu9A2fPdyMcsJnKLtltw3pGWVaBeYNfto=", "ref": "refs/heads/master", - "rev": "c1b05feb4a851d2d8ea57ccac8d6482c850ccc6e", - "revCount": 48, + "rev": "d3b971ee3291e0d88bdd729efba88b74e9d5b378", + "revCount": 57, "type": "git", "url": "https://git.mtgmonkey.net/Andromeda/blog.git" }, @@ -18,6 +34,22 @@ "url": "https://git.mtgmonkey.net/Andromeda/blog.git" } }, + "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": { "inputs": { "systems": "systems" @@ -36,6 +68,54 @@ "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_2" @@ -87,6 +167,22 @@ "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": 1749285348, @@ -119,11 +215,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1754214453, - "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", + "lastModified": 1761907660, + "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", + "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", "type": "github" }, "original": { @@ -150,11 +246,27 @@ }, "nixpkgs_6": { "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_7": { + "locked": { + "lastModified": 1760524057, + "narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", "type": "github" }, "original": { @@ -189,20 +301,44 @@ "math-project": "math-project", "nixpkgs": "nixpkgs_4", "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_6", + "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_6" + "nixpkgs": "nixpkgs_7" }, "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": { diff --git a/flake.nix b/flake.nix index c4f57c2..060a759 100755 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,7 @@ nixpkgs.url = "nixpkgs/nixos-unstable"; noshell.url = "github:viperML/noshell"; spacebar-server.url = "github:spacebarchat/server"; + simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; blog.url = "git+https://git.mtgmonkey.net/Andromeda/blog.git"; jank-client.url = "git+https://git.mtgmonkey.net/Andromeda/jank-client-fork.git"; @@ -15,6 +16,7 @@ nixpkgs, noshell, spacebar-server, + simple-nixos-mailserver, jank-client, math-project, blog, @@ -28,6 +30,7 @@ inherit self; inherit system; inherit spacebar-server; + inherit simple-nixos-mailserver; inherit math-project; inherit blog; ssh-pub-keys = import ./ssh-pub-keys.nix; @@ -39,6 +42,8 @@ ./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 @@ -47,6 +52,7 @@ jank-client.nixosModules.x86_64-linux.default math-project.nixosModules.x86_64-linux.default noshell.nixosModules.default + simple-nixos-mailserver.nixosModule { programs.noshell.enable = true; services.math-project.enable = true; diff --git a/services/ferron.nix b/services/ferron.nix index d182d9d..7f89953 100755 --- a/services/ferron.nix +++ b/services/ferron.nix @@ -41,6 +41,10 @@ domain = "translate.mtgmonkey.net"; proxyTo = "http://localhost:9109/"; } + { + domain = "mail.mtgmonkey.net"; + proxyTo = "http://localhost:6942/"; + } ]; }; in { diff --git a/services/mailserver.nix b/services/mailserver.nix new file mode 100644 index 0000000..b353eb7 --- /dev/null +++ b/services/mailserver.nix @@ -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"; + ''; + }; +} diff --git a/services/minecraft-server.nix b/services/minecraft-server.nix new file mode 100644 index 0000000..9403ea9 --- /dev/null +++ b/services/minecraft-server.nix @@ -0,0 +1,8 @@ +{ + nixpkgs.config.allowUnfree = true; + services.minecraft-server = { + enable = true; + eula = true; + jvmOpts = "-Xms512M -Xmx1024M"; + }; +}