Skip to content

Install

You can install Ella Core on Linux or on Kubernetes.

Ella Core is available as a Snap, making it easy to install on many Linux distributions, including Ubuntu, Ubuntu Core, Debian, Arch Linux, and more. View the Ella Core snap on the Snap Store.

Pre-requisites

  • A machine with at least:
    • 2 CPU cores
    • 2 GB of RAM
    • 10 GB of disk space
    • 4 network interfaces
  • A Linux distribution that supports Snap packages.

Steps

Install the snap:

sudo snap install ella-core

Connect the snap to the required interfaces:

sudo snap connect ella-core:network-control
sudo snap connect ella-core:process-control
sudo snap connect ella-core:sys-fs-bpf-upf-pipeline
sudo snap connect ella-core:system-observe

Edit the configuration file at /var/snap/ella-core/common/config.yaml to configure the network interfaces:

logging:
  system:
    level: "info"
    output: "stdout"
  audit:
    output: "stdout"
db:
  path: "/var/snap/ella-core/common/data/core.db"
interfaces:
  n2:
    name: "ens4"
    port: 38412
  n3: 
    name: "ens5"
  n6:
    name: "ens6"
  api:
    name: "ens3"
    port: 5002
    tls:
      cert: "/var/snap/ella-core/common/cert.pem"
      key: "/var/snap/ella-core/common/key.pem"
xdp:
    attach-mode: "native"

Note

For more information on the configuration options, see the configuration file reference.

Start the service:

sudo snap start ella-core.cored

Navigate to https://localhost:5002 to access the Ella UI.

Building from Source

You can build Ella Core from source.

Warning

Building from source is recommended for development purposes only.

Pre-requisites

Install the pre-requisites:

sudo snap install go --channel=1.24/stable --classic
sudo snap install node --channel=20/stable --classic
sudo apt install clang llvm gcc-multilib libbpf-dev

Steps

Clone the Ella Core repository:

git clone https://github.com/ellanetworks/core.git

Move to the repository directory:

cd core

Note

If you want to build a specific version, checkout the tag after cloning the repository. For example, to build version 0.0.4, run git checkout v0.0.4.

Build the frontend:

npm install --prefix ui
npm run build --prefix ui

Build the backend:

go build cmd/core/main.go

Edit the configuration file at core.yaml to configure the network interfaces.

Start the service:

./main --config core.yaml

Navigate to https://localhost:5002 to access the Ella UI.

Ella Core is available as a Container image, making it easy to deploy on Kubernetes. View the Ella Core image on the GitHub Container Registry.

Pre-requisites

  • A Kubernetes cluster with:
    • Multus CNI installed

Steps

Create a namespace for Ella Core:

kubectl create namespace ella

Install Ella Core:

kubectl apply -k github.com/ellanetworks/core/k8s/core/base?ref=v0.0.15 -n ella

Note

You can change the configuration by editing the core-config ConfigMap:

kubectl edit configmap core-config -n ella