Skip to content

Development Setup

ToolVersionPurpose
Java17+Server development
Gradle8.x (wrapper included)Server build system
Go1.23+Agent development
Node.js20+Web frontend development
Docker24+Infrastructure services
Git2.30+Version control
easyshell/
├── easyshell-server/ # Java 17 + Spring Boot 3.5
├── easyshell-agent/ # Go 1.23
├── easyshell-web/ # React 19 + TypeScript + Vite 7
├── easyshell-docs/ # Astro + Starlight (this docs site)
├── easyshell-site/ # Next.js 15 (website + marketplace)
├── docker-compose.yml # MySQL + Redis
├── prd/ # Product requirement documents
└── spec/ # Technical specifications
Terminal window
git clone https://github.com/easyshell-ai/easyshell.git
cd easyshell
Terminal window
docker compose up -d

This starts MySQL 8.0 and Redis 7 with default credentials for development.

  1. Open easyshell-server/ as a Gradle project
  2. Set JDK to Java 17
  3. Run EasyShellServerApplication.java
  4. Server starts on port 18080

The server uses Hibernate auto-DDL — database tables are created automatically on first run.

Terminal window
cd easyshell-web
npm install
npm run dev

The frontend starts on http://localhost:5173 with hot module replacement enabled.

Terminal window
cd easyshell-agent
go build -o easyshell-agent ./cmd/agent
Terminal window
cd easyshell-server
# Run with dev profile
./gradlew bootRun --args='--spring.profiles.active=dev'
# Run tests
./gradlew test
# Build JAR
./gradlew bootJar

Key directories:

PathContents
src/main/java/dev/easyshell/Application source code
src/main/resources/Configuration files
src/test/java/Test files
Terminal window
cd easyshell-agent
# Run locally
go run ./cmd/agent --server http://localhost:18080
# Run tests
go test ./...
# Cross-compile
GOOS=linux GOARCH=amd64 go build -o bin/agent-linux-amd64 ./cmd/agent
GOOS=linux GOARCH=arm64 go build -o bin/agent-linux-arm64 ./cmd/agent
Terminal window
cd easyshell-web
# Development server with HMR
npm run dev
# Type checking
npx tsc --noEmit
# Lint
npm run lint
# Build for production
npm run build
Terminal window
cd easyshell-docs
# Development server
pnpm dev
# Build
pnpm build
# Preview production build
pnpm preview
ComponentStyle GuideTool
Server (Java)Google Java StyleCheckstyle
Agent (Go)Standard Go formattinggofmt / goimports
Web (TypeScript)ESLint + Prettier.eslintrc / .prettierrc
FieldValue
Hostlocalhost
Port3306
Databaseeasyshell
Usernameroot
Passwordroot
Terminal window
# Stop and remove MySQL volume
docker compose down -v
docker compose up -d

The server recreates all tables on startup (with ddl-auto: update).

Terminal window
# Check all services are running
docker compose ps
# View server logs
docker compose logs -f mysql redis
# Connect to MySQL
docker compose exec mysql mysql -uroot -proot easyshell