gitdocker,docker-composepython,pip,pyenvuv
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 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 | shSee 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/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
# press <enter>
linut00001:~# sysctl -w vm.max_map_count=262144Next, create database tables, search indexes and message queues:
uv run poe setupStart the webserver and the celery worker:
uv run poe serverStart a Python shell:
uv run poe consoleIn order to upgrade an existing instance simply run:
uv run poe updateRun the test suite via the provided script:
uv run poe run_testsBy default, end-to-end tests are skipped.
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 -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)