diff --git a/modules/nextcloud_hpbs_default.nix b/modules/nextcloud_hpbs_default.nix new file mode 100644 index 0000000..9a23c81 --- /dev/null +++ b/modules/nextcloud_hpbs_default.nix @@ -0,0 +1,47 @@ +{ lib, fetchFromGitHub, nixosTests, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "notify_push"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "nextcloud"; + repo = pname; + rev = "v${version}"; + hash = "sha256-QHVWiH6qkwQay0wffoyDUyVxgxzNp10ieYIsdqoEdCM="; + }; + + cargoHash = "sha256-HwE/ql8rJcGIINy+hNnpaTFEJqbmuUDrIvVI8kCpfQ8="; + + passthru = rec { + test_client = rustPlatform.buildRustPackage { + pname = "${pname}-test_client"; + inherit src version; + + buildAndTestSubdir = "test_client"; + + cargoHash = "sha256-KybnPzCM9mLF55s5eZ3qr5GRcaaYFpEdNklWEo/72Ts="; + + meta = meta // { + mainProgram = "test_client"; + }; + }; + tests = + lib.filterAttrs + (key: lib.const (lib.hasPrefix "with-postgresql-and-redis" key)) + nixosTests.nextcloud + // { + inherit test_client; + }; + }; + + meta = with lib; { + changelog = "https://github.com/nextcloud/notify_push/releases/tag/v${version}"; + description = "Update notifications for nextcloud clients"; + mainProgram = "notify_push"; + homepage = "https://github.com/nextcloud/notify_push"; + license = licenses.agpl3Plus; + platforms = platforms.linux; + maintainers = teams.helsinki-systems.members; + }; +} diff --git a/modules/nextcloud_hpbs_systemd.nix b/modules/nextcloud_hpbs_systemd.nix new file mode 100644 index 0000000..66e51e9 --- /dev/null +++ b/modules/nextcloud_hpbs_systemd.nix @@ -0,0 +1,32 @@ +{config, pkgs, lib, ...}: + +let + + personalization = import ./personalization.nix; + +in + +{ + +systemd.services.nextcloud_notify_push_hpbs = { + + unitConfig = { + Description = "Push server (High Preformance Back End) for Nextcloud Clients"; + Requires = "network-online.target"; + }; + + serviceConfig = { + Enviornment = "PORT=7867"; + ExecStart = "/run/current-system/sw/bin/notify_push /var/lib/www/nextcloud/config/config.php"; + RemainAfterExit = "yes"; + Type = "notify"; + User = "caddy"; + Group = "php"; + }; + + wantedBy = [ "multi-user.target" ]; + + }; + + +}