Installation Guide
This guide will walk you through installing EVerest Core on your system. EVerest supports both container-based and bare metal installations.For the quickest start, we recommend using the container-based development environment with VS Code. For production deployments or embedded systems, use the bare metal installation.
System Requirements
Before installing EVerest Core, ensure your system meets these requirements:Operating System
- Linux: Ubuntu 22.04, 24.04, or other modern distributions
- macOS: Supported via Docker
- Windows: Supported via WSL2 and Docker
Hardware Requirements
- CPU: x86_64 or ARM64
- RAM: Minimum 4GB (8GB recommended for development)
- Disk Space: At least 10GB free space
Prerequisites
The following dependencies are required to build and run EVerest Core:Build Tools
Required Libraries
EVerest Core requires several C++ libraries:Minimum Versions
- CMake: 3.16 or higher
- C++ Compiler: GCC 9+ or Clang 10+ (C++17 support required)
- Python: 3.7 or higher
- Boost: 1.71 or higher
- OpenSSL: 3.0 or higher
Python Dependencies
Install required Python packages:Installation Methods
Option 1: Container-Based Development (Recommended)
The easiest way to get started with EVerest is using the container-based development environment.Install Docker
Install Docker and Docker Compose V2 on your system:For other platforms, see Docker installation docs.
Install VS Code (Optional)
For the best development experience, install Visual Studio Code:Install the Dev Containers extension in VS Code.
Install DevContainer Template
Run the setup script to install the development container:The script will prompt you for:
- Workspace directory: Press Enter to use current directory
- Version: Press Enter to use ‘main’
- Continue if not empty: Type ‘y’ and press Enter
The container includes all dependencies pre-installed, including CMake, compilers, Boost, and all required libraries. You can start developing immediately!
Option 2: Manual Docker Setup
If you prefer to run the container without VS Code:Option 3: Bare Metal Installation
For production deployments or when you need to work directly on the host system:Install EDM (EVerest Dependency Manager)
EDM is required to manage EVerest dependencies. Install version 0.8.0 or higher:
Building from Source with CMake
EVerest Core uses CMake as its build system. Here’s a detailed look at the build process:Basic Build
Build Options
EVerest Core provides several CMake options to customize the build:| Option | Default | Description |
|---|---|---|
BUILD_TESTING | OFF | Build unit tests |
EVEREST_ENABLE_PY_SUPPORT | ON | Enable Python module support |
EVEREST_BUILD_APPLICATIONS | ON | Build driver applications |
EVEREST_ENABLE_COMPILE_WARNINGS | OFF | Enable additional compile warnings |
EVEREST_ENABLE_DEBUG_BUILD | OFF | Build with debug symbols |
ISO15118_2_GENERATE_AND_INSTALL_CERTIFICATES | ON | Auto-generate development certificates |
Dependencies
EVerest Core automatically manages most of its dependencies using CPM (CMake Package Manager). The following dependencies are managed:- everest-framework: Core framework components
- everest-cmake: CMake utilities
- Boost: filesystem, program_options, thread
- MQTT-C: MQTT client library
- pugixml: XML parser
- libcurl: HTTP client
- OpenSSL: Cryptography
- sdbus-c++: D-Bus integration
Dependencies are defined in
/home/daytona/workspace/source/dependencies.yaml and automatically downloaded during the build process.Verify Installation
After installation, verify that EVerest is working correctly:Check Manager Executable
Check Version
2026.02.0).
List Available Configurations
config-sil.yaml.
Troubleshooting
CMake cannot find Boost
CMake cannot find Boost
Ensure Boost is installed and the version is 1.71 or higher:
OpenSSL version too old
OpenSSL version too old
EVerest requires OpenSSL 3.0 or higher. On older systems, you may need to build OpenSSL from source or use a PPA:
Python nanopb version mismatch
Python nanopb version mismatch
Ensure you’re using the exact nanopb version specified:
Build fails with atomic linking errors
Build fails with atomic linking errors
Some platforms require explicit linking with libatomic. CMake should detect this automatically, but if it fails, try:
Container port conflicts
Container port conflicts
If ports are already in use:
Next Steps
Now that you have EVerest Core installed, you’re ready to run your first charging simulation!Quick Start Tutorial
Learn how to run your first EVerest configuration and start a charging simulation