Skip to content

Quick Start

This guide walks you through deploying a complete EasyShell environment with Docker Compose. All services (Server, Web, MySQL, Redis) are fully containerized — pre-built images are automatically published to Docker Hub and GHCR via GitHub Actions.

  • Docker 24+ with Docker Compose v2 (included with Docker Desktop)
  • Git — for cloning the repository
  • At least 2 GB RAM and 10 GB disk space
Terminal window
git clone https://github.com/easyshell-ai/easyshell.git
cd easyshell

Copy the environment template and modify as needed:

Terminal window
cp .env.example .env

The defaults work out of the box. Key configuration options:

VariableDefaultDescription
MYSQL_PASSWORD18923ce29fdab04eMySQL root password
SERVER_PORT18080Server API port
WEB_PORT18880Web frontend port
PROVISION_SERVER_URLhttp://easyshell-server:18080Agent connection URL — change to your server’s external address when deploying agents
Terminal window
docker compose up -d

Docker Compose will automatically pull pre-built images and start all four services:

ServiceImagePort
easyshell-serverlaolupaojiao/easyshell-server:latest18080
easyshell-weblaolupaojiao/easyshell-web:latest18880
easyshell-mysqlmysql:8.013306
easyshell-redisredis:7-alpine16379
Terminal window
docker compose ps

All services should show healthy status within 1–2 minutes. You can also check logs for troubleshooting:

Terminal window
docker compose logs -f

Open http://localhost:18880 in your browser and log in with:

  • Username: easyshell
  • Password: easyshell@changeme

The EasyShell Agent runs on each server you want to manage. There are two ways to deploy:

Option A: Automatic Deployment (from Web UI)

Section titled “Option A: Automatic Deployment (from Web UI)”
  1. Navigate to Host Management in the sidebar
  2. Click Add HostInstall Agent
  3. Enter the target host’s SSH credentials (IP, port, username, password/key)
  4. The server will SSH into the target, upload the correct binary (amd64/arm64), and start the agent
  1. Copy the pre-built binary to the target host:
Terminal window
scp easyshell-agent/easyshell-agent-linux-amd64 user@target:/usr/local/bin/easyshell-agent
  1. Create the config file /etc/easyshell/agent.yaml on the target:
server:
url: http://YOUR_EASYSHELL_SERVER:18080
agent:
id: "" # Leave empty to auto-generate from hostname
heartbeat:
interval: 30 # seconds
metrics:
interval: 60 # seconds
log:
level: info
  1. Start the agent:
Terminal window
chmod +x /usr/local/bin/easyshell-agent
/usr/local/bin/easyshell-agent --config /etc/easyshell/agent.yaml

To enable the AI-powered operations assistant:

  1. Navigate to System Management → AI Settings
  2. Add your preferred AI model provider (e.g., OpenAI, DeepSeek, or any OpenAI-compatible API)
  3. Configure the API Key and model settings
  4. Test the connection

For detailed AI configuration, see the AI Configuration guide.

To build images locally from source instead of using pre-built images, use the development compose file:

Terminal window
docker compose -f docker-compose.build.yml up -d

This will build images locally using Dockerfile.server and Dockerfile.web before starting.