{ config, pkgs, trucksimulatorbot, ... }: let domain = "trucks.${config.networking.domain}"; in { services.trucksimulatorbot = { enable = true; discord = { clientId = "831052837353816066"; publicKey = "faa7004a2a5096702f96f3ebeb45c7e8272c119b72c1a0894abc4d76d8cc8bad"; }; }; services.mysql = { enable = true; package = pkgs.mariadb; ensureUsers = [ { name = "trucksimulator"; ensurePermissions = { "trucksimulator.*" = "ALL PRIVILEGES"; }; } ]; ensureDatabases = [ "trucksimulator" ]; }; services.nginx.virtualHosts = { "${domain}" = { locations."/invite".return = "301 https://discord.com/api/oauth2/authorize?client_id=831052837353816066&permissions=262144&scope=bot%20applications.commands"; locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.trucksimulatorbot.listenPort}"; }; locations."/images/" = { proxyPass = "http://127.0.0.1:${toString config.services.trucksimulatorbot.images.listenPort}/"; }; locations."/docs" = { root = "${trucksimulatorbot.packages.x86_64-linux.docs}"; }; }; }; }