Launch an Invenio instance¶
Prerequisites¶
Invenio requires the following software installed in your system:
- Docker v1.18+ and Docker Compose v1.23+
- NodeJS v6.x+ and NPM v4.x+
- Enough virtual memory for Elasticsearch (when running in Docker).
- The Python package Cookiecutter
- Pipenv
Create an Invenio instance¶
First step is to create your new Invenio instance using the official Invenio cookiecutter template.
$ cookiecutter gh:inveniosoftware/cookiecutter-invenio-instance --checkout v3.3
The cookiecutter initialisation procedure will prompt you with a series of questions aiming to customise your new instance, e.g. the name of your application.
Note
At the end of the initialisation, you will be warned to manually change some parts
of the generated code marked with TODOs
. These will be covered in the
Final steps section of this quick start guide.
Install¶
Now that your project is generated, you will have to install all needed Python dependencies and initialise the application services such as the database and the search engine.
From now on, the quick start guide will use the name my-site
to refer to your
newly created Invenio application.
Let’s run the service using docker-compose
:
$ cd my-site/
$ docker-compose up
Creating my-site_cache_1 ... done
Creating my-site_db_1 ... done
Creating my-site_es_1 ... done
Creating my-site_mq_1 ... done
If Elasticsearch service fails to start, it might be due to its requirement for additional virtual memory than the one provided by your system defaults. For more information, see Elasticsearch documentation.
Let’s run the installation scripts:
$ ./scripts/bootstrap
$ ./scripts/setup
This will:
- install required Python packages
- build JS/CSS assets
- create and initialise the database and the search engine
Run¶
Let’s run Invenio and open your browser to https://127.0.0.1:5000/:
$ ./scripts/server
* Environment: development
* Debug mode: on
* Running on https://127.0.0.1:5000/ (Press CTRL+C to quit)
Records¶
Learn how to create and view records: Create, display and search records.