Installation
All components of OpenAEV are shipped both as Docker images and manual installation packages.
Production deployment
For production deployment, we recommend to deploy all components in containers, including dependencies, using native cloud services or orchestration systems such as Kubernetes.
-
Use Docker
Deploy OpenAEV using Docker and the default
docker-compose.ymlprovided in the docker. -
Manual installation
Deploy dependencies and launch the platform manually using the packages released in the GitHub releases.
Using Docker
Introduction
OpenAEV can be deployed using the docker compose command.
Pre-requisites
Linux
Windows and MacOS
Just download the appropriate Docker for Desktop version for your operating system.
Clone the repository
Docker helpers are available in the Docker GitHub repository.
mkdir -p /path_to_your_app
cd /path_to_your_app
git clone https://github.com/OpenAEV-Platform/docker.git
cd docker
Configure the environment
Before running the docker compose command, the docker-compose.yml file should be configured. By default, the
docker-compose.yml file is using environment variables available in the .env.sample file, available here.
You can either rename the file .env.sample in .env and put the expected values or just fill directly the
docker-compose.yml with the values corresponding to your environment.
Run OpenAEV
After changing your .env file run docker compose in detached (-d) mode:
Installation done
You can now navigate to http://localhost:8080 and log in with the credentials filled in your configuration.
Manual installation
This section provides instructions to install and run a pre-built OpenAEV server with its dependencies. Note that this does not cover building from source, which you will find in the Development section instead.
Prepare the installation
Installation of dependencies
You have to enable all the mandatory dependencies for the main application.
You may choose to use the dependencies from the provided compose file (see: Using Docker). If you choose to do so, make sure you disable the OpenAEV server container first, and expose the dependencies on appropriate ports. You may refer to the official Docker documentation to achieve this.
Otherwise, you are responsible for providing the dependencies yourself by installing and running them. You need at least a Java Runtime, PostgreSQL (database), ElasticSearch (database), RabbitMQ (queue management), and MinIO (for object storage).
Supported dependency versions
See the Dependencies section for details on the recommended (and supported) versions of the dependencies.
If you choose to install the dependencies manually, please refer to their respective documentation:
- Java: the Java documentation portal
- PostgreSQL: the PostgreSQL documentation portal
- ElasticSearch: the ElasticSearch documentation portal
- RabbitMQ: the RabbitMQ documentation portal
- MinIO: the MinIO website.
Download the application files
First, you have to download and extract the latest release file.
mkdir /path/to/your/app && cd /path/to/your/app
wget <https://github.com/OpenAEV-Platform/openaev/releases/download/{RELEASE_VERSION}/openaev-release-{RELEASE_VERSION}.tar.gz>
tar xvfz openaev-release-{RELEASE_VERSION}.tar.gz
Install the main platform
Configure the application
You may change the application.properties file (located at the root of the extracted release archive)
according to your needs; alternatively you may set the equivalent environment variables.
Mandatory configuration
Note that the configuration keys relevant to the mandatory dependencies listed above must be set in the file or as environment variables.
See the relevant Configuration sections for more details:
Start the application
Before you can start the application, ensure your dependencies are up and running, and healthy.
Then start the application itself:
Installation done
You can now go to http://localhost:8080 and log in with the credentials configured in your application.properties file.
Build the application locally
- cd openaev-front yarn build
- cp -r builder/prod/* ../openaev-api/src/main/resources/static/
- cd ../openaev-api
- mvn clean install -DskipTests
- create an application.properties based on the existing one in openaev-api and fill all the mandatory fields
- run java -jar target/openaev-api.jar --spring.config.location=%PATH%\application.properties
Community contributions
Helm Charts
-
Kubernetes Helm Charts
OpenAEV Helm Charts for Kubernetes with a global configuration file. More information how to deploy here on basic installation and examples.
Deploy behind a reverse proxy
If you want to use OpenAEV behind a reverse proxy with a context path, like https://example.com/openaev, please change
the base_path static parameter.
APP__BASE_PATH=/openaev
By default OpenAEV use websockets so don't forget to configure your proxy for this usage, an example with Nginx: