{ config, pkgs, trucksimulatorbot, ... }: let domain = "trucks.${config.networking.domain}"; in { services.trucksimulatorbot = { inherit domain; enable = true; discord = { clientId = "831052837353816066"; publicKey = "faa7004a2a5096702f96f3ebeb45c7e8272c119b72c1a0894abc4d76d8cc8bad"; }; }; services.mysql = { enable = true; package = pkgs.mariadb; ensureUsers = [ { name = "trucksimulator"; ensurePermissions = { "trucksimulator.*" = "ALL PRIVILEGES"; }; } ]; ensureDatabases = [ "trucksimulator" ]; }; # reverse_proxy unix//run/trucksimulator/app.sock services.caddy.virtualHosts."${domain}".extraConfig = '' redir /invite https://discord.com/api/oauth2/authorize?client_id=831052837353816066&permissions=262144&scope=bot%20applications.commands handle /docs* { file_server browse root * ${trucksimulatorbot.packages.x86_64-linux.docs} } route /images* { uri strip_prefix /images reverse_proxy unix//run/trucksimulator/images.sock } reverse_proxy unix//run/trucksimulator/app.sock ''; }