diff --git a/tools/genenotebook/launch_gnb.sh b/tools/genenotebook/launch_gnb.sh
index 4c1ad3d..a27dc9a 100755
--- a/tools/genenotebook/launch_gnb.sh
+++ b/tools/genenotebook/launch_gnb.sh
@@ -2,7 +2,10 @@
set -e
-echo "Running mongod: "
+# Make sure the file always exists even on first grep
+touch mongod.log
+
+echo "Starting mongod, listening on unix socket in $(pwd)"
mongod --dbpath ./mongo_db/ --unixSocketPrefix "$(pwd)" --bind_ip fake_socket --logpath ./mongod.log --pidfilepath ./mongo.pid &
echo "Waiting while mongod starts up"
@@ -26,8 +29,15 @@ done;
TMP_STORAGE=$(pwd)/tmp_storage
mkdir "$TMP_STORAGE"
+# Make sure the file always exists
+touch gnb.log
+
export NODE_OPTIONS="--max-old-space-size=$((${GALAXY_MEMORY_MB:-8192} * 75 / 100))"
+# Find free port at the last moment
+export GNB_PORT=$(bash "$(dirname "${BASH_SOURCE[0]}")/find_free_port.sh")
+echo "Mongod is ready, starting gnb now on port ${GNB_PORT} and with mongodb://${MONGO_URI}%2Fmongodb-27017.sock/genenotebook"
+
genoboo run --storage-path "$TMP_STORAGE" --port ${GNB_PORT} --mongo-url mongodb://$MONGO_URI%2Fmongodb-27017.sock/genenotebook > ./gnb.log 2>&1 &
export GNB_PID=$!
@@ -38,7 +48,8 @@ while ! grep -q "GeneNoteBook server started, serving" ./gnb.log; do
tries_gnb=$((tries_gnb + 1))
- if [ "$tries_gnb" -ge 30 ]; then
+ # GNB can take a while to start depending on storage (accessing many many small js files)
+ if [ "$tries_gnb" -ge 150 ]; then
echo "Failed to launch GeneNoteBook:" 1>&2;
cat ./gnb.log 1>&2;
kill $GNB_PID $(<"./mongo.pid");
@@ -47,3 +58,9 @@ while ! grep -q "GeneNoteBook server started, serving" ./gnb.log; do
sleep 3
done;
+
+# Make sure that gnb is working, and that it's serving on the expected port
+curl "http://127.0.0.1:${GNB_PORT}/healthcheck" > /dev/null
+grep -q "Healthcheck OK" ./gnb.log
+
+echo "GNB is ready"
diff --git a/tools/genenotebook/macros.xml b/tools/genenotebook/macros.xml
index 6cfcbc8..863594a 100644
--- a/tools/genenotebook/macros.xml
+++ b/tools/genenotebook/macros.xml
@@ -7,7 +7,7 @@
- 0.4.12
+ 0.4.13
@TOOL_VERSION@+galaxy0
@@ -37,7 +37,6 @@
For some unknwon reason, unixSocketPrefix needs an absolute path
-->