2023-04-21 06:56:45 +00:00
{ config , lib , . . . }:
let
cweb-cfg = config . services . calibre-web ;
inherit ( cweb-cfg ) user group ;
inherit ( cweb-cfg . listen ) ip port ;
svc-dir = " / v a r / l i b / ${ cweb-cfg . dataDir } " ;
in
# XXX: disabled because of runtime errors like:
# > File "/nix/store/c7jqvx980nlg9xhxi065cba61r2ain9y-calibre-web-0.6.19/lib/python3.10/site-packages/calibreweb/cps/db.py", line 926, in speaking_language
# > languages = self.session.query(Languages) \
# > AttributeError: 'NoneType' object has no attribute 'query'
lib . mkIf false
{
2023-11-08 15:32:50 +00:00
sane . persist . sys . byStore . plaintext = [
2024-02-23 15:49:54 +00:00
{ inherit user group ; mode = " 0 7 0 0 " ; path = svc-dir ; method = " b i n d " ; }
2023-04-21 06:56:45 +00:00
] ;
services . calibre-web . enable = true ;
services . calibre-web . listen . ip = " 1 2 7 . 0 . 0 . 1 " ;
# XXX: externally populate `${svc-dir}/metadata.db` (once) from
# <https://github.com/janeczku/calibre-web/blob/master/library/metadata.db>
# i don't know why you have to do this??
# services.calibre-web.options.calibreLibrary = svc-dir;
services . nginx . virtualHosts . " c a l i b r e . u n i n s a n e . o r g " = {
addSSL = true ;
enableACME = true ;
locations . " / " = {
proxyPass = " h t t p : / / ${ ip } : ${ builtins . toString port } " ;
} ;
} ;
2023-06-07 23:34:00 +00:00
sane . dns . zones . " u n i n s a n e . o r g " . inet . CNAME . " c a l i b r e " = " n a t i v e " ;
2023-04-21 06:56:45 +00:00
}