41 lines
		
	
	
		
			981 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			981 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, lib, pkgs, ... }:
 | |
| let
 | |
|   domain = "books.home.feal.no";
 | |
|   storage = "/tank/media/books";
 | |
|   cfg = config.services.calibre-web;
 | |
| in {
 | |
|   services = {
 | |
|     nginx.virtualHosts.${domain} = {
 | |
|       locations = {
 | |
|         "/".proxyPass = "http://${cfg.listen.ip}:${toString cfg.listen.port}";
 | |
|         "/opds".proxyPass = "http://${cfg.listen.ip}:${toString cfg.listen.port}";
 | |
|       };
 | |
|       extraConfig = ''
 | |
|         client_max_body_size 512M;
 | |
|         proxy_busy_buffers_size 512k;
 | |
|         proxy_buffers 4 512k;
 | |
|         proxy_buffer_size 256k;
 | |
|       '';
 | |
|     };
 | |
| 
 | |
|     calibre-server = {
 | |
|       enable = true;
 | |
|       user = "calibre-server";
 | |
|       libraries = [ storage ];
 | |
|     };
 | |
| 
 | |
|     calibre-web = {
 | |
|       enable = true;
 | |
|       user = "calibre-server";
 | |
|       listen.ip = "127.0.0.1";
 | |
|       listen.port = 5010;
 | |
|       options = {
 | |
|         calibreLibrary = storage;
 | |
|         enableBookConversion = true;
 | |
|         enableKepubify = true;
 | |
|         enableBookUploading = true;
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |