diff --git a/pkgs/servers/olaris/default.nix b/pkgs/servers/olaris/default.nix new file mode 100644 index 000000000000..2561fed1dc60 --- /dev/null +++ b/pkgs/servers/olaris/default.nix @@ -0,0 +1,53 @@ +{ buildGoModule, fetchFromGitLab, fetchzip, installShellFiles, lib }: + +buildGoModule rec { + pname = "olaris-server"; + version = "0.4.0"; + + src = fetchFromGitLab { + owner = "olaris"; + repo = pname; + rev = "v${version}"; + hash = "sha256-iworyQqyTabTI0NpZHTdUBGZSCaiC5Dhr69mRtsHLOs="; + }; + + preBuild = let + olaris-react = fetchzip { + url = "https://gitlab.com/api/v4/projects/olaris%2Folaris-react/jobs/artifacts/v${version}/download?job=build"; + extension = "zip"; + hash = "sha256-MkxBf/mGvtiOu0e79bMpd9Z/D0eOxhzPE+bKic//viM="; + }; + in '' + # cannot build olaris-react https://github.com/NixOS/nixpkgs/issues/203708 + cp -r ${olaris-react} react/build + make generate + ''; + + ldflags = [ + "-s" + "-w" + "-X gitlab.com/olaris/olaris-server/helpers.Version=${version}" + ]; + + vendorHash = "sha256-xWywDgw0LzJhPtVK0aGgT0TTanejJ39ZmGc50A3d68U="; + + nativeBuildInputs = [ installShellFiles ]; + + # integration tests require network access + doCheck = false; + + postInstall = '' + installShellCompletion --cmd olaris-server \ + --bash <($out/bin/olaris-server completion bash) \ + --fish <($out/bin/olaris-server completion fish) \ + --zsh <($out/bin/olaris-server completion zsh) + ''; + + meta = with lib; { + description = "A media manager and transcoding server."; + homepage = "https://gitlab.com/olaris/olaris-server"; + changelog = "https://gitlab.com/olaris/olaris-server/-/releases/v${version}"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ urandom ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 53a8f8b3006a..6768a8c49732 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24148,6 +24148,8 @@ with pkgs; oauth2-proxy = callPackage ../servers/oauth2-proxy { }; + olaris-server = callPackage ../servers/olaris {}; + onlyoffice-documentserver = callPackage ../servers/onlyoffice-documentserver { }; outline = callPackage ../servers/web-apps/outline (lib.fix (super: {