{ lib, ... }:

let
  domain = "books.giugl.io";
  network = import ./network.nix;
in {
  services = {
    calibre-web = {
      enable = true;
      group = "media";
      options = {
        enableBookConversion = true;
        enableBookUploading = true;
      };
    };

    nginx.virtualHosts.${domain} = {
      forceSSL = true;
      enableACME = true;
      locations."/" = {
        proxyPass = "http://127.0.0.1:8083";
        extraConfig = ''
          client_max_body_size 500M;
        '';
      };
    };
  };

  networking.extraHosts = ''
    ${network.architect-lan} ${domain}
    ${network.architect-wg} ${domain}
  '';

  users.groups.media.members = [ "calibre-web" ];
}