summaryrefslogtreecommitdiffstats
path: root/nixos/tests/documize.nix
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2019-03-26 19:04:28 +0100
committerMaximilian Bosch <maximilian@mbosch.me>2019-04-08 23:54:57 +0200
commitacbb74ed18c5e23893f18d5ac2c5eb9b643e3f64 (patch)
tree8e6c44cdd6b9b4f3f6fd45e5a2672fdefabc5c98 /nixos/tests/documize.nix
parentef48aaff73b5e01fa4e3878ca2540ea877d2aa67 (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.nix58
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"');
+ '';
+})