Files
Memoh/CONTRIBUTING.md
T
BBQ 04bce702b7 feat(devenv): MCP dev hot-reload with image-based approach (#145)
Add mcp-build.sh that compiles the MCP binary and packages it as an
OCI image layer on top of the base rootfs, imported directly into
containerd. Air triggers rebuild on code changes, cleaning stale
containers automatically.

Consolidate dev-only files (Dockerfiles, entrypoint, config, build
script) into devenv/ to separate dev tooling from production artifacts.
Skip image pull when already imported to speed up dev startup.
2026-03-02 14:59:48 +08:00

2.1 KiB

Contributing Guide

Prerequisites

  • Docker (for containerized dev environment)
  • mise (task runner & toolchain manager)

Install mise

# macOS / Linux
curl https://mise.run | sh
# or
brew install mise

# Windows
winget install jdx.mise

Quick Start

mise install       # Install toolchains (Go, Node, Bun, pnpm, sqlc)
mise run setup     # Copy config + install deps
mise run dev       # Start full containerized dev environment

That's it. dev launches everything in Docker containers:

  1. PostgreSQL + Qdrant (infrastructure)
  2. Database migrations (auto-run on startup)
  3. Go server with containerd (hot-reload via go run)
  4. Agent Gateway (Bun, hot-reload)
  5. Web frontend (Vite, hot-reload)

Daily Development

mise run dev             # Start all services
mise run dev:down        # Stop all services
mise run dev:logs        # View logs
mise run dev:restart -- server  # Restart a specific service

More Commands

Command Description
mise run dev Start containerized dev environment
mise run dev:down Stop dev environment
mise run dev:logs View dev logs
mise run dev:restart Restart a service (e.g. -- server)
mise run setup Copy config + install deps
mise run db-up Run database migrations
mise run db-down Roll back database migrations
mise run swagger-generate Generate Swagger documentation
mise run sdk-generate Generate TypeScript SDK
mise run sqlc-generate Generate SQL code

Project Layout

conf/       — Configuration templates (app.example.toml, app.docker.toml)
devenv/     — Dev environment (docker-compose, dev Dockerfiles, app.dev.toml, mcp-build.sh)
docker/     — Production Docker build & runtime (Dockerfiles, entrypoints)
cmd/        — Go application entry points
internal/   — Go backend core code
agent/      — Agent Gateway (Bun/Elysia)
packages/   — Frontend monorepo (web, ui, sdk, cli, config)
db/         — Database migrations and queries
scripts/    — Utility scripts