lol
1{ lib, fetchFromGitHub, buildPythonPackage, aiofiles, django_3
2, fastapi, msgpack, pynacl, redis, typing-extensions
3, withLdap ? true, python-ldap
4, withPostgres ? true, psycopg2 }:
5
6buildPythonPackage rec {
7 pname = "etebase-server";
8 version = "0.10.0";
9 format = "other";
10
11 src = fetchFromGitHub {
12 owner = "etesync";
13 repo = "server";
14 rev = "v${version}";
15 sha256 = "sha256-z6aiXSWdLcDfOpqC5epsclXWxJq59MqWDQOnnFqGwz4=";
16 };
17
18 patches = [ ./secret.patch ];
19
20 propagatedBuildInputs = [
21 aiofiles
22 django_3
23 fastapi
24 msgpack
25 pynacl
26 redis
27 typing-extensions
28 ] ++ lib.optional withLdap python-ldap
29 ++ lib.optional withPostgres psycopg2;
30
31 installPhase = ''
32 mkdir -p $out/bin $out/lib
33 cp -r . $out/lib/etebase-server
34 ln -s $out/lib/etebase-server/manage.py $out/bin/etebase-server
35 wrapProgram $out/bin/etebase-server --prefix PYTHONPATH : "$PYTHONPATH"
36 chmod +x $out/bin/etebase-server
37 '';
38
39 meta = with lib; {
40 homepage = "https://github.com/etesync/server";
41 description = "An Etebase (EteSync 2.0) server so you can run your own.";
42 license = licenses.agpl3Only;
43 maintainers = with maintainers; [ felschr ];
44 };
45}