{ pkgs, ... }: { # Swagger UI service systemd.services.swagger-ui = { description = "Swagger UI for PostgREST API"; after = [ "postgrest.service" "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "simple"; ExecStart = "${pkgs.nodePackages.http-server}/bin/http-server /var/lib/swagger-ui -p 8080 -c-1 --cors"; Restart = "on-failure"; RestartSec = 5; User = "swagger"; }; }; # Create swagger user users.users.swagger = { isSystemUser = true; group = "swagger"; }; users.groups.swagger = {}; # Setup Swagger UI directory systemd.tmpfiles.rules = [ "d /var/lib/swagger-ui 0755 swagger swagger" ]; # Create Swagger UI index.html that points to PostgREST OpenAPI environment.etc."swagger-ui-init/index.html".text = ''