feat: started to create panoramax config

This commit is contained in:
Leyla Becker 2025-09-14 21:42:34 -05:00
parent 22b9c5b3f9
commit 88dcba346f
3 changed files with 111 additions and 0 deletions

View file

@ -25,5 +25,8 @@
(final: prev: {
mapillary-uploader = pkgs.callPackage ./mapillary-uploader.nix {};
})
(final: prev: {
panoramax = pkgs.python3.pkgs.callPackage ./panoramax.nix {};
})
];
}

View 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;
};
}

View 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
}
)
]
);
}