# International Close Non-Matches Library - ICNML This GIT repository is the main repository to build all the parts of ICNML. All parts are assembled using GIT submodules (web application and all the mandatory libraries). The CICD is in charge of building the ICNML application, and make the commits to the configurations repository (https://esc-md-git.unil.ch/ICNML/conf/production). This repository will not deploy to production, but will commit to the correct repositories, triggering the CICD automatic deployment. This docker-compose file is not designed to be run in development or production mode, but only by the GitLab CICD. The Makefile is not intended to be run manually here for development of production, but only used by the CICD to build and push to staging and production. Check the production GIT module (https://esc-md-git.unil.ch/ICNML/conf/production) to see the production configuration. To download the entire code-base, go to https://esc-md-git.unil.ch/ICNML/docker and git clone the repository. The download link on gitlab doesn't sync the submodules needed to build the ICNML application. # Installation of the development version To install the development version, clone the `docker` repository with the `--recursive` option, create the `env` file (check the example below) and start all the containers with the `docker-compose` command. One database should be provided to the script to be able to start; either use a backup of the production database, or create an empty one with the `.sql` files available in this git repository. The is a configuration file usable for dev purposes: ``` DB_URL=pgsql://postgres:icnml@db/icnml DEBUG=True ENVTYPE=dev REDIS_URL=redis://redis:6379/0 REDIS_URL_SHARED=redis://redis:6379/1 SESSION_TIMEOUT=3600 ``` If the database is imported from the production backup, don't forget to import the `data` and `dek` backup files. If you don't import the `dek` file, the ICNML server will start, but the images will not be loadable ("no preview" will be displayed instead).