mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
d6aebf654f
* feat(devenv): add containerized development environment Replace local-process dev workflow with a fully containerized stack using docker compose. This enables consistent development across machines without requiring local Go/Node toolchains or containerd. - Add Dockerfile.server.dev with containerd + CNI networking support - Add Dockerfile.web.dev for frontend dev server - Add server-dev-entrypoint.sh for containerd lifecycle management - Expand devenv/docker-compose.yml with server, agent, web, migrate and deps services with proper health checks and dependency ordering - Update app.dev.toml to use container service names instead of localhost - Refactor mise.toml dev tasks to drive docker compose workflow - Support agent_gateway.server_addr in config package for inter-container communication * feat(devenv): add hot-reload and registry mirror support - Add air for Go server hot-reload in dev containers - Fix agent_gateway host in dev config (0.0.0.0 -> agent) - Add configurable registry mirror for China mainland users - Unify MCP image refs via MCPConfig.ImageRef() * feat(scripts): add China mainland mirror option to install script Prompt users to opt-in to memoh.cn mirror during installation, which applies docker-compose.cn.yml overlay and sets registry in config.toml for MCP image pulls.
2.1 KiB
2.1 KiB
Contributing Guide
Prerequisites
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:
- PostgreSQL + Qdrant (infrastructure)
- Database migrations (auto-run on startup)
- Go server with containerd (hot-reload via
go run) - Agent Gateway (Bun, hot-reload)
- 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.dev.toml, app.docker.toml)
devenv/ — Containerized development environment (docker-compose)
docker/ — 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