Skip to content

Latest commit

 

History

History
150 lines (93 loc) · 3.63 KB

INSTALL.rst

File metadata and controls

150 lines (93 loc) · 3.63 KB

Installation

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

$ docker-compose up -d

Note

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

Next, bootstrap the instance (this will install all Python dependencies and build all static assets):

$ ./scripts/bootstrap

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

$ ./scripts/setup

If the setup scripts fails because of missing vocabularies:

$ cd <your-virtualenv-path>/invenio-app-ils/invenio_app_ils
$ invenio setup --verbose

Covers

If the covers are not displayed first run the server (to start celery) and after the setup script:

$ ./scripts/server
$ ./scripts/setup

Running

Start the webserver and the celery worker:

$ ./scripts/server

Start a Python shell:

$ ./scripts/console

Upgrading

In order to upgrade an existing instance simply run:

$ ./scripts/update

Testing

Run the test suite via the provided script:

$ ./run-tests.sh

By default, end-to-end tests are skipped. You can include the E2E tests like this:

$ env E2E=yes ./run-tests.sh

For more information about end-to-end testing see pytest-invenio

Production environment

You can use simulate a full production environment using the docker-compose.full.yml. You can start it like this:

$ ./docker/build-images.sh
$ docker-compose -f docker-compose.full.yml up -d
$ ./docker/wait-for-services.sh --full

Remember to create database tables, search indexes and message queues if not already done:

$ docker-compose -f docker-compose.full.yml run --rm web-ui ./scripts/setup

In addition to the normal docker-compose.yml, this one will start:

Installation errors

On MacOS, if you have the error pg_config executable not found., then you need to install postgresql and symlink it:

$ brew install postgresql@13
$ export PATH=$PATH:/opt/homebrew/opt/postgresql\@13/bin

On MacOS, if you have errors with cryptography and openssl, make sure that you have OpenSSL v3:

$ brew install openssl@3
$ LDFLAGS="-L/opt/homebrew/Cellar/openssl@3/3.1.0/lib" CPPFLAGS="-I/opt/homebrew/Cellar/openssl@3/3.1.0/include" pip install "cryptography==38.0.3"