forked from jan-leila/nix-config
		
	feat: started to create panoramax config
This commit is contained in:
		
							parent
							
								
									22b9c5b3f9
								
							
						
					
					
						commit
						88dcba346f
					
				
					 3 changed files with 111 additions and 0 deletions
				
			
		|  | @ -25,5 +25,8 @@ | ||||||
|     (final: prev: { |     (final: prev: { | ||||||
|       mapillary-uploader = pkgs.callPackage ./mapillary-uploader.nix {}; |       mapillary-uploader = pkgs.callPackage ./mapillary-uploader.nix {}; | ||||||
|     }) |     }) | ||||||
|  |     (final: prev: { | ||||||
|  |       panoramax = pkgs.python3.pkgs.callPackage ./panoramax.nix {}; | ||||||
|  |     }) | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										65
									
								
								modules/common-modules/pkgs/panoramax.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								modules/common-modules/pkgs/panoramax.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,65 @@ | ||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   fetchFromGitLab, | ||||||
|  |   buildPythonPackage, | ||||||
|  |   flit-core, | ||||||
|  |   flask, | ||||||
|  |   pillow, | ||||||
|  |   requests, | ||||||
|  |   python-dotenv, | ||||||
|  |   authlib, | ||||||
|  |   sentry-sdk, | ||||||
|  |   python-dateutil, | ||||||
|  |   croniter, | ||||||
|  |   pydantic, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   pname = "geovisio"; | ||||||
|  |   version = "2.10.0"; | ||||||
|  |   repo = fetchFromGitLab { | ||||||
|  |     owner = "panoramax"; | ||||||
|  |     repo = "server/api"; | ||||||
|  |     rev = version; | ||||||
|  |     hash = "sha256-kCLcrOe7jJdIfmWWOmxQ5dOj8ZG2B7s0qFpHXs02B/E="; | ||||||
|  |   }; | ||||||
|  | in | ||||||
|  |   buildPythonPackage { | ||||||
|  |     inherit pname version; | ||||||
|  | 
 | ||||||
|  |     pyproject = true; | ||||||
|  | 
 | ||||||
|  |     src = repo; | ||||||
|  | 
 | ||||||
|  |     build-system = [ | ||||||
|  |       flit-core | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |       flask | ||||||
|  |       pillow | ||||||
|  |       requests | ||||||
|  |       python-dotenv | ||||||
|  |       authlib | ||||||
|  |       sentry-sdk | ||||||
|  |       python-dateutil | ||||||
|  |       croniter | ||||||
|  |       pydantic | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     # Skip tests as they may require network access or specific setup | ||||||
|  |     doCheck = false; | ||||||
|  | 
 | ||||||
|  |     # Disable runtime dependencies check as many dependencies are not available in nixpkgs | ||||||
|  |     dontCheckRuntimeDeps = true; | ||||||
|  | 
 | ||||||
|  |     # Disable imports check as many dependencies are not available in nixpkgs | ||||||
|  |     pythonImportsCheck = []; | ||||||
|  | 
 | ||||||
|  |     meta = with lib; { | ||||||
|  |       description = "Panoramax API client and tools for street-level imagery platform"; | ||||||
|  |       homepage = "https://gitlab.com/panoramax/server/api"; | ||||||
|  |       license = licenses.mit; | ||||||
|  |       maintainers = []; | ||||||
|  |       platforms = platforms.all; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
							
								
								
									
										43
									
								
								modules/nixos-modules/server/panoramax.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								modules/nixos-modules/server/panoramax.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   osConfig, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   cfg = config.services.panoramax; | ||||||
|  | in { | ||||||
|  |   options.services.panoramax = { | ||||||
|  |     enable = lib.mkEnableOption "panoramax"; | ||||||
|  | 
 | ||||||
|  |     package = lib.mkOption { | ||||||
|  |       type = lib.types.package; | ||||||
|  |       default = pkgs.panoramax; | ||||||
|  |       description = "The panoramax package to use"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     # TODO: create configs | ||||||
|  |     # TODO: auto config db | ||||||
|  |     # config = { | ||||||
|  |     #   DB_PORT = lib.mkOption {}; | ||||||
|  |     #   DB_HOST = lib.mkOption {}; | ||||||
|  |     #   DB_USERNAME = lib.mkOption {}; | ||||||
|  |     #   DB_PASSWORD = lib.mkOption {}; | ||||||
|  |     #   DB_NAME = lib.mkOption {}; | ||||||
|  |     #   FS_URL = lib.mkOption {}; | ||||||
|  |     # }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = lib.mkIf cfg.enable ( | ||||||
|  |     lib.mkMerge [ | ||||||
|  |       { | ||||||
|  |         # TODO: configure options for the package | ||||||
|  |       } | ||||||
|  |       ( | ||||||
|  |         lib.mkIf osConfig.host.impermanence.enable { | ||||||
|  |           # TODO: configure impermanence for panoramax data | ||||||
|  |         } | ||||||
|  |       ) | ||||||
|  |     ] | ||||||
|  |   ); | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue