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/
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
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"');
 | 
						|
  '';
 | 
						|
})
 |