{ config, lib, pkgs, ... }: let workadventure-nix = builtins.fetchGit { url = "https://stuebinm.eu/git/workadventure-nix"; ref = "master"; }; wapkgs = import "${workadventure-nix.outPath}/wapkgs.nix" { inherit pkgs; lib = pkgs.lib; }; frontdrv = wapkgs.workadventure-tcm.front.override { environment = { PUSHER_URL = "https://exneuland.stuebinm.eu/pusher"; START_ROOM_URL = "/_/global/world.di.c3voc.de/maps/main.json"; }; }; exneuland = import ../../../pkgs/exneuland.nix; in { services.nginx = { enable = true; recommendedProxySettings = true; virtualHosts."exneuland.stuebinm.eu" = { root = "${frontdrv}/dist"; locations."/_/".tryFiles = "/index.html =404"; locations."/pusher" = { proxyPass = "http://localhost:4000"; proxyWebsockets = true; extraConfig = '' add_header Access-Control-Allow-Origin https://exneuland.stuebinm.eu; ''; }; enableACME = true; forceSSL = true; }; }; systemd.services.exneuland = { wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; description = "exneuland backend for workadventure"; serviceConfig = { ExecStart = "${exneuland}/bin/exneuland start"; Restart = "always"; }; }; }