diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/etebase')
-rw-r--r-- | nixpkgs/pkgs/servers/etebase/default.nix | 73 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/etebase/secret.patch | 26 |
2 files changed, 99 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/etebase/default.nix b/nixpkgs/pkgs/servers/etebase/default.nix new file mode 100644 index 000000000000..f3ee68352ee0 --- /dev/null +++ b/nixpkgs/pkgs/servers/etebase/default.nix @@ -0,0 +1,73 @@ +{ lib +, fetchFromGitHub +, withLdap ? true +, python3 +, withPostgres ? true +, nix-update-script +, nixosTests +}: + +let + python = python3.override { + packageOverrides = self: super: { + pydantic = super.pydantic_1; + }; + }; +in +python.pkgs.buildPythonPackage rec { + pname = "etebase-server"; + version = "0.13.1"; + + src = fetchFromGitHub { + owner = "etesync"; + repo = "server"; + rev = "refs/tags/v${version}"; + hash = "sha256-GEieXue3Kvc4zZjfypKLmTmhNPbn/GR8g0qEqkl+wkw="; + }; + + patches = [ ./secret.patch ]; + + doCheck = false; + + propagatedBuildInputs = with python.pkgs; [ + aiofiles + django_4 + fastapi + msgpack + pynacl + redis + uvicorn + websockets + watchfiles + uvloop + pyyaml + python-dotenv + httptools + typing-extensions + ] ++ lib.optional withLdap python-ldap + ++ lib.optional withPostgres psycopg2; + + postInstall = '' + mkdir -p $out/bin $out/lib + cp manage.py $out/bin/etebase-server + wrapProgram $out/bin/etebase-server --prefix PYTHONPATH : "$PYTHONPATH" + chmod +x $out/bin/etebase-server + ''; + + passthru.updateScript = nix-update-script {}; + passthru.python = python; + # PYTHONPATH of all dependencies used by the package + passthru.pythonPath = python.pkgs.makePythonPath propagatedBuildInputs; + passthru.tests = { + nixosTest = nixosTests.etebase-server; + }; + + meta = with lib; { + homepage = "https://github.com/etesync/server"; + description = "Etebase (EteSync 2.0) server so you can run your own"; + mainProgram = "etebase-server"; + changelog = "https://github.com/etesync/server/blob/${version}/ChangeLog.md"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ felschr phaer ]; + }; +} diff --git a/nixpkgs/pkgs/servers/etebase/secret.patch b/nixpkgs/pkgs/servers/etebase/secret.patch new file mode 100644 index 000000000000..182d3259248e --- /dev/null +++ b/nixpkgs/pkgs/servers/etebase/secret.patch @@ -0,0 +1,26 @@ +diff --git a/etebase_server/settings.py b/etebase_server/settings.py +index 9baf8d3..501d9f6 100644 +--- a/etebase_server/settings.py ++++ b/etebase_server/settings.py +@@ -23,11 +22,6 @@ + # Quick-start development settings - unsuitable for production + # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +-# SECURITY WARNING: keep the secret key used in production secret! +-# See secret.py for how this is generated; uses a file 'secret.txt' in the root +-# directory +-SECRET_FILE = os.path.join(BASE_DIR, "secret.txt") +- + # SECURITY WARNING: don't run with debug turned on in production! + DEBUG = True + +@@ -143,7 +137,7 @@ + + section = config["global"] + +- SECRET_FILE = section.get("secret_file", SECRET_FILE) ++ SECRET_FILE = section.get("secret_file", None) + STATIC_ROOT = section.get("static_root", STATIC_ROOT) + STATIC_URL = section.get("static_url", STATIC_URL) + MEDIA_ROOT = section.get("media_root", MEDIA_ROOT) + |