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:
| Channel | Package | Command | Platform |
|---|---|---|---|
| Homebrew | noetl/tap/noetl | brew install noetl/tap/noetl | macOS, Linux |
| APT | noetl | sudo apt-get install noetl | Ubuntu, Debian |
| PyPI | noetlctl | pip install noetlctl | Cross-platform |
| Crates.io | noetl | cargo install noetl | Cross-platform |
| GitHub | Binary | Download from releases | macOS, 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:
| Variable | Description | Default |
|---|---|---|
NOETL_SERVER_HOST | Server bind address | 0.0.0.0 |
NOETL_SERVER_PORT | Server port | 8082 |
NOETL_DATABASE_URL | PostgreSQL connection | Required |
NOETL_WORKER_POOL_SIZE | Worker pool size | 4 |
NOETL_LOG_LEVEL | Logging level | INFO |
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
- Quick Start - Your first playbook
- Architecture - System components
- CLI Reference - Command reference