1
0
Fork 0
piped-flake/module/frontend.nix
2023-10-16 18:59:30 +01:00

38 lines
916 B
Nix

{
config,
lib,
...
}: let
inherit (lib.modules) mkIf mkDefault;
cfg = config.services.piped;
frontendConfig = cfg.frontend;
nginxConfig = frontendConfig.nginx;
frontendPackage = frontendConfig.package.override {
backendDomain = cfg.backend.domain;
};
in {
config = mkIf (frontendConfig.enable) {
# https://github.com/TeamPiped/Piped/blob/master/docker/nginx.conf
services.nginx = {
enable = true;
virtualHosts."${frontendConfig.domain}" = {
forceSSL = mkDefault nginxConfig.forceSSL;
enableACME = mkDefault nginxConfig.enableACME;
locations."/" = {
root = "${frontendPackage}/share/piped-frontend";
index = "index.html index.htm";
};
# I have no idea why try_files for Single Page Apps doesn't work here
extraConfig = ''
error_page 404 =200 /index.html;
'';
};
};
};
}