|
|
@@ -46,6 +46,8 @@ in rec {
|
|
|
PYTHONPATH = sccd.outPath;
|
|
|
};
|
|
|
|
|
|
+ # build static web app - can host this with any static file server (e.g. nginx, apache, ...)
|
|
|
+ # 'collab' plugin requires a special backend server though.
|
|
|
staticWebApp = derivation {
|
|
|
name = "drawio-static";
|
|
|
system = builtins.currentSystem;
|
|
|
@@ -57,6 +59,7 @@ in rec {
|
|
|
args = [ ./static-webapp-builder.sh ];
|
|
|
};
|
|
|
|
|
|
+ # build a Node-based web server that hosts the application (statically) and also runs a websocket endpoint for the 'collab' plugin.
|
|
|
server = derivation {
|
|
|
name = "drawio-server";
|
|
|
system = builtins.currentSystem;
|
|
|
@@ -72,11 +75,14 @@ in rec {
|
|
|
args = [ ./server-builder.sh ];
|
|
|
};
|
|
|
|
|
|
+ # build a Docker container with everything cooked in.
|
|
|
dockerServer = pkgs.dockerTools.buildImage {
|
|
|
name = "drawio-server";
|
|
|
- # contents = ;
|
|
|
+ contents = server;
|
|
|
config = {
|
|
|
- Cmd = [ "node" ];
|
|
|
+ Cmd = [ "bin/drawioserver" "--state-dir" "/state"];
|
|
|
+ Volumes = { "/state" = {}; };
|
|
|
+ ExposedPorts = { "8700/tcp" = {}; };
|
|
|
};
|
|
|
};
|
|
|
}
|