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.
Prerequisites
Section titled “Prerequisites”- 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
Step 1: Clone the Repository
Section titled “Step 1: Clone the Repository”git clone https://github.com/easyshell-ai/easyshell.gitcd easyshellStep 2: Configure Environment Variables
Section titled “Step 2: Configure Environment Variables”Copy the environment template and modify as needed:
cp .env.example .envThe defaults work out of the box. Key configuration options:
| Variable | Default | Description |
|---|---|---|
MYSQL_PASSWORD | 18923ce29fdab04e | MySQL root password |
SERVER_PORT | 18080 | Server API port |
WEB_PORT | 18880 | Web frontend port |
PROVISION_SERVER_URL | http://easyshell-server:18080 | Agent connection URL — change to your server’s external address when deploying agents |
Step 3: Start All Services
Section titled “Step 3: Start All Services”docker compose up -dDocker Compose will automatically pull pre-built images and start all four services:
| Service | Image | Port |
|---|---|---|
| easyshell-server | laolupaojiao/easyshell-server:latest | 18080 |
| easyshell-web | laolupaojiao/easyshell-web:latest | 18880 |
| easyshell-mysql | mysql:8.0 | 13306 |
| easyshell-redis | redis:7-alpine | 16379 |
Step 4: Verify Services
Section titled “Step 4: Verify Services”docker compose psAll services should show healthy status within 1–2 minutes. You can also check logs for troubleshooting:
docker compose logs -fStep 5: Login
Section titled “Step 5: Login”Open http://localhost:18880 in your browser and log in with:
- Username:
easyshell - Password:
easyshell@changeme
Step 6: Deploy Agents to Managed Hosts
Section titled “Step 6: Deploy Agents to Managed Hosts”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)”- Navigate to Host Management in the sidebar
- Click Add Host → Install Agent
- Enter the target host’s SSH credentials (IP, port, username, password/key)
- The server will SSH into the target, upload the correct binary (amd64/arm64), and start the agent
Option B: Manual Deployment
Section titled “Option B: Manual Deployment”- Copy the pre-built binary to the target host:
scp easyshell-agent/easyshell-agent-linux-amd64 user@target:/usr/local/bin/easyshell-agent- Create the config file
/etc/easyshell/agent.yamlon 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- Start the agent:
chmod +x /usr/local/bin/easyshell-agent/usr/local/bin/easyshell-agent --config /etc/easyshell/agent.yamlStep 7: Configure AI Assistant (Optional)
Section titled “Step 7: Configure AI Assistant (Optional)”To enable the AI-powered operations assistant:
- Navigate to System Management → AI Settings
- Add your preferred AI model provider (e.g., OpenAI, DeepSeek, or any OpenAI-compatible API)
- Configure the API Key and model settings
- Test the connection
For detailed AI configuration, see the AI Configuration guide.
Developer: Build from Source
Section titled “Developer: Build from Source”To build images locally from source instead of using pre-built images, use the development compose file:
docker compose -f docker-compose.build.yml up -dThis will build images locally using Dockerfile.server and Dockerfile.web before starting.
What’s Next?
Section titled “What’s Next?”- Core Concepts — Understand the architecture and key terminology
- Host Management — Learn how to manage hosts and clusters
- Script Execution — Run your first batch script
- AI Assistant — Use AI for intelligent operations