summaryrefslogtreecommitdiffstats
path: root/modules/tv/nginx/config.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/tv/nginx/config.nix')
-rw-r--r--modules/tv/nginx/config.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/tv/nginx/config.nix b/modules/tv/nginx/config.nix
new file mode 100644
index 000000000..e5c3dd152
--- /dev/null
+++ b/modules/tv/nginx/config.nix
@@ -0,0 +1,49 @@
+{ cfg, config, lib, pkgs, ... }:
+
+let
+ inherit (lib) concatStrings replaceChars;
+
+ indent = replaceChars ["\n"] ["\n "];
+
+ to-location = { name, value }: ''
+ location ${name} {
+ ${indent value}
+ }
+ '';
+in
+
+{
+ services.nginx =
+ let
+ name = config.services.retiolum.name;
+ qname = "${name}.retiolum";
+ in
+ assert config.services.retiolum.enable;
+ {
+ enable = true;
+ httpConfig = ''
+ include ${pkgs.nginx}/conf/mime.types;
+ default_type application/octet-stream;
+ sendfile on;
+ keepalive_timeout 65;
+ gzip on;
+ server {
+ listen 80 default_server;
+ server_name _;
+ location / {
+ return 404;
+ }
+ }
+ server {
+ listen 80;
+ server_name ${name} ${qname};
+
+ ${indent (concatStrings (map to-location cfg.retiolum-locations))}
+
+ location / {
+ return 404;
+ }
+ }
+ '';
+ };
+}