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:latestghcr.io/mpcoredeveloper/sharpcoredb-server:latest
Until those images are published (the docker-publish.yml workflow builds SCDMS on a
v* tag), build them locally by uncommenting the build: blocks in docker-compose.yml:
# for scdmsbuild:
context: ../..dockerfile: Dockerfile# for sharpcoredbbuild:
context: /path/to/SharpCoreDBdockerfile: 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).