{ lib , fetchFromGitHub , python }: python.pkgs.buildPythonApplication rec { pname = "bookwyrm"; version = "0.7.2"; format = "other"; src = fetchFromGitHub { owner = "bookwyrm-social"; repo = "bookwyrm"; rev = "refs/tags/v${version}"; hash = "sha256-5QhIHpNUn65qTh7ARlnGfUESoxw8hqFaoS2D2z+OSlM="; }; propagatedBuildInputs = with python.pkgs; [ aiohttp bleach celery colorthief django django-celery-beat bw-file-resubmit django-compressor django-imagekit django-model-utils django-sass-processor django-csp environs flower gunicorn libsass markdown packaging pillow psycopg2 pycryptodome dateutil redis requests responses pytz boto3 django-storages django-redis opentelemetry-api opentelemetry-exporter-otlp-proto-grpc # opentelemetry-instrumentation-celery opentelemetry-instrumentation-django # opentelemetry-instrumentation-pyscopg2 opentelemetry-sdk protobuf pyotp qrcode grpcio ]; postBuild = '' # TODO: nice build input for customisable settings cp .env.example .env substituteInPlace .env --replace " = (1024**2 * 100)" "=10000000" substituteInPlace .env --replace "7(2w1sedok=aznpq)ta1mc4i%4h=xx@hxwx*o57ctsuml0x%fr" "asdjtuledjijkhtjphkedjjstihwhod" python manage.py compile_themes python manage.py collectstatic --no-input ''; postInstall = '' mkdir -p $out cp -r static bookwyrm celerywyrm $out ''; passthru = { pythonPath = python.pkgs.makePythonPath propagatedBuildInputs; gunicorn = python.pkgs.gunicorn; celery = python.pkgs.celery; }; # hacky hacky hack shellHook = '' export PYTHONPATH=${passthru.pythonPath} ''; }