{ lib , writeText , fetchFromGitHub , nixosTests , python3 }: let py = python3.override { packageOverrides = final: prev: { django = prev.django_4; }; }; in py.pkgs.buildPythonApplication rec { pname = "healthchecks"; version = "2.8.1"; format = "other"; src = fetchFromGitHub { owner = "healthchecks"; repo = pname; rev = "refs/tags/v${version}"; sha256 = "sha256-lJ0AZJpznet2YKPIyMOx5ZdETZB8de5vp7sydfndxZg="; }; propagatedBuildInputs = with py.pkgs; [ apprise cron-descriptor cronsim django django-compressor fido2 minio psycopg2 pycurl pyotp segno statsd whitenoise ]; localSettings = writeText "local_settings.py" '' import os STATIC_ROOT = os.getenv("STATIC_ROOT") SECRET_KEY_FILE = os.getenv("SECRET_KEY_FILE") if SECRET_KEY_FILE: with open(SECRET_KEY_FILE, "r") as file: SECRET_KEY = file.readline() ''; installPhase = '' mkdir -p $out/opt/healthchecks cp -r . $out/opt/healthchecks chmod +x $out/opt/healthchecks/manage.py cp ${localSettings} $out/opt/healthchecks/hc/local_settings.py ''; passthru = { # PYTHONPATH of all dependencies used by the package pythonPath = py.pkgs.makePythonPath propagatedBuildInputs; tests = { inherit (nixosTests) healthchecks; }; }; meta = with lib; { homepage = "https://github.com/healthchecks/healthchecks"; description = "A cron monitoring tool written in Python & Django "; license = licenses.bsd3; maintainers = with maintainers; [ phaer ]; }; }