diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2019-03-26 19:04:28 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2019-04-08 23:54:57 +0200 |
commit | acbb74ed18c5e23893f18d5ac2c5eb9b643e3f64 (patch) | |
tree | 8e6c44cdd6b9b4f3f6fd45e5a2672fdefabc5c98 /nixos/tests/documize.nix | |
parent | ef48aaff73b5e01fa4e3878ca2540ea877d2aa67 (diff) |
documize-community: init at 2.2.1
Documize is an open-source alternative for wiki software like Confluence
based on Go and EmberJS. This patch adds the sources for the community
edition[1], for commercial their paid-plan[2] needs to be used.
For commercial use a derivation that bundles the commercial package and
contains a `$out/bin/documize` can be passed to
`services.documize.enable`.
The package compiles the Go sources, the build process also bundles the
pre-built frontend from `gui/public` into the binary.
The NixOS module generates a simple `systemd` unit which starts the
service as a dynamic user, database and a reverse proxy won't be
configured.
[1] https://www.documize.com/get-started/
[2] https://www.documize.com/pricing/
Diffstat (limited to 'nixos/tests/documize.nix')
-rw-r--r-- | nixos/tests/documize.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/nixos/tests/documize.nix b/nixos/tests/documize.nix new file mode 100644 index 000000000000..8b852a4f7795 --- /dev/null +++ b/nixos/tests/documize.nix @@ -0,0 +1,58 @@ +import ./make-test.nix ({ pkgs, lib, ...} : { + name = "documize"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ ma27 ]; + }; + + machine = { pkgs, ... }: { + environment.systemPackages = [ pkgs.jq ]; + + services.documize = { + enable = true; + port = 3000; + dbtype = "postgresql"; + db = "host=localhost port=5432 sslmode=disable user=documize password=documize dbname=documize"; + }; + + systemd.services.documize-server = { + after = [ "postgresql.service" ]; + requires = [ "postgresql.service" ]; + }; + + services.postgresql = { + enable = true; + initialScript = pkgs.writeText "psql-init" '' + CREATE ROLE documize WITH LOGIN PASSWORD 'documize'; + CREATE DATABASE documize WITH OWNER documize; + ''; + }; + }; + + testScript = '' + startAll; + + $machine->waitForUnit("documize-server.service"); + $machine->waitForOpenPort(3000); + + my $dbhash = $machine->succeed("curl -f localhost:3000 " + . " | grep 'property=\"dbhash' " + . " | grep -Po 'content=\"\\K[^\"]*'" + ); + + chomp($dbhash); + + $machine->succeed("curl -X POST " + . "--data 'dbname=documize' " + . "--data 'dbhash=$dbhash' " + . "--data 'title=NixOS' " + . "--data 'message=Docs' " + . "--data 'firstname=John' " + . "--data 'lastname=Doe' " + . "--data 'email=john.doe\@nixos.org' " + . "--data 'password=verysafe' " + . "-f localhost:3000/api/setup" + ); + + $machine->succeed('test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"'); + ''; +}) |