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.
122 lines
2.7 KiB
TOML
122 lines
2.7 KiB
TOML
experimental_monorepo_root = true
|
|
|
|
[tools]
|
|
# Go version from go.mod
|
|
go = "1.25.6"
|
|
# Node.js for frontend packages
|
|
node = "25"
|
|
# Bun for agent gateway
|
|
bun = "latest"
|
|
# pnpm for workspace management
|
|
pnpm = "10"
|
|
# sqlc for sql management
|
|
sqlc = "latest"
|
|
# typos for spell check
|
|
typos = "latest"
|
|
|
|
[task_config]
|
|
dir = "{{cwd}}"
|
|
|
|
[settings]
|
|
experimental = true
|
|
|
|
[tasks.pnpm-install]
|
|
description = "Install dependencies"
|
|
env = { CI = "true" }
|
|
run = "pnpm install"
|
|
|
|
[tasks.go-install]
|
|
description = "Install Go dependencies"
|
|
run = "go mod download"
|
|
|
|
[tasks.swagger-generate]
|
|
description = "Generate Swagger documentation"
|
|
depends = [
|
|
"//:go-install",
|
|
]
|
|
run = "cd internal/handlers && go generate"
|
|
|
|
[tasks.sdk-generate]
|
|
description = "Generate SDK code"
|
|
run = "pnpm run generate-sdk"
|
|
depends = [
|
|
"//:pnpm-install",
|
|
"//:swagger-generate"
|
|
]
|
|
|
|
[tasks.sqlc-generate]
|
|
description = "Generate SQL code"
|
|
run = "sqlc generate"
|
|
|
|
[tasks.dev]
|
|
description = "Start development environment"
|
|
run = """
|
|
#!/bin/bash
|
|
set -e
|
|
cp conf/app.dev.toml config.toml
|
|
docker compose -f devenv/docker-compose.yml up --build
|
|
"""
|
|
|
|
[tasks."dev:down"]
|
|
description = "Stop development environment"
|
|
run = "docker compose -f devenv/docker-compose.yml down --remove-orphans"
|
|
|
|
[tasks."dev:logs"]
|
|
description = "View development logs"
|
|
run = "docker compose -f devenv/docker-compose.yml logs -f"
|
|
|
|
[tasks."dev:restart"]
|
|
description = "Restart a service (usage: mise run dev:restart -- server)"
|
|
run = "docker compose -f devenv/docker-compose.yml restart $@"
|
|
|
|
[tasks.db-up]
|
|
description = "Initialize and Migrate Database"
|
|
run = "scripts/db-up.sh"
|
|
|
|
[tasks.db-down]
|
|
description = "Drop Database"
|
|
run = "scripts/db-drop.sh"
|
|
|
|
[tasks.release]
|
|
description = "Release new version"
|
|
run = "pnpm release"
|
|
|
|
[tasks.build-embedded-assets]
|
|
description = "Build and stage embedded web/agent/bun assets"
|
|
run = "scripts/release.sh --prepare-assets"
|
|
depends = ["//:pnpm-install"]
|
|
|
|
[tasks.build-unified]
|
|
description = "Build unified memoh binary"
|
|
depends = ["//:build-embedded-assets"]
|
|
run = "go build -o bin/memoh ./cmd/memoh"
|
|
|
|
[tasks.release-binaries]
|
|
description = "Build release archive for one target (requires TARGET_OS TARGET_ARCH)"
|
|
depends = ["//:pnpm-install"]
|
|
run = "scripts/release.sh"
|
|
|
|
[tasks.install-cli]
|
|
description = "Install CLI"
|
|
depends = ["//:pnpm-install"]
|
|
run = "cd packages/cli && npm install -g"
|
|
|
|
[tasks.install-socktainer]
|
|
description = "Install socktainer"
|
|
run = "brew tap socktainer/tap && brew install socktainer"
|
|
|
|
[tasks.setup]
|
|
description = "Setup development environment"
|
|
depends = [
|
|
"//:sqlc-generate",
|
|
"//:pnpm-install",
|
|
"//:go-install",
|
|
"//:install-cli",
|
|
]
|
|
run = """
|
|
#!/bin/bash
|
|
set -e
|
|
cp conf/app.dev.toml config.toml
|
|
echo '✓ Setup complete! Run: mise run dev'
|
|
"""
|