This environment makes use of different services. In most of the cases, RERO is an organisation and a reroadmin user exists. As long as users can be defined as administrator, the account reroadmin won't be used, except if needed.
The services are:
gitdocker,docker-composepython,pip,pyenvpoetry
First, create your working directory and cd into it. Clone the project into this directory:
$ git clone https://github.com/rero/rero-ils.gitYou need to install poetry, it will handle the virtual environment creation for the project in order to sandbox our Python environment, as well as manage the dependency installation, among other things.
$ pyenv install 3.9.7
$ cd rero-ils
$ pyenv local 3.9.7
$ curl -sSL https://install.python-poetry.org | python3 -
$ optional: poetry self add poetry-plugin-shellSee: https://python-poetry.org/docs#installation for more detail.
Next, cd into the project directory and bootstrap the instance (this will install
all Python dependencies and build all static assets):
$ cd rero-ils
$ poetry run ./scripts/bootstrapStart all dependent services using docker-compose (this will start PostgreSQL, Elasticsearch 6, RabbitMQ and Redis):
$ docker-compose up -dMake sure you have enough virtual memory for Elasticsearch in Docker:
# Linux
$ sysctl -w vm.max_map_count=262144
# macOS
$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
<enter>
linut00001:~# sysctl -w vm.max_map_count=262144Next, create database tables, search indexes and message queues:
$ poetry run poe setupStart the webserver and the celery worker:
$ poetry run poe serverStart a Python shell:
$ poetry run poe consoleIn order to upgrade an existing instance simply run:
$ poetry run poe updateRun the test suite via the provided script:
$ poetry run poe run_testsBy default, end-to-end tests are skipped. You can include the E2E tests like this:
$ env E2E=yes poetry run poe run_testsFor more information about end-to-end testing see pytest-invenio.
You can build the documentation with:
$ poetry run build_sphinxYou can use simulate a full production environment using the
docker-compose.full.yml. You can start it like this:
$ docker build --rm -t rero/rero-ils-base:latest -f Dockerfile.base .
$ docker-compose -f docker-compose.full.yml up -dIn addition to the normal docker-compose.yml, this one will start:
- HAProxy (load balancer)
- Nginx (web frontend)
- UWSGI (application container)
- Celery (background task worker)
- Celery (background task beat)
- Flower (Celery monitoring)