Multi-stage build → gcr.io/distroless/cc-debian13:nonroot (Debian 13 / trixie family).
| Item | Value |
|---|---|
| Binary | ceps-rust-api |
| Builder | rust:slim-trixie |
| Port | APP_PORT (default 8080) |
| Compose | docker-compose.yml |
Default FEATURES matches the package default (CEPs + swagger / tx-return / sign-local / sign-kms / chain-put). Override at build time:
# From this repo (context = parent so path-deps resolve):
make docker-build
# Or:
docker build -f docker/Dockerfile --build-arg FEATURES=ceps-all,swagger-ui -t interchouette/ceps-rust-api:slim ..| Registry | Image |
|---|---|
| Docker Hub | interchouette/ceps-rust-api |
| Personal GHCR | ghcr.io/groussac/ceps-rust-api (Make/CI only) |
| Worker GHCR | ghcr.io/interchouette/ceps-rust-api (Make/CI only) |
| Org GHCR | ghcr.io/interchouette-itc/ceps-rust-api |
docker pull interchouette/ceps-rust-api:latest
docker pull interchouette/ceps-rust-api:dev
# or org GHCR:
docker pull ghcr.io/interchouette-itc/ceps-rust-api:devPublish :dev with make docker-build-dev + make docker-push-dev (or CI workflow docker-build-push-dev.yml). Release tags via GitHub Release + release.yml.
| Registry | Image |
|---|---|
| Docker Hub | interchouette/ceps-rust-api-mcp |
| Org GHCR | ghcr.io/interchouette-itc/ceps-rust-api-mcp |
docker pull interchouette/ceps-rust-api-mcp:1.0.0
docker pull interchouette/ceps-rust-api-mcp:dev
make mcp-http # :4790 → http://127.0.0.1:4790/mcp
make mcp-http-stopSee docs/mcp.md and mcp/README.md. Compose file: docker-compose.mcp.yml.
| Tag | Meaning |
|---|---|
:dev |
Rolling tip from make docker-build-dev / CI push on dev |
:latest / :X.Y.Z |
Release tags from make docker-build + release push |
make version-show
make docker-build-dev
make docker-builddocker-compose.yml runs the API and, under profiles, optional KMS (+ LocalStack).
Point CEPS_RPC_URL / CEPS_SSE_URL at a reachable Casper node (for example NCTL on the host via host.docker.internal).
| Profile | Services |
|---|---|
| (default) | ceps-rust-api only |
kms |
API + kms-secp256k1-api (+ LocalStack) |
localstack |
LocalStack only (also included under kms) |
# API only
make docker-run
# Recommended: API + KMS peer on a private network
SIGN_BACKEND=kms KMS_URL=http://kms-secp256k1-api:4000 make docker-run-kms
make docker-stopRecommended: private network + SIGN_BACKEND=kms + KMS_URL. Configure the KMS peer itself via kms-secp256k1-api docs (do not duplicate peer env here). Unset or empty SIGN_BACKEND means none (no put signer; public-demo safe). Put signing (local, local-production, kms) belongs on a private network.
Typical compose / runtime vars: APP_ADDR, APP_PORT, CEPS_RPC_URL, CEPS_SSE_URL, CEPS_CHAIN_NAME, SIGN_BACKEND, KMS_URL, LOCAL_KEYS_JSON, LOCAL_KEYS_JSON_PRODUCTION, CEPS_WASM_ROOT, RUST_LOG, DOTENV_DISABLE. See .env.example and the root README.