rec {
  cfg = {
    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_19_0 = rec {
      version = "0.19.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "17dr8apznv5b5v6rhfbcy777jy3ndfwy29qz8xlrbknj9fmcbnl2";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1z55ay0aivb1aln4hjqawwirsw6lbj0w57l8zbdldn5k2q7z5mw8";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "01mlp6jxr9sfnif5cvs0nmb16hgr51zi7dk1svrbwchpg962sz7y";
      };
    };
    v0_18_0 = rec {
      version = "0.18.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1c9h72ill61imnm1y6hpb7349nv59vym6lghs333mjblbz26lx5p";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0fspg3mxvr3sjd59raxzq5njvm1yvfmqcn8ymhxvmb3mm5zbk3iv";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "0z5vw95zar90kdkaafi22pp5ilcc3j5n7g78d0s7zp9xyfzcmhpq";
      };
    };
    v0_17_1 = rec {
      version = "0.17.1";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1mvzpf8cpc3kwlvvyib2gmbnls6dic7f7z525nvg7v2pm80yy1r5";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0ymi2smwd5m0jqb6jrnld3xralyrq77h9r6m639wiwjdf4ka8s4a";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1fncqw7aif1nv03cjckn401ykbm785hkiws00wbv2qmakymxl5y4";
      };
    };
    v0_16_0 = rec {
      version = "0.16.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1zmm65plmz02jj0cmjc9ipw056d7gak3b89csaji95dvl6ad6fas";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "191bv32ykld5zpwlw4y21l4pr0msx17zy4icnff616s0xd1zi6k7";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "0daycda556x1hcjhmgyfw0d7xgkpg4xgn1vr5n1j07fcmnr6sqv5";
      };
    };
    v0_15_0 = rec {
      version = "0.15.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1vy8js46xn9jnsk812hnkzznykc4kjbs37ddg2ikx3fhmqd4gcim";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "08ahcf871jvaph6aj8l4ihay6hcwksyy3vbv5aj3w65h60nhvrrz";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1yymsd4n0llidrk8qchb5mghihz87chk7rxgp0y4lh8wq8cqdqnz";
      };
    };
    v0_14_0 = rec {
      version = "0.14.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1sb6afn9s6iis0ngb2qn2c7v4i0rpgdwslvgfzcj2iqd1rzyngxb";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0di581l0qrvy7gyrx2cfnbqjwqjazgcrxfgnsf4m991bick7r7si";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1msij76dwnyirgs25ra0h8wjyh29hzlqbw6jy28lm6jn4hch0cxl";
      };
    };
    v0_13_0 = rec {
      version = "0.13.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "194hp0sd9i8s2nys5hl5kfndqlvhsafr5m3vv8inih6ajcz991jq";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0an4a0gqklh2sr3pi7a43lljlwc4ykfvmvj9wp2yd8nf36gc6h6y";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "169dik05s37xm3kh3alglx1cs3wp6y9zsglq4vv3f2cqyh16dr9r";
      };
    };
    v0_12_0 = rec {
      version = "0.12.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1wskwlsgbnx8izaflaga00py5abb2kiy2p69ry2j0dbbafnlcgzi";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1ad0wbvb8ssqdvf8w9449bdfva3z2rv2dpk3dcjp9vwl78x01g20";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1nx53imh7jvx9kyfgp1bnc3mdmg5dzm8a4iws8jsbl4dxng46bbc";
      };
    };
    v0_11_1 = rec {
      version = "0.11.1";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "16vwk5mbm4jfp3awghwi8mqz7h4garaqk15fx7gsz8yr05c7yzz5";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1mdk68g0zzp5zlr458z7dsn12y2pni2b9c9262almqs53sza7dqq";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1ca7jlwjn505f7s1apbi8xi987yqb1hlrivj6gz25c092xc4bv8c";
      };
    };
    v0_11_0 = rec {
      version = "0.11.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1cxwca69bxha1p8bfgkmg2qx0gwai6r1nz8ymhwah32x1mmvp2cf";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "133vd9rsi9lwf8mrk9yfwbp0w2s8xyavmlkz8acl43zncxnzlb2b";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "0hj2dxk09lrhnr9ph9zr117xf61ql7snkdp86gpap46a7rwlasap";
      };
    };
    v0_10_0 = rec {
      version = "0.10.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "0md3xqy1qbw8hg6n90i7w5n6nzqipqg9cmc9qypyvmwmxcfpr569";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1ahc3y0m0gn6s38bddy7sq28ssg5qw57sm456rihv3ms9llwpniq";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1kd15p5dj4ksfp6ky5xn8c1axdcrp2iplagz3s7p4jzikr3x8rw0";
      };
    };
    v0_9_0 = rec {
      version = "0.9.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "0hh9dxmq64qsg28mrvy8vnfq0l1djvlv5n6a7nhvclsf27b9crdm";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0hiw2lhf4cdbvvsfgshn0szs7k6x6g79zjadlhglsb2v40x2vgjj";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "0d5k9yzbmhma0si4paykyf43irqhnpqk7w2h1dpwjmzdaic8s3g8";
      };
    };
    v0_8_0 = rec {
      version = "0.8.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1s4p6ljrzc8d50nsxngwm16jsr7gq8q9nybazdr3mx2g94h7smjw";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "16dnb04rbpy0nvzddfrlcfq6a9lypsf666yqfwm1fh42lsy09ji4";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "0ziha21pwqqz356q8p2zdd9k4xm8k1p5a7sgbwss2ihplw5zi7vi";
      };
    };
    v0_7_0 = rec {
      version = "0.7.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "0kvc1jjkn88z6nq5f8f4a1n6jn4n1gnmivm2r34i3j5pw972kh15";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "14jsx5ln1y8xavz4550bbm3cnrp98vzskmwrq0vk79knsxvbf7sy";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "01sa8idrz0zihr3206mwgijp0mwswa4kprzfn8pfwps7nhxsqpdk";
      };
    };
    v0_6_0 = rec {
      version = "0.6.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1mh8f1hkhh3gy5bwvzxb2kyr7v169w59448pi67q4d49kffk3wl3";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "0p1jjaz19sajvzf750mav4h47q0a79p8555irbd4hpv3i8fpasnb";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1yh65crg8hjmmp5ql4k44ipq1aw93qfx2jkc2lbdvi8vza5xaq89";
      };
    };
    v0_5_0 = rec {
      version = "0.5.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1cr1x5ncl8prrp50mip17filyh2g1hq4ycjq4h4zmaj1nlvzrfy5";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1pgkay99h59c2hnxhibrg8dy2j5bmlkv1hi18snccf7d304xl6w6";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1bqm3bwg4n2llbsipp9ydmlkk3hv0x0jx482x4jb98x0fjyipzyy";
      };
    };
    v0_4_0 = rec {
      version = "0.4.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1n57rspjxwz6znjl69qp59wqyj2374h8b7d90816n0akcqmnkak4";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1jrmnm5bxi7mc9gzwnrpwvgclx5qclmw78dq0pf8xljwmh6zci26";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1xck4h8g0z2avvyf253039yzp5g6fahyq8mkh2bpis0f7bhrrazy";
      };
    };
    v0_3_0 = rec {
      version = "0.3.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "0j942js8h5v7h64bsizylhf28a57y4lpwyl9nwqcg8n2vd059bz5";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "10rfj9ar5aj0hnis4j62k4d2d7pibgbph3qwj7mvn25p51dcfdvp";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "1swkmgxfg5rcs45x402gy7s1p40c4ff8hil5qvlx22p7ahwzr25m";
      };
    };
    v0_2_0 = rec {
      version = "0.2.0";
      server = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip";
        sha256 = "1mpyd66pcsd2q4wx9vszldqlamz9qgv6abrxh7xwzw23np61avy5";
      };
      joex = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip";
        sha256 = "1ycfcfcv24vvkdbzvnahj500gb5l9vdls4bxq0jd1zn72p4z765f";
      };
      tools = {
        url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-tools-${version}.zip";
        sha256 = "0hd93rlnnrq8xj7knp38x1jj2mv4y5lvbcv968bzk5f1az51qsvg";
      };
    };
    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_23_0;
  module-joex = ./module-joex.nix;
  module-restserver = ./module-server.nix;
  module-consumedir = ./module-consumedir.nix;
  modules = [ module-joex
              module-restserver
              module-consumedir
            ];
}
