at 25.11-pre 1.0 kB view raw
1{ lib, ... }: 2 3let 4 port = 3142; 5 defaultPort = 8083; 6in 7{ 8 name = "calibre-web"; 9 meta.maintainers = with lib.maintainers; [ pborzenkov ]; 10 11 nodes = { 12 customized = 13 { pkgs, ... }: 14 { 15 services.calibre-web = { 16 enable = true; 17 listen.port = port; 18 options = { 19 calibreLibrary = "/tmp/books"; 20 reverseProxyAuth = { 21 enable = true; 22 header = "X-User"; 23 }; 24 }; 25 }; 26 environment.systemPackages = [ pkgs.calibre ]; 27 }; 28 }; 29 testScript = '' 30 start_all() 31 32 customized.succeed( 33 "mkdir /tmp/books && calibredb --library-path /tmp/books add -e --title test-book" 34 ) 35 customized.succeed("systemctl restart calibre-web") 36 customized.wait_for_unit("calibre-web.service") 37 customized.wait_for_open_port(${toString port}) 38 customized.succeed( 39 "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep test-book" 40 ) 41 ''; 42}