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: { | ||||
|       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