mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
04bce702b7
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.
72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
# Contributing Guide
|
|
|
|
## Prerequisites
|
|
|
|
- [Docker](https://docs.docker.com/get-docker/) (for containerized dev environment)
|
|
- [mise](https://mise.jdx.dev/) (task runner & toolchain manager)
|
|
|
|
### Install mise
|
|
|
|
```bash
|
|
# macOS / Linux
|
|
curl https://mise.run | sh
|
|
# or
|
|
brew install mise
|
|
|
|
# Windows
|
|
winget install jdx.mise
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
```
|