Skip to main content

Installation

NoETL provides multiple installation options across different platforms and package managers.

Quick Install

Choose your preferred installation method:

Homebrew (macOS/Linux)

brew tap noetl/tap
brew install noetl

APT (Ubuntu/Debian)

echo 'deb [trusted=yes] https://noetl.github.io/apt jammy main' | sudo tee /etc/apt/sources.list.d/noetl.list
sudo apt-get update
sudo apt-get install noetl

See APT Installation Guide for details.

PyPI (Python Package)

pip install noetlctl

Cargo (Rust)

cargo install noetl

Verify Installation

noetl --version
noetl --help

Distribution Channels

NoETL is available through multiple distribution channels:

ChannelPackageCommandPlatform
Homebrewnoetl/tap/noetlbrew install noetl/tap/noetlmacOS, Linux
APTnoetlsudo apt-get install noetlUbuntu, Debian
PyPInoetlctlpip install noetlctlCross-platform
Crates.ionoetlcargo install noetlCross-platform
GitHubBinaryDownload from releasesmacOS, Linux

Kubernetes Deployment

For production deployments, NoETL runs as a Kubernetes service with PostgreSQL backend.

Prerequisites

  • Docker
  • kubectl
  • Helm 3.x
  • Kind (for local development)

Local Development with Kind

# Clone repository
git clone https://github.com/noetl/noetl.git
cd noetl

# Bootstrap complete environment
noetl run automation/main.yaml --set action=bootstrap

This creates a Kind cluster with:

  • NoETL server and workers (3 replicas)
  • PostgreSQL database
  • Observability stack (ClickHouse, Qdrant, NATS)

Optional: Deploy VictoriaMetrics monitoring stack:

noetl run automation/infrastructure/monitoring.yaml --set action=deploy

Available Automation Actions

After cloning the repository, use automation playbooks for infrastructure management:

# Deploy complete environment
noetl run automation/main.yaml --set action=bootstrap

# Deploy individual components
noetl run automation/infrastructure/postgres.yaml --set action=deploy
noetl run automation/infrastructure/clickhouse.yaml --set action=deploy
noetl run automation/infrastructure/qdrant.yaml --set action=deploy

# Check status
noetl run automation/infrastructure/postgres.yaml --set action=status

# Remove environment
noetl run automation/main.yaml --set action=destroy

See Automation Playbooks for complete reference.

Manual Kubernetes Deployment

For custom deployments without automation:

# Create namespace
kubectl create namespace noetl

# Deploy PostgreSQL
kubectl apply -f ci/manifests/postgres/

# Deploy NoETL
kubectl apply -f ci/manifests/noetl/

Environment Variables

Key environment variables for configuration:

VariableDescriptionDefault
NOETL_SERVER_HOSTServer bind address0.0.0.0
NOETL_SERVER_PORTServer port8082
NOETL_DATABASE_URLPostgreSQL connectionRequired
NOETL_WORKER_POOL_SIZEWorker pool size4
NOETL_LOG_LEVELLogging levelINFO

See Environment Configuration for complete list.

Verify Installation

Check Server Status

curl http://localhost:8082/api/health

List Registered Playbooks

noetl catalog list playbook --host localhost --port 8082

Run Hello World

noetl run playbook "tests/fixtures/playbooks/hello_world" \
--host localhost --port 8082

Next Steps