cytomine installation

I have today installed the Cytomine version 3 from Here I will explain in detail the different steps needed to install the software.

Firstly I installed a Linux Ubuntu 18.04LTS with 16VCPU’s and 64GB memory in the Norwegian UH OpenStack cloud.

Then I installed the Docker-CE with following bash commands:


# ubuntu packages, nice to have
apt -y install mailutils
apt -y install htop
apt -y install unzip
apt -y install mailutils

# docker ce
apt-get -y install apt-transport-https \
    ca-certificates \
    curl \

curl -fsSL | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
    "deb [arch=amd64] \
    $(lsb_release -cs) \
sudo apt-get -y update
sudo apt-get -y install docker-ce

The docker service is started with:

service docker start

Next I read the documentation:

The next bash commands are:

mkdir Cytomine_bootstrap/
cd Cytomine_bootstrap/
wget -O
mv Cytomine-bootstrap-3.0.0/* .
rm -rf Cytomine-bootstrap-3.0.0/

Then the file needed to be edited to fit our setup:


Or if you prefer vim:


The main changes in our file were:


the 4 domain names were then added to our DNS server.

Then I ran the script:


Which produced the following file:


# Copyright (c) 2009-2020. Authors: see NOTICE file.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# See the License for the specific language governing permissions and
# limitations under the License.

docker create --name memcached \
--restart=unless-stopped \
cytomine/memcached:v1.1.2 > /dev/null

docker cp $PWD/configs/memcached/memcached.conf memcached:/etc/memcached.conf
docker start memcached

docker create --name rabbitmq \
-p 5672:5672 -p 15672:15672 \
--restart=unless-stopped \
cytomine/rabbitmq:v1.1.2 > /dev/null

docker start rabbitmq

docker volume create --name postgis_data > /dev/null
# create database docker
docker run -d -m 8g --name postgresql -v postgis_data:/var/lib/postgresql \
--restart=unless-stopped \
cytomine/postgis:v2.0.0 > /dev/null

docker volume create --name mongodb_data > /dev/null
# create mongodb docker
docker run -d --name mongodb -v mongodb_data:/data/db \
--restart=unless-stopped \
cytomine/mongodb:v1.1.2 > /dev/null

if [ ! -e $PWD/configs/software_router/keys/ssh_key ]
    echo "ssh keys for software_router must exists !"
    echo "generate them and put them in the $PWD/configs/software_router/keys folder "
    exit 1

docker volume create --name slurm_data > /dev/null
# create slurm docker
docker create --name slurm \
--privileged \
-h cytomine-slurm \
-v slurm_data:/var/lib/mysql \
-v singularity_images:/data/softwares/images \
-v /etc/localtime:/etc/localtime \
cytomine/slurm:v1.0.0 > /dev/null

docker cp $PWD/configs/software_router/keys/ slurm:/home/cytomine/.ssh/authorized_keys
docker cp $PWD/hosts/slurm/ slurm:/tmp/
docker start slurm

docker create --name iipOff \
--link memcached:memcached \
-v /data/www/images:/data/www/images \
--privileged -e NB_IIP_PROCESS=10 \
--restart=unless-stopped \
cytomine/iipofficial:v1.2.0 > /dev/null

docker cp $PWD/configs/iipOff/nginx.conf.sample iipOff:/tmp/nginx.conf.sample
docker start iipOff

docker create --name iipCyto \
--link memcached:memcached \
-v /data/www/images:/data/www/images \
--privileged -e NB_IIP_PROCESS=10 \
--restart=unless-stopped \
cytomine/iipcyto:v1.2.1 > /dev/null

docker cp $PWD/configs/iipCyto/nginx.conf.sample iipCyto:/tmp/nginx.conf.sample
docker start iipCyto

docker create --name bioformat \
-v /data/www/images:/data/www/images \
--restart=unless-stopped \
cytomine/bioformat:v1.1.2 > /dev/null

docker start bioformat

docker create --name ims \
--link bioformat:bioformat \
-e IMS_STORAGE_PATH=/data/www/images \
-v /data/www/images:/data/www/images \
-v /data/www/images/_buffer:/tmp/uploaded \
--restart=unless-stopped \
cytomine/ims:v1.2.3 > /dev/null

docker cp $PWD/configs/ims/ ims:/usr/share/tomcat7/.grails/
docker cp $PWD/hosts/ims/ ims:/tmp/
docker start ims

docker create --name core \
--link postgresql:postgresql \
--link mongodb:mongodb \
--link rabbitmq:rabbitmq \
-v /etc/localtime:/etc/localtime \
-v /data/softwares/code:/data/softwares/code \
--restart=unless-stopped \
cytomine/core:v3.0.0 > /dev/null

docker cp $PWD/configs/core/cytomineconfig.groovy core:/usr/share/tomcat7/.grails/cytomineconfig.groovy
docker cp $PWD/hosts/core/ core:/tmp/
docker start core

docker create --name web_UI \
-v /etc/localtime:/etc/localtime \
--restart=unless-stopped \
cytomine/web_ui:v1.2.0 > /dev/null

docker cp "${PWD}/configs/web_ui/configuration.json" web_UI:/app/configuration.json
docker cp "${PWD}/configs/web_ui/nginx.conf" web_UI:/etc/nginx/nginx.conf
docker start web_UI

docker create --name nginx \
--link ims:ims \
--link iipCyto:iipCyto \
--link core:core \
--link iipOff:iipOff \
--link web_UI:web_UI \
-v /data/www/images/_buffer:/tmp/uploaded \
-p 80:80 \
--restart=unless-stopped \
cytomine/nginx:v1.2.0 > /dev/null

docker cp $PWD/configs/nginx/nginx.conf nginx:/usr/local/nginx/conf/nginx.conf
docker start nginx

docker create --name software_router \
-v singularity_images:/data/softwares/images \
-v /var/run/docker.sock:/var/run/docker.sock \
--privileged \
--link rabbitmq:rabbitmq \
--link slurm:slurm \
--restart=unless-stopped \
cytomine/software_router:v2.0.0 > /dev/null

docker cp $PWD/hosts/software_router/ software_router:/tmp/
docker cp $PWD/configs/software_router/config.groovy software_router:/software_router/config.groovy
docker cp $PWD/configs/software_router/keys/ssh_key software_router:/root/.ssh/id_rsa
docker start software_router

Then the next bash command for deploying Cytomine were:

sudo sh

Which produced these lines:

clean containers
Error response from daemon: No such container: memcached
Error: No such container: memcached
Error response from daemon: No such container: rabbitmq
Error: No such container: rabbitmq
Error response from daemon: No such container: mongodb
Error: No such container: mongodb
Error response from daemon: No such container: postgresql
Error: No such container: postgresql
Error response from daemon: No such container: backup_mongo
Error: No such container: backup_mongo
Error response from daemon: No such container: backup_postgis
Error: No such container: backup_postgis
Error response from daemon: No such container: slurm
Error: No such container: slurm
Error response from daemon: No such container: iipOff
Error: No such container: iipOff
Error response from daemon: No such container: iipCyto
Error: No such container: iipCyto
Error response from daemon: No such container: bioformat
Error: No such container: bioformat
Error response from daemon: No such container: ims
Error: No such container: ims
Error response from daemon: No such container: core
Error: No such container: core
Error response from daemon: No such container: web_UI
Error: No such container: web_UI
Error response from daemon: No such container: nginx
Error: No such container: nginx
Error response from daemon: No such container: software_router
Error: No such container: software_router
launch new containers
Unable to find image 'cytomine/memcached:v1.1.2' locally
v1.1.2: Pulling from cytomine/memcached
3b37166ec614: Pulling fs layer
ba077e1ddb3a: Pulling fs layer
34c83d2bc656: Pulling fs layer
84b69b6e4743: Pulling fs layer
0f72e97e1f61: Pulling fs layer
35ef24d18073: Pulling fs layer
75a8bc04c91d: Pulling fs layer
9a158278809f: Pulling fs layer
8e1c1b7407ec: Pulling fs layer
84b69b6e4743: Waiting
35ef24d18073: Waiting
75a8bc04c91d: Waiting
8e1c1b7407ec: Waiting
34c83d2bc656: Download complete
ba077e1ddb3a: Verifying Checksum
ba077e1ddb3a: Download complete
3b37166ec614: Verifying Checksum
3b37166ec614: Download complete
0f72e97e1f61: Download complete
84b69b6e4743: Verifying Checksum
84b69b6e4743: Download complete
9a158278809f: Verifying Checksum
9a158278809f: Download complete
75a8bc04c91d: Verifying Checksum
75a8bc04c91d: Download complete
8e1c1b7407ec: Verifying Checksum
8e1c1b7407ec: Download complete
35ef24d18073: Verifying Checksum
35ef24d18073: Download complete
3b37166ec614: Pull complete
ba077e1ddb3a: Pull complete
34c83d2bc656: Pull complete
84b69b6e4743: Pull complete
0f72e97e1f61: Pull complete
35ef24d18073: Pull complete
75a8bc04c91d: Pull complete
9a158278809f: Pull complete
8e1c1b7407ec: Pull complete
Digest: sha256:f0c96bc02dd3d52da3b8db5099bc67292f1d2c6ca12cfde90b9442cd3bac6901
Status: Downloaded newer image for cytomine/memcached:v1.1.2
Unable to find image 'cytomine/rabbitmq:v1.1.2' locally
v1.1.2: Pulling from cytomine/rabbitmq
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
35ef24d18073: Already exists
d304f9b0a677: Pulling fs layer
80f792bfec4b: Pulling fs layer
7a352f869d3a: Pulling fs layer
cc852daf3515: Pulling fs layer
606c90c8c9bf: Pulling fs layer
8bf154095d84: Pulling fs layer
606c90c8c9bf: Waiting
8bf154095d84: Waiting
cc852daf3515: Waiting
d304f9b0a677: Verifying Checksum
80f792bfec4b: Verifying Checksum
80f792bfec4b: Download complete
d304f9b0a677: Pull complete
7a352f869d3a: Verifying Checksum
7a352f869d3a: Download complete
80f792bfec4b: Pull complete
cc852daf3515: Download complete
606c90c8c9bf: Download complete
8bf154095d84: Download complete
7a352f869d3a: Pull complete
cc852daf3515: Pull complete
606c90c8c9bf: Pull complete
8bf154095d84: Pull complete
Digest: sha256:bc15b5a4995eb42f0dc047047645a5f9c81319d294784d50472b2910b444729f
Status: Downloaded newer image for cytomine/rabbitmq:v1.1.2
Unable to find image 'cytomine/postgis:v2.0.0' locally
v2.0.0: Pulling from cytomine/postgis
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
35ef24d18073: Already exists
b7b3f29f15a4: Pulling fs layer
8a2cba892015: Pulling fs layer
91575c9c3c9b: Pulling fs layer
2fc250d09202: Pulling fs layer
174a2c1cff49: Pulling fs layer
2740dfaeed2e: Pulling fs layer
a6ddd5927930: Pulling fs layer
37298ce7c0fc: Pulling fs layer
ac0cb7917616: Pulling fs layer
a59ebffc268c: Pulling fs layer
426c72863949: Pulling fs layer
10cfdb4edd56: Pulling fs layer
6b96dc5cc9a4: Pulling fs layer
ee7c876d146b: Pulling fs layer
f7e8570c4d59: Pulling fs layer
9ce209f284d0: Pulling fs layer
e67ef6c062f0: Pulling fs layer
f7efc699e07b: Pulling fs layer
2fc250d09202: Waiting
174a2c1cff49: Waiting
2740dfaeed2e: Waiting
a6ddd5927930: Waiting
37298ce7c0fc: Waiting
ac0cb7917616: Waiting
a59ebffc268c: Waiting
426c72863949: Waiting
10cfdb4edd56: Waiting
6b96dc5cc9a4: Waiting
ee7c876d146b: Waiting
f7e8570c4d59: Waiting
9ce209f284d0: Waiting
f7efc699e07b: Waiting
e67ef6c062f0: Waiting
8a2cba892015: Verifying Checksum
8a2cba892015: Download complete
91575c9c3c9b: Verifying Checksum
91575c9c3c9b: Download complete
b7b3f29f15a4: Verifying Checksum
b7b3f29f15a4: Download complete
b7b3f29f15a4: Pull complete
2fc250d09202: Download complete
8a2cba892015: Pull complete
174a2c1cff49: Verifying Checksum
174a2c1cff49: Download complete
a6ddd5927930: Download complete
37298ce7c0fc: Verifying Checksum
37298ce7c0fc: Download complete
2740dfaeed2e: Verifying Checksum
2740dfaeed2e: Download complete
ac0cb7917616: Verifying Checksum
ac0cb7917616: Download complete
a59ebffc268c: Verifying Checksum
a59ebffc268c: Download complete
10cfdb4edd56: Download complete
6b96dc5cc9a4: Download complete
426c72863949: Verifying Checksum
426c72863949: Download complete
91575c9c3c9b: Pull complete
9ce209f284d0: Verifying Checksum
9ce209f284d0: Download complete
2fc250d09202: Pull complete
174a2c1cff49: Pull complete
e67ef6c062f0: Verifying Checksum
e67ef6c062f0: Download complete
2740dfaeed2e: Pull complete
a6ddd5927930: Pull complete
37298ce7c0fc: Pull complete
ee7c876d146b: Verifying Checksum
ee7c876d146b: Download complete
f7efc699e07b: Verifying Checksum
f7efc699e07b: Download complete
f7e8570c4d59: Download complete
ac0cb7917616: Pull complete
a59ebffc268c: Pull complete
426c72863949: Pull complete
10cfdb4edd56: Pull complete
6b96dc5cc9a4: Pull complete
ee7c876d146b: Pull complete
f7e8570c4d59: Pull complete
9ce209f284d0: Pull complete
e67ef6c062f0: Pull complete
f7efc699e07b: Pull complete
Digest: sha256:2d41589d471b4d0dbfe41c02d3fa2820df337e0bbfe292463bc12e47a456ced2
Status: Downloaded newer image for cytomine/postgis:v2.0.0
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
Unable to find image 'cytomine/mongodb:v1.1.2' locally
v1.1.2: Pulling from cytomine/mongodb
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
d36e74c1cf32: Pulling fs layer
0d0dfd4ddd77: Pulling fs layer
7d43ddcb8a93: Pulling fs layer
f7b29afa2394: Pulling fs layer
93b6fa1ef7b5: Pulling fs layer
00a7dc437f3b: Pulling fs layer
00a7dc437f3b: Waiting
93b6fa1ef7b5: Waiting
f7b29afa2394: Waiting
0d0dfd4ddd77: Verifying Checksum
0d0dfd4ddd77: Download complete
f7b29afa2394: Verifying Checksum
f7b29afa2394: Download complete
d36e74c1cf32: Verifying Checksum
d36e74c1cf32: Download complete
7d43ddcb8a93: Verifying Checksum
7d43ddcb8a93: Download complete
93b6fa1ef7b5: Verifying Checksum
93b6fa1ef7b5: Download complete
00a7dc437f3b: Verifying Checksum
00a7dc437f3b: Download complete
d36e74c1cf32: Pull complete
0d0dfd4ddd77: Pull complete
7d43ddcb8a93: Pull complete
f7b29afa2394: Pull complete
93b6fa1ef7b5: Pull complete
00a7dc437f3b: Pull complete
Digest: sha256:38686e1a2c68833babffa3a724400781d1b970742c55a104dd40578b848d4342
Status: Downloaded newer image for cytomine/mongodb:v1.1.2
Unable to find image 'cytomine/slurm:v1.0.0' locally
v1.0.0: Pulling from cytomine/slurm
840caab23da4: Pulling fs layer
c9b33345e712: Pulling fs layer
846127e02907: Pulling fs layer
a6a68821583f: Pulling fs layer
099158aceedc: Pulling fs layer
1d082575db86: Pulling fs layer
997763e1a608: Pulling fs layer
83b7340091ec: Pulling fs layer
9d98543f3c69: Pulling fs layer
099158aceedc: Waiting
a6a68821583f: Waiting
79517d1acdda: Pulling fs layer
1d082575db86: Waiting
9d98543f3c69: Waiting
83b7340091ec: Waiting
79517d1acdda: Waiting
b5eb79cbd214: Pulling fs layer
ab9596e61284: Pulling fs layer
8ebb7a4602e9: Pulling fs layer
b5eb79cbd214: Waiting
2ed6bdc0011b: Pulling fs layer
ab9596e61284: Waiting
8ebb7a4602e9: Waiting
70c24f6e5840: Pulling fs layer
503e1673aa59: Pulling fs layer
1fdd3d12025e: Pulling fs layer
d04353d412ea: Pulling fs layer
70c24f6e5840: Waiting
854d7f2ff776: Pulling fs layer
3be898528db8: Pulling fs layer
503e1673aa59: Waiting
ba1e1d252a4d: Pulling fs layer
d04353d412ea: Waiting
1fdd3d12025e: Waiting
3be898528db8: Waiting
ba1e1d252a4d: Waiting
854d7f2ff776: Waiting
846127e02907: Verifying Checksum
846127e02907: Download complete
840caab23da4: Verifying Checksum
840caab23da4: Download complete
a6a68821583f: Verifying Checksum
a6a68821583f: Download complete
099158aceedc: Verifying Checksum
099158aceedc: Download complete
c9b33345e712: Verifying Checksum
c9b33345e712: Download complete
83b7340091ec: Verifying Checksum
83b7340091ec: Download complete
1d082575db86: Verifying Checksum
1d082575db86: Download complete
840caab23da4: Pull complete
79517d1acdda: Verifying Checksum
79517d1acdda: Download complete
997763e1a608: Verifying Checksum
997763e1a608: Download complete
b5eb79cbd214: Verifying Checksum
b5eb79cbd214: Download complete
8ebb7a4602e9: Verifying Checksum
8ebb7a4602e9: Download complete
2ed6bdc0011b: Verifying Checksum
2ed6bdc0011b: Download complete
70c24f6e5840: Download complete
503e1673aa59: Verifying Checksum
503e1673aa59: Download complete
1fdd3d12025e: Download complete
d04353d412ea: Download complete
854d7f2ff776: Download complete
3be898528db8: Verifying Checksum
3be898528db8: Download complete
c9b33345e712: Pull complete
9d98543f3c69: Verifying Checksum
9d98543f3c69: Download complete
ba1e1d252a4d: Verifying Checksum
ba1e1d252a4d: Download complete
846127e02907: Pull complete
a6a68821583f: Pull complete
099158aceedc: Pull complete
1d082575db86: Pull complete
997763e1a608: Pull complete
83b7340091ec: Pull complete
9d98543f3c69: Pull complete
79517d1acdda: Pull complete
b5eb79cbd214: Pull complete
ab9596e61284: Verifying Checksum
ab9596e61284: Download complete
ab9596e61284: Pull complete
8ebb7a4602e9: Pull complete
2ed6bdc0011b: Pull complete
70c24f6e5840: Pull complete
503e1673aa59: Pull complete
1fdd3d12025e: Pull complete
d04353d412ea: Pull complete
854d7f2ff776: Pull complete
3be898528db8: Pull complete
ba1e1d252a4d: Pull complete
Digest: sha256:98ffe0793e399d80e6fbf8d52c7cb1e242f253723b1cd46c2e97f8e853b326e1
Status: Downloaded newer image for cytomine/slurm:v1.0.0

Unable to find image 'cytomine/iipofficial:v1.2.0' locally
v1.2.0: Pulling from cytomine/iipofficial
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
d36e74c1cf32: Already exists
0d0dfd4ddd77: Already exists
94735b9221c1: Pulling fs layer
64aad079aa2e: Pulling fs layer
f00d61d640ec: Pulling fs layer
462b1abf5663: Pulling fs layer
fc917f87e3d6: Pulling fs layer
28125f36460d: Pulling fs layer
043cec74afc6: Pulling fs layer
d780fd775ac0: Pulling fs layer
959192421a03: Pulling fs layer
1064d3045cb3: Pulling fs layer
ca9fbb9c3f37: Pulling fs layer
9cbd4f92df51: Pulling fs layer
bda42567b063: Pulling fs layer
2a6dd82d1642: Pulling fs layer
d3b20500281b: Pulling fs layer
6a84d7b204a7: Pulling fs layer
7309828131dd: Pulling fs layer
f987232076f5: Pulling fs layer
dc0c25ef1a48: Pulling fs layer
fc917f87e3d6: Waiting
d780fd775ac0: Waiting
1064d3045cb3: Waiting
959192421a03: Waiting
28125f36460d: Waiting
ca9fbb9c3f37: Waiting
165c1eefd1a9: Pulling fs layer
9cbd4f92df51: Waiting
043cec74afc6: Waiting
b0045e737456: Pulling fs layer
bda42567b063: Waiting
d3b20500281b: Waiting
462b1abf5663: Waiting
6a84d7b204a7: Waiting
165c1eefd1a9: Waiting
7309828131dd: Waiting
f987232076f5: Waiting
64aad079aa2e: Verifying Checksum
64aad079aa2e: Download complete
f00d61d640ec: Download complete
462b1abf5663: Verifying Checksum
462b1abf5663: Download complete
fc917f87e3d6: Download complete
28125f36460d: Verifying Checksum
28125f36460d: Download complete
94735b9221c1: Verifying Checksum
94735b9221c1: Download complete
043cec74afc6: Verifying Checksum
043cec74afc6: Download complete
959192421a03: Download complete
d780fd775ac0: Verifying Checksum
d780fd775ac0: Download complete
1064d3045cb3: Download complete
9cbd4f92df51: Verifying Checksum
9cbd4f92df51: Download complete
ca9fbb9c3f37: Verifying Checksum
ca9fbb9c3f37: Download complete
bda42567b063: Verifying Checksum
bda42567b063: Download complete
d3b20500281b: Verifying Checksum
d3b20500281b: Download complete
6a84d7b204a7: Verifying Checksum
6a84d7b204a7: Download complete
2a6dd82d1642: Verifying Checksum
2a6dd82d1642: Download complete
7309828131dd: Verifying Checksum
7309828131dd: Download complete
f987232076f5: Verifying Checksum
f987232076f5: Download complete
dc0c25ef1a48: Verifying Checksum
dc0c25ef1a48: Download complete
165c1eefd1a9: Download complete
b0045e737456: Verifying Checksum
b0045e737456: Download complete
94735b9221c1: Pull complete
64aad079aa2e: Pull complete
f00d61d640ec: Pull complete
462b1abf5663: Pull complete
fc917f87e3d6: Pull complete
28125f36460d: Pull complete
043cec74afc6: Pull complete
d780fd775ac0: Pull complete
959192421a03: Pull complete
1064d3045cb3: Pull complete
ca9fbb9c3f37: Pull complete
9cbd4f92df51: Pull complete
bda42567b063: Pull complete
2a6dd82d1642: Pull complete
d3b20500281b: Pull complete
6a84d7b204a7: Pull complete
7309828131dd: Pull complete
f987232076f5: Pull complete
dc0c25ef1a48: Pull complete
165c1eefd1a9: Pull complete
b0045e737456: Pull complete
Digest: sha256:34aac6e94a4a302a88b3e1d46471a30e3f9727094fc1d8eb286a9ceb00adf638
Status: Downloaded newer image for cytomine/iipofficial:v1.2.0
Unable to find image 'cytomine/iipcyto:v1.2.1' locally
v1.2.1: Pulling from cytomine/iipcyto
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
d36e74c1cf32: Already exists
0d0dfd4ddd77: Already exists
94735b9221c1: Already exists
64aad079aa2e: Already exists
f00d61d640ec: Already exists
462b1abf5663: Already exists
fc917f87e3d6: Already exists
28125f36460d: Already exists
043cec74afc6: Already exists
d780fd775ac0: Already exists
959192421a03: Already exists
1064d3045cb3: Already exists
ca9fbb9c3f37: Already exists
9cbd4f92df51: Already exists
bda42567b063: Already exists
2a6dd82d1642: Already exists
d3b20500281b: Already exists
6a84d7b204a7: Already exists
82a0d3bc920e: Pulling fs layer
408df44a5b6d: Pulling fs layer
5163890db256: Pulling fs layer
1ee28e537faf: Pulling fs layer
11f7d8ced79e: Pulling fs layer
4feb1471087d: Pulling fs layer
fc4cd05a9de9: Pulling fs layer
3026c397467b: Pulling fs layer
11f7d8ced79e: Waiting
4feb1471087d: Waiting
fc4cd05a9de9: Waiting
3026c397467b: Waiting
1ee28e537faf: Waiting
82a0d3bc920e: Verifying Checksum
82a0d3bc920e: Download complete
82a0d3bc920e: Pull complete
408df44a5b6d: Verifying Checksum
408df44a5b6d: Download complete
408df44a5b6d: Pull complete
5163890db256: Download complete
5163890db256: Pull complete
4feb1471087d: Verifying Checksum
4feb1471087d: Download complete
1ee28e537faf: Verifying Checksum
1ee28e537faf: Download complete
1ee28e537faf: Pull complete
11f7d8ced79e: Download complete
3026c397467b: Verifying Checksum
3026c397467b: Download complete
11f7d8ced79e: Pull complete
fc4cd05a9de9: Verifying Checksum
fc4cd05a9de9: Download complete
4feb1471087d: Pull complete
fc4cd05a9de9: Pull complete
3026c397467b: Pull complete
Digest: sha256:1aeafb17a239365c68798429aac64c7f41c858032915ea465fe5686f447d765c
Status: Downloaded newer image for cytomine/iipcyto:v1.2.1
Unable to find image 'cytomine/bioformat:v1.1.2' locally
v1.1.2: Pulling from cytomine/bioformat
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
35ef24d18073: Already exists
143f7824e502: Pulling fs layer
564dc6ae2dec: Pulling fs layer
911e1bdff49d: Pulling fs layer
f1248f5c25db: Pulling fs layer
9f90171f5e74: Pulling fs layer
dd2d5f61560b: Pulling fs layer
e94e315fab4c: Pulling fs layer
c122c56ba0de: Pulling fs layer
f1248f5c25db: Waiting
9f90171f5e74: Waiting
dd2d5f61560b: Waiting
e94e315fab4c: Waiting
564dc6ae2dec: Verifying Checksum
564dc6ae2dec: Download complete
143f7824e502: Verifying Checksum
143f7824e502: Download complete
143f7824e502: Pull complete
564dc6ae2dec: Pull complete
f1248f5c25db: Verifying Checksum
f1248f5c25db: Download complete
9f90171f5e74: Verifying Checksum
9f90171f5e74: Download complete
dd2d5f61560b: Verifying Checksum
dd2d5f61560b: Download complete
e94e315fab4c: Download complete
c122c56ba0de: Verifying Checksum
c122c56ba0de: Download complete
911e1bdff49d: Verifying Checksum
911e1bdff49d: Download complete
911e1bdff49d: Pull complete
f1248f5c25db: Pull complete
9f90171f5e74: Pull complete
dd2d5f61560b: Pull complete
e94e315fab4c: Pull complete
c122c56ba0de: Pull complete
Digest: sha256:de33ba2b60c0ed11d5b13febe00207be0749430c57d8aa27bfb3170023924acf
Status: Downloaded newer image for cytomine/bioformat:v1.1.2
Unable to find image 'cytomine/ims:v1.2.3' locally
v1.2.3: Pulling from cytomine/ims
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
d36e74c1cf32: Already exists
0d0dfd4ddd77: Already exists
c5ac6bc5ad2c: Pulling fs layer
ad7fbf42b480: Pulling fs layer
27f375d9c24b: Pulling fs layer
e71a31b0ac80: Pulling fs layer
37f18f37a79a: Pulling fs layer
6937fe223926: Pulling fs layer
75ff364d641c: Pulling fs layer
a71d44a4eacc: Pulling fs layer
9d95b26a91bb: Pulling fs layer
a1a740fb42dc: Pulling fs layer
b9ac151f0c77: Pulling fs layer
f9f977660c81: Pulling fs layer
4773cb49a1f7: Pulling fs layer
359360017c9b: Pulling fs layer
cf1f2f821649: Pulling fs layer
45867cc3ad1b: Pulling fs layer
585a23faf3df: Pulling fs layer
953275c394f9: Pulling fs layer
1b3642773408: Pulling fs layer
23a46414423f: Pulling fs layer
cb0c0d0fc633: Pulling fs layer
6cd40541e30d: Pulling fs layer
33e36e4c8614: Pulling fs layer
4a9f0aa2614c: Pulling fs layer
48a581a5e378: Pulling fs layer
b68ac48c1c39: Pulling fs layer
c64263df9c38: Pulling fs layer
e71a31b0ac80: Waiting
37f18f37a79a: Waiting
4773cb49a1f7: Waiting
6937fe223926: Waiting
359360017c9b: Waiting
75ff364d641c: Waiting
cf1f2f821649: Waiting
a71d44a4eacc: Waiting
45867cc3ad1b: Waiting
9d95b26a91bb: Waiting
33e36e4c8614: Waiting
585a23faf3df: Waiting
953275c394f9: Waiting
4a9f0aa2614c: Waiting
48a581a5e378: Waiting
23a46414423f: Waiting
a1a740fb42dc: Waiting
cb0c0d0fc633: Waiting
b9ac151f0c77: Waiting
c64263df9c38: Waiting
f9f977660c81: Waiting
6cd40541e30d: Waiting
ad7fbf42b480: Verifying Checksum
ad7fbf42b480: Download complete
c5ac6bc5ad2c: Download complete
c5ac6bc5ad2c: Pull complete
ad7fbf42b480: Pull complete
37f18f37a79a: Verifying Checksum
37f18f37a79a: Download complete
6937fe223926: Verifying Checksum
75ff364d641c: Download complete
e71a31b0ac80: Verifying Checksum
e71a31b0ac80: Download complete
a71d44a4eacc: Verifying Checksum
a71d44a4eacc: Download complete
9d95b26a91bb: Verifying Checksum
9d95b26a91bb: Download complete
27f375d9c24b: Verifying Checksum
27f375d9c24b: Download complete
a1a740fb42dc: Verifying Checksum
a1a740fb42dc: Download complete
f9f977660c81: Verifying Checksum
f9f977660c81: Download complete
4773cb49a1f7: Verifying Checksum
4773cb49a1f7: Download complete
359360017c9b: Verifying Checksum
359360017c9b: Download complete
45867cc3ad1b: Download complete
27f375d9c24b: Pull complete
e71a31b0ac80: Pull complete
37f18f37a79a: Pull complete
6937fe223926: Pull complete
585a23faf3df: Verifying Checksum
585a23faf3df: Download complete
75ff364d641c: Pull complete
a71d44a4eacc: Pull complete
9d95b26a91bb: Pull complete
a1a740fb42dc: Pull complete
953275c394f9: Verifying Checksum
953275c394f9: Download complete
1b3642773408: Verifying Checksum
1b3642773408: Download complete
cf1f2f821649: Verifying Checksum
cf1f2f821649: Download complete
cb0c0d0fc633: Download complete
6cd40541e30d: Download complete
33e36e4c8614: Verifying Checksum
33e36e4c8614: Download complete
4a9f0aa2614c: Verifying Checksum
23a46414423f: Verifying Checksum
23a46414423f: Download complete
48a581a5e378: Verifying Checksum
48a581a5e378: Download complete
b68ac48c1c39: Verifying Checksum
b68ac48c1c39: Download complete
c64263df9c38: Download complete
b9ac151f0c77: Verifying Checksum
b9ac151f0c77: Download complete
b9ac151f0c77: Pull complete
f9f977660c81: Pull complete
4773cb49a1f7: Pull complete
359360017c9b: Pull complete
cf1f2f821649: Pull complete
45867cc3ad1b: Pull complete
585a23faf3df: Pull complete
953275c394f9: Pull complete
1b3642773408: Pull complete
23a46414423f: Pull complete
cb0c0d0fc633: Pull complete
6cd40541e30d: Pull complete
33e36e4c8614: Pull complete
4a9f0aa2614c: Pull complete
48a581a5e378: Pull complete
b68ac48c1c39: Pull complete
c64263df9c38: Pull complete
Digest: sha256:ec1ba4fb080255e188e8272597155fe2925e808155473e1593b4b0df9aecae24
Status: Downloaded newer image for cytomine/ims:v1.2.3
Unable to find image 'cytomine/core:v3.0.0' locally
v3.0.0: Pulling from cytomine/core
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
d36e74c1cf32: Already exists
0d0dfd4ddd77: Already exists
c5ac6bc5ad2c: Already exists
ad7fbf42b480: Already exists
27f375d9c24b: Already exists
e71a31b0ac80: Already exists
37f18f37a79a: Already exists
6937fe223926: Already exists
75ff364d641c: Already exists
a71d44a4eacc: Already exists
9d95b26a91bb: Already exists
a1a740fb42dc: Already exists
76064578fc41: Pulling fs layer
032233f2ae0e: Pulling fs layer
f0fab090ab0c: Pulling fs layer
9ab859ed9888: Pulling fs layer
22561a5bfcec: Pulling fs layer
8f94c9f39791: Pulling fs layer
ee257a8fcbda: Pulling fs layer
88fb5e860648: Pulling fs layer
9ab859ed9888: Waiting
22561a5bfcec: Waiting
8f94c9f39791: Waiting
ee257a8fcbda: Waiting
88fb5e860648: Waiting
f0fab090ab0c: Verifying Checksum
f0fab090ab0c: Download complete
032233f2ae0e: Verifying Checksum
032233f2ae0e: Download complete
9ab859ed9888: Verifying Checksum
9ab859ed9888: Download complete
22561a5bfcec: Verifying Checksum
22561a5bfcec: Download complete
8f94c9f39791: Verifying Checksum
8f94c9f39791: Download complete
ee257a8fcbda: Verifying Checksum
ee257a8fcbda: Download complete
88fb5e860648: Verifying Checksum
88fb5e860648: Download complete
76064578fc41: Download complete
76064578fc41: Pull complete
032233f2ae0e: Pull complete
f0fab090ab0c: Pull complete
9ab859ed9888: Pull complete
22561a5bfcec: Pull complete
8f94c9f39791: Pull complete
ee257a8fcbda: Pull complete
88fb5e860648: Pull complete
Digest: sha256:4a9293c87922b5334424a98cb58dd2097ea1d32050eeba2bd6ec70e49fcd4860
Status: Downloaded newer image for cytomine/core:v3.0.0
Unable to find image 'cytomine/web_ui:v1.2.0' locally
v1.2.0: Pulling from cytomine/web_ui
54fec2fa59d0: Pulling fs layer
4ede6f09aefe: Pulling fs layer
f9dc69acb465: Pulling fs layer
8bc1c953c518: Pulling fs layer
db7028f8e9f4: Pulling fs layer
6ae45564280a: Pulling fs layer
8bc1c953c518: Waiting
db7028f8e9f4: Waiting
6ae45564280a: Waiting
f9dc69acb465: Verifying Checksum
f9dc69acb465: Download complete
4ede6f09aefe: Verifying Checksum
4ede6f09aefe: Download complete
54fec2fa59d0: Verifying Checksum
54fec2fa59d0: Download complete
8bc1c953c518: Verifying Checksum
6ae45564280a: Verifying Checksum
6ae45564280a: Download complete
54fec2fa59d0: Pull complete
db7028f8e9f4: Verifying Checksum
db7028f8e9f4: Download complete
4ede6f09aefe: Pull complete
f9dc69acb465: Pull complete
8bc1c953c518: Pull complete
db7028f8e9f4: Pull complete
6ae45564280a: Pull complete
Digest: sha256:bf94e6a963db5b363c9a0ed8fe7073689191ff0a8349e4f3e7588ea1f93fc555
Status: Downloaded newer image for cytomine/web_ui:v1.2.0
Unable to find image 'cytomine/nginx:v1.2.0' locally
v1.2.0: Pulling from cytomine/nginx
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
d36e74c1cf32: Already exists
0d0dfd4ddd77: Already exists
b6579bbee20e: Pulling fs layer
e145d5f6493f: Pulling fs layer
0ba2afb41647: Pulling fs layer
2cb8192f0994: Pulling fs layer
9f14803d55c5: Pulling fs layer
f5e9e4ceeccb: Pulling fs layer
8c61e7d21b1c: Pulling fs layer
ddb306922432: Pulling fs layer
b8652ea10723: Pulling fs layer
2cb8192f0994: Waiting
9f14803d55c5: Waiting
f5e9e4ceeccb: Waiting
b8652ea10723: Waiting
8c61e7d21b1c: Waiting
ddb306922432: Waiting
e145d5f6493f: Verifying Checksum
e145d5f6493f: Download complete
0ba2afb41647: Download complete
2cb8192f0994: Verifying Checksum
2cb8192f0994: Download complete
f5e9e4ceeccb: Verifying Checksum
f5e9e4ceeccb: Download complete
9f14803d55c5: Download complete
8c61e7d21b1c: Verifying Checksum
8c61e7d21b1c: Download complete
b6579bbee20e: Verifying Checksum
b6579bbee20e: Download complete
b8652ea10723: Verifying Checksum
b8652ea10723: Download complete
b6579bbee20e: Pull complete
e145d5f6493f: Pull complete
0ba2afb41647: Pull complete
ddb306922432: Verifying Checksum
ddb306922432: Download complete
2cb8192f0994: Pull complete
9f14803d55c5: Pull complete
f5e9e4ceeccb: Pull complete
8c61e7d21b1c: Pull complete
ddb306922432: Pull complete
b8652ea10723: Pull complete
Digest: sha256:b5e4807007ff946f8e8742110a0107fc58eeccff79707292db0b87d06d60330f
Status: Downloaded newer image for cytomine/nginx:v1.2.0
Unable to find image 'cytomine/software_router:v2.0.0' locally
v2.0.0: Pulling from cytomine/software_router
3b37166ec614: Already exists
ba077e1ddb3a: Already exists
34c83d2bc656: Already exists
84b69b6e4743: Already exists
0f72e97e1f61: Already exists
d36e74c1cf32: Already exists
0d0dfd4ddd77: Already exists
c5ac6bc5ad2c: Already exists
ad7fbf42b480: Already exists
27f375d9c24b: Already exists
ffb980851c66: Pulling fs layer
468ae2160788: Pulling fs layer
da21caf34d1a: Pulling fs layer
e43cb66b6500: Pulling fs layer
b56986f4080c: Pulling fs layer
bbabf3b87d4b: Pulling fs layer
241863c00ea3: Pulling fs layer
e43cb66b6500: Waiting
bbabf3b87d4b: Waiting
c40609e86e45: Pulling fs layer
241863c00ea3: Waiting
c40609e86e45: Waiting
1cfffebec7d5: Pulling fs layer
b70282cab766: Pulling fs layer
78e86bc61603: Pulling fs layer
1cfffebec7d5: Waiting
e1ca411352b1: Pulling fs layer
da21caf34d1a: Verifying Checksum
da21caf34d1a: Download complete
ffb980851c66: Download complete
ffb980851c66: Pull complete
e43cb66b6500: Verifying Checksum
e43cb66b6500: Download complete
b56986f4080c: Verifying Checksum
b56986f4080c: Download complete
bbabf3b87d4b: Verifying Checksum
bbabf3b87d4b: Download complete
c40609e86e45: Verifying Checksum
c40609e86e45: Download complete
1cfffebec7d5: Verifying Checksum
1cfffebec7d5: Download complete
241863c00ea3: Verifying Checksum
241863c00ea3: Download complete
b70282cab766: Download complete
78e86bc61603: Verifying Checksum
78e86bc61603: Download complete
468ae2160788: Verifying Checksum
468ae2160788: Download complete
e1ca411352b1: Download complete
468ae2160788: Pull complete
da21caf34d1a: Pull complete
e43cb66b6500: Pull complete
b56986f4080c: Pull complete
bbabf3b87d4b: Pull complete
241863c00ea3: Pull complete
c40609e86e45: Pull complete
1cfffebec7d5: Pull complete
b70282cab766: Pull complete
78e86bc61603: Pull complete
e1ca411352b1: Pull complete
Digest: sha256:0e69e19e9b57b3454227627b966b06c0fc38f342415ac423143f86af2a3f973f
Status: Downloaded newer image for cytomine/software_router:v2.0.0

In order to grab the Admin password, I ran this command:

cat configs/core/cytomineconfig.groovy | grep adminPassword

And Voilá:

Running Linux in Windows 10

If you have Windows 10 and miss sometimes to have a linux distro locally, you can install the Windows Subsystem for Linux.

First start a CMD shell (start-run, type: CMD)



Then you type:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Restart the computer. Then go to Microsoft Store and choose your option. I chose Ubuntu 18.04 LTS from here:

From the MS store window, click on the GET button. Sign in if necessary. Yes, you need a MS account…

I tried to use our organization account, but then I got this message:

That Microsoft account doesn't exist. Enter a different account or get a new one.


so I ended up with my private account..

Then finally in the CMD window:


and choose a username and password.

Next is to update your Ubuntu distro:

sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y

Then install the X server for Windows from:

Copy the shortcut (should be on the Desktop somewhere) to here:

%appdata%\Microsoft\Windows\Start Menu\Programs\Startup

In the Ubuntu bash terminal:

echo "export DISPLAY=localhost:0.0" >> ~/.bashrc; . ~/.bashrc


sudo apt-get install x11-apps

And finally run your favorite X program:

sudo apt-get install git-cola



Cygwin rsync to synchronize files from Linux to Windows

If you have a lot of files (several TB) on a Linux server, and you want to synchronize them daily to a local USB disc, you can use Cygwin rsync for the job.

First you need to install Cygwin on your Windows computer:

Then start up a CMD on your windows computer, and type:

rsync -avu "username@name.of.linux.server:/path/to/folder/*" "/cygdrive/e/usb-folder/"

This will connect to your Linux server with the domain name “name.of.linux.server” over SSH, and rsync folder and files under /path/to/folder folder to local Windows Drive E:\ under folder “usb-folder”

The command can be put in a .bat file, and for instance run each time you log in to your Windows client computer, for instance each morning.

If you wonder what -avu means, you can check it with: rsync –help


Analysing gigapixel images online is possible with Cytomine

We have a collaborating project between Norway, Moldova, Armenia and Belarus in Oral Pathology. In order to view slides online we installed a software called Cytomine. This software, or multiple combined software/applications, is developed in Belgium by a cooperating team. All about Cytomine can be read here:

This is an open source software. It is installed on a Linux Ubuntu 16.04 LTE server with Docker CE. The server has 96GB memory, 2TB storage and 24 VCPU’s. It is located in University of Bergen, hosted by the UH-Iaas project group (

This application gives the user to view slides (pictures) of multiple gigabyte online and almost without any download time. For instance we have tested it with a 5GB large slide, and it could be viewed immidiately online through a 4G mobile phone in Yerevan, Armenia through the Internet with the servers located in Norway, Bergen.

The Cytomine software can be used by students, teachers, pathologist for viewing, annotating, discussing tissue slides (or any picture actually).

Our server is located here:

In order to install Cytomine you need to have a basic understanding of Linux Ubuntu, bash scripting, Docker and general web-server technology.

I have created a short video that shows how the software works:

Downgrade to previous version: yum

Sometime yum update just breaks everything. We experienced this, and had to go backup to previous versions.

In RHEL6 and RHEL7 you can run this command:

yum history list all

which will give you a list of transactions ID’s. Now you just need to figure out how far you want to go back in the history, and do the roll back with:

yum history undo N

where N is the number of transaction ID.

[code lang=”bash”][root@P1servername01 tmp]# yum history list all
Loaded plugins: product-id, search-disabled-repos, subscription-manager
ID | Login user | Date and time | Action(s) | Altered
64 | Jon Doe | 2017-10-31 16:25 | Install | 1 EE
63 | Jon Doe | 2017-10-31 16:25 | Erase | 1 EE
62 | root | 2017-10-31 04:25 | Update | 10
61 | Ingvar Nielsen | 2017-10-21 15:09 | E, I, O, U | 69 E<
60 | root | 2017-10-17 04:25 | Update | 3 >
59 | root | 2017-10-10 04:25 | Update | 4
58 | Jon Doe | 2017-10-04 11:39 | Install | 1
57 | root | 2017-09-26 04:25 | Update | 6
56 | Tram Trong | 2017-09-15 09:37 | E, I, U | 6
55 | root | 2017-09-12 04:25 | E, I, U | 53 EE
54 | Jon Doe | 2017-08-23 12:00 | I, U | 3 EE
53 | Jon Doe | 2017-08-23 11:05 | Install | 2
52 | root | 2017-08-22 04:25 | Update | 2
51 | Ingvar Nielsen | 2017-08-19 11:05 | E, I, U | 9
50 | Jon Doe | 2017-08-14 11:57 | Install | 1

Openstack – new volume

I have managed to create my first server in an openstack enviroment here at university of Bergen.

I can see my instance in the Dashboard:


Next thing was to add a volume:

Project -> Compute -> Volumes: Create Volume

After creating it, I had to go to “Manage Attachments”, and in Manage Volumen Attachments, I selected my “diverse” instance.

I had to use fdisk to format the new volume:

fdisk -l
fdisk /dev/vdb

Hint: m for help, n for new partition, w for write table to disk.

Finally, format and mount:

mkfs.xfs /dev/vdb
mount /dev/vdb /data

[root@diverse lib]# df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 8.1G 1.9G 81% /
devtmpfs 900M 0 900M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 17M 904M 2% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/1000
/dev/vdb 50G 33M 50G 1% /data