{ pkgs, config, lib, ... }:
{
  options.services.nginx.rtmp = {
    enable = lib.mkOption {
      type = lib.types.bool;
      default = false;
    };
  };

  config = lib.mkIf config.services.nginx.rtmp.enable {
    services.nginx = {
      package = (pkgs.nginx.override {
        modules = with pkgs.nginxModules; [ rtmp ];
      });
      appendConfig = ''
        rtmp {
          server {
            listen 1935;
            chunk_size 4096;
            allow publish all;
            application stream {
              record off;
              live on;
              allow play all;
              hls on;
              hls_path /var/www/landing-page/streams/hls/;
              hls_fragment_naming system;
              hls_fragment 3;
              hls_playlist_length 40;
            }
          }
        }
      '';
    };

    systemd.services.nginx.serviceConfig = {
      ReadWritePaths = [ "/var/www/landing-page/streams/hls/" ];
    };
  };
}