rec {
  cfg = {
    v0_27_0 = rec {
      version = "0.27.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "0rarzdmrrifncmrr7mdq62n2l6aa1zzwbh45xbbr64xnx86ld415";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0chzjaqb0mdpfr5qg9frm08fx8nkmsc0kjnjxyd00kzjq17i7r07";
      };
    };
    v0_26_0 = rec {
      version = "0.26.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1wdjqxyg5d2zjfsw7gnjbsh6wyw300yd83vgy60yffdm1rishlgl";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1d66nspsnlha9hc84mcycsds3r8d4q9grgnvg8vcykd7z9jaak7i";
      };
    };
    v0_25_1 = rec {
      version = "0.25.1";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "0c6h9jh6kkqlc1ynqmagzb4ig6ci11jnm725p0mdgk1m5hqnm9dk";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0plps0mvwrx57cn8n7kl6h8mr319hf40rjyji3l7ymi2c83jf8v7";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1d7y6kjz7aqy8xiqx8592hg1pzfqmnz8jlz3770ahfj2yh3p8s3z";
      };
    };
    v0_24_0 = rec {
      version = "0.24.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "14ky6b6s2d75nhyslyggdcib8jhm7b5gh3gkwdv0hcf7m8bfx95k";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0hy0rcg9qj9hyv3npzd0dijfclx0yiilfxc97w301yqwkp14ac2x";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "0bz4fw7j9rw354fm31mrprk58gmvhs4m77bxsj04b3xx5v5jaml2";
      };
    };
    v0_23_0 = rec {
      version = "0.23.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1sd4r6358kf3nb0x1ypw77a1p17984kwdbjijzkyvvw2757w7rig";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0n7ig7xk2in655iqs92ylvpchgysbxlfq3vwz296ch8pxp48p49n";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1jqiva0p929kbcy6k6pxzlgmxfjrcbvqpwhdg0wyxd35k97gww6l";
      };
    };
    v0_22_0 = rec {
      version = "0.22.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1lysbqc62c2ijqg948wh882b6609mhal9n4ab9y4xjs788lfvd7h";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0g5ajkrsnbdig0hw5nz1g75ghvds6f2389zy2ccs4zfjws6xp1nr";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "00n9z2z06hr431xascpxmb6vn5lc2a3hz4p2ap3zc1nbkkdwmkh2";
      };
    };
    v0_21_0 = rec {
      version = "0.21.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1bk904wsyfv78cgbf0srk0jzm2qd7ycz2fxci75s7dv0g3r7cas0";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0b05qpshmigwf4swixwxd1nff639yvbbjwn8s9aj7yi9zrc5wpj6";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1h2b2pf1zi811yasmfxnb6nnxysbcvmxlh1b0iyh9hmkh3pi1v7x";
      };
    };
    v0_20_0 = rec {
      version = "0.20.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1kiczs8z4j8m00w1yqirsnnjyka6knc3i6laxrb93z64n164gdwz";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1lvvp2irgfbmfrqg8y23n07qwx16q8666b1ywrka84fv6c0zrig9";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1nnvn1gwvv6i3f6wpckm8l8hagj87vmfp70ykpxndk5i1i2nyfay";
      };
    };
    v0_1_0 = rec {
      version = "0.1.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "19bmvrk07s4gsw4dszbilfv7jns7bp20lfr0ia73xdmn5w8kdhq0";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "175yz0lxra0qv63xjl90hh32idm13c1k1aah2hqc0ncpx22scp5v";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "03w5cxylk2yfkah15qrx5cl21gfly0vwa0czglb1swsri3808rdb";
      };
    };
  };
  pkg = v: import ./pkg.nix v;
  currentPkg = pkg cfg.v0_27_0;
  module-joex = ./module-joex.nix;
  module-restserver = ./module-server.nix;
  modules = [ module-joex
              module-restserver
            ];
}
