Skip to content

Latest commit

 

History

History
118 lines (83 loc) · 2.46 KB

File metadata and controls

118 lines (83 loc) · 2.46 KB

RERO-ILS Installation

Requirements

  • git
  • docker, docker-compose
  • python, pip, pyenv
  • uv

Installation

First, create your working directory and cd into it. Clone the project into this directory:

git clone https://github.com/rero/rero-ils.git

You need to install uv, 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.14
cd rero-ils
pyenv local 3.14
curl -LsSf https://astral.sh/uv/install.sh | sh

See the uv installation documentation 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
uv run ./scripts/bootstrap

Start all dependent services using docker-compose (this will start PostgreSQL, Elasticsearch 6, RabbitMQ and Redis):

docker-compose up -d

Make 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
# press <enter>
linut00001:~# sysctl -w vm.max_map_count=262144

Next, create database tables, search indexes and message queues:

uv run poe setup

Running

Start the webserver and the celery worker:

uv run poe server

Start a Python shell:

uv run poe console

Upgrading

In order to upgrade an existing instance simply run:

uv run poe update

Testing

Run the test suite via the provided script:

uv run poe run_tests

By default, end-to-end tests are skipped.

Production environment

You can simulate a full production environment using docker-compose.full.yml:

docker build --rm -t rero/rero-ils-base:latest -f Dockerfile.base .
docker-compose -f docker-compose.full.yml up -d

In 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)