Files
nixos-config/nixos-configurations/server/default.nix

109 lines
2.7 KiB
Nix
Raw Normal View History

2023-08-06 02:24:15 +02:00
{ inputs, pkgs, config, ... }:
2023-07-02 00:18:17 +02:00
{
imports = [
./hardware-configuration.nix
../shared.nix
];
2023-08-04 09:32:11 +00:00
nix.settings.trusted-users = [ "thiloho" ];
environment.systemPackages = with pkgs; [
nodejs_20
];
2023-07-29 22:59:36 +02:00
networking = {
2023-07-29 23:01:20 +02:00
hostName = "server";
2023-07-29 22:59:36 +02:00
firewall = {
allowedTCPPorts = [ 80 443 25565 ];
};
};
2023-07-24 15:17:18 +02:00
2023-07-29 22:33:53 +02:00
services = {
2023-08-04 20:44:41 +02:00
openssh = {
enable = true;
settings.PasswordAuthentication = false;
};
2023-07-29 22:33:53 +02:00
minecraft-server = {
enable = true;
eula = true;
declarative = true;
openFirewall = true;
whitelist = {
thilo_ho = "4e4d744d-7748-46bc-add8-b3e8ca3b4cf5";
2023-08-19 00:59:50 +02:00
PegasusIsHere = "24155f74-eb04-4f45-a743-f2b7eb71c6a2";
BakaZaps = "1888532c-6df7-4514-b96a-99ed4e7684f2";
2023-08-25 07:28:22 +02:00
Liaxswan = "ccbf3468-a6b4-4d7b-9837-5a2451deca79";
2023-07-29 22:33:53 +02:00
};
serverProperties = {
difficulty = 3;
max-players = 10;
motd = "Minecraft server of Thilo.";
white-list = true;
};
2023-07-23 04:24:55 +02:00
};
2023-07-29 22:33:53 +02:00
nginx = {
enable = true;
virtualHosts = {
"thilohohlt.com" = {
2023-07-29 23:19:54 +02:00
enableACME = true;
forceSSL = true;
2023-07-29 22:33:53 +02:00
root = inputs.website;
};
2023-08-01 21:58:41 +00:00
"aurora.thilohohlt.com" = {
enableACME = true;
forceSSL = true;
2023-08-01 23:28:39 +00:00
root = inputs.aurora-blog-template.packages.${pkgs.system}.default;
2023-08-01 21:58:41 +00:00
};
2023-08-04 20:44:41 +02:00
};
};
2023-07-24 14:38:54 +02:00
};
2023-08-04 20:44:41 +02:00
security = {
acme = {
acceptTerms = true;
defaults.email = "thilo.hohlt@tutanota.com";
};
sudo.extraConfig = ''
%wheel ALL=(ALL) NOPASSWD: ALL, SETENV: ALL
'';
2023-07-29 23:19:54 +02:00
};
services.postgresql = {
enable = true;
package = pkgs.postgresql_15;
ensureDatabases = [ "dcbot" ];
authentication = pkgs.lib.mkOverride 10 ''
#type database DBuser auth-method
local all all trust
'';
};
systemd.services.denbot = {
description = "Thilo's Den discord bot";
wantedBy = ["multi-user.target"];
after = ["network-online.target"];
serviceConfig = {
Type = "simple";
ExecStartPre = [
"${pkgs.nodejs_20}/bin/node dbInit.js"
"${pkgs.nodejs_20}/bin/node deploy-commands.js --token=%d/bot.token --clientId=1142441791459704912"
];
2023-09-10 23:19:41 +02:00
ExecStart = "${pkgs.nodejs_20}/bin/node index.js --token=%d/bot.token";
LoadCredential = "bot.token:/var/run/bot-token.txt";
2023-09-10 23:19:41 +02:00
WorkingDirectory = inputs.denbot.packages.${pkgs.system}.default;
Restart = "always";
};
};
2023-07-24 14:38:54 +02:00
users.users.thiloho.openssh.authorizedKeys.keys = [
2023-08-11 17:04:19 +02:00
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkvr+vT7Ik0fjquxb9xQBfVVWJPgrfC+vJZsyG2V+/G thiloho@pc"
2023-07-24 14:38:54 +02:00
];
2023-07-02 00:18:17 +02:00
home-manager.users.thiloho = { pkgs, lib, ... }: {
home.stateVersion = "23.05";
};
system.stateVersion = "23.05";
}