# Introduction

Cytomine is an open-source RESTful web platform composed of multiple services encapsulated in Docker containers.

Leveraging Docker power, you can install the whole Cytomine platform on a personal laptop (without collaborative tools), on a virtual machine or a dedicated server in your lab or at large scale, by hosting containers on different machines to increase performance and stability (horizontal scaling).

# Cytomine Bootstrap

Cytomine-bootstrap is the Cytomine installer. Using a single command, the installer runs all required services as Docker containers. The services managed by Cytomine-bootstrap are given in the next figure.

Inside Cytomine-bootstrap

To interact with Cytomine (that is what Cytomine-bootstrap launched), you can use a regular browser and access the graphical user interface (GUI). As a RESTful application, it is possible to interact external clients in different languages (Python, Javascript, Java).

# Cytomine containers

Name Required Goal
Nginx Yes Main HTTP(S) proxy dispatching incoming requests.
Core Yes Main Cytomine server. Provide the REST API.
Postgres Yes Main database. Store most of data.
MongoDB Yes Secondary database. Store activity data.
IMS Yes Main image server.
IIP Yes Fast image extractor.
Memcached Yes Fast cache for images.
Bioformat No Support for additional image formats.
Software router No Manage algorithms and their execution. Required to use algorithms.
RabbitMQ No Communication between Core and Software router. Required to use algorithms.
Slurm No Execution server for algorithms. Required to use algorithms.
Web UI No Web graphical user interface. Required to use a GUI.
Last Updated: 2/9/2023, 9:24:01 AM