Deployment Guide

April 25, 2026 · View on GitHub

Detailed deployment and upgrade instructions for Ech0.

For a 60-second quickstart, see the main README.

Table of contents


Quick Deployment

docker run -d \
  --name ech0 \
  -p 6277:6277 \
  -v /opt/ech0/data:/app/data \
  -e JWT_SECRET="Hello Echos" \
  sn0wl1n/ech0:latest

💡 After deployment, access ip:6277 🚷 For better security, replace Hello Echos in -e JWT_SECRET="Hello Echos" with your own secret 📍 The first registered account becomes administrator (currently only admins can publish) 🎈 Data is stored under /opt/ech0/data

🐋 Docker Compose

A ready-to-use example lives at docker/docker-compose.yml. Copy it into a new directory and run:

docker-compose up -d

🧙 Script Deployment

curl -fsSL "https://raw.githubusercontent.com/lin-snow/Ech0/main/scripts/ech0.sh" -o ech0.sh && bash ech0.sh

The script installs and manages Ech0 through systemd, so please run with root privileges when needed. You can run bash ech0.sh install /your/path/ech0 to customize the install path.

☸️ Kubernetes (Helm)

If you want to deploy Ech0 in a Kubernetes cluster, use the Helm Chart provided by this project.

Use the online Helm repository:

  1. Add the Ech0 chart repository:

    helm repo add ech0 https://lin-snow.github.io/Ech0
    helm repo update
    
  2. Install with Helm:

    # helm install <release-name> <repo-name>/<chart-name>
    helm install ech0 ech0/ech0
    

    Customize the release name and namespace if needed:

    helm install my-ech0 ech0/ech0 --namespace my-namespace --create-namespace
    

Local installation from source:

git clone https://github.com/lin-snow/Ech0.git
cd Ech0
helm install ech0 ./charts/ech0

Upgrading

🔄 Docker

# Stop current container
docker stop ech0

# Remove container
docker rm ech0

# Pull latest image
docker pull sn0wl1n/ech0:latest

# Start new version
docker run -d \
  --name ech0 \
  -p 6277:6277 \
  -v /opt/ech0/data:/app/data \
  -e JWT_SECRET="Hello Echos" \
  sn0wl1n/ech0:latest

💎 Docker Compose

# Enter compose directory
cd /path/to/compose

# Pull latest image and recreate
docker-compose pull && \
docker-compose up -d --force-recreate

# Clean old images
docker image prune -f

☸️ Kubernetes (Helm)

  1. Update the Helm repository index:

    helm repo update
    
  2. Upgrade the Helm release:

    # helm upgrade <release-name> <repo-name>/<chart-name>
    helm upgrade ech0 ech0/ech0
    

    With a custom release name and namespace:

    helm upgrade my-ech0 ech0/ech0 --namespace my-namespace
    

See also