This sample runs:
- SCDMS — the web studio, serving plain HTTP on
:8080inside the container. - SharpCoreDB server — the gRPC database server (
:5001, TLS). - Caddy — reverse proxy that terminates TLS with a publicly trusted (Let's Encrypt) certificate for both the SCDMS web UI and the gRPC endpoint.
All SCDMS ⇄ SharpCoreDB data traffic flows over gRPC. SCDMS connects to
https://<GRPC_DOMAIN>:443 and validates the public certificate; the proxy re-encrypts
to the server's internal certificate, so no custom CA is needed inside SCDMS.
cp .env.example .envand edit the domains + secrets.- Put the SharpCoreDB server TLS certificate (e.g.
server.pfx) in./server-certs/. - Make sure the container images are available (see below).
docker compose up -d- Open
https://<SCDMS_DOMAIN>— SCDMS auto-connects to the configured gRPC server.
The compose file references published images by default:
ghcr.io/mpcoredeveloper/scdms:latest— built by thedocker-publish.ymlworkflow on everyv*tag. Until it is published, build it locally (see below).ghcr.io/mpcoredeveloper/sharpcoredb-server:latest— published (built on everyv*tag).
To build the SCDMS image locally, uncomment the SCDMS build: block in docker-compose.yml:
# for scdms
build:
context: ../..
dockerfile: Dockerfile
# for sharpcoredb (optional: only needed when you want to build the server image yourself)
build:
context: /path/to/SharpCoreDB
dockerfile: src/SharpCoreDB.Server/DockerfileThe SharpCoreDB server exposes gRPC (5001) and an HTTPS management API (8443). SCDMS uses only gRPC for data access. If you connect SCDMS straight to the server (without the proxy) inside a private network, either keep the proxy pattern above or supply a certificate that SCDMS can validate (or terminate at the proxy — see docs/usage.md).