This is the unified backend core for the Cadmus framework. It merges the following repositories:
- cadmus-bricks
- cadmus_core
- cadmus-migration-v3
- cadmus-general
- cadmus-philology
- cadmus_tool
- cadmus-api
- cadmus-graph-studio-api
These repositories are now archived and no longer maintained. Please use this repository instead, which provides:
- centralized codebase for all core Cadmus backend components.
- unified versioning and release management.
The projects were just copied into this solution from the above repositories, and then their configuration files were updated to use the new unified versioning (starting from 14.0.0) and release management. The code itself was not changed, so it is still the same as in the original repositories. Anyway, new development will be done here.
- bricks:
Cadmus.Refs.Bricks: sub-models for referencesCadmus.Mat.Bricks: sub-models for material descriptionCadmus.Bricks.Api: API for bricks demo
- core:
Cadmus.Core: core models and logicCadmus.Seed: core models and logic for seeding mock dataCadmus.Mongo: MongoDB implementation of data repository
- index:
Cadmus.Index: core models and logic for data indexCadmus.Index.Ef: EntityFramework base implementation for data index (currently used for data storage)Cadmus.Index.Ef.PgSql: PostgreSQL implementation ofCadmus.Index.EfCadmus.Index.Sql: SQL base index implementation (currently used for query)Cadmus.Index.PgSql: PostgreSQL implementation ofCadmus.Index.Sql
- graph:
Cadmus.Graph: core models and logic for semantic data graphCadmus.Graph.Api: API for semantic data graph demoCadmus.Graph.Ef: EntityFramework base models for semantic data graphCadmus.Graph.Ef.PgSql: PostgreSQL implementation ofCadmus.Graph.EfCadmus.Graph.Extras: semantic data graph extensions
- migration:
Cadmus.Export: core models and logic for data exportCadmus.Export.ML: data export to markup languagesCadmus.Export.Rdf: data export to RDFCadmus.Import: core models and logic for data importCadmus.Import.Excel: import from Excel data sourceCadmus.Import.Proteus: import within the Proteus conversion frameworkProteus.Rendering: data rendering into text based on the Proteus conversion framework
- parts:
Cadmus.General.Parts: generic data modelsCadmus.Seed.General.Parts: seeders for generic data modelsCadmus.Philology.Tools: tools for philology data modelsCadmus.Philology.Parts: philology data modelsCadmus.Seed.Philology.Parts: seeders for philology data models
- CLI:
Cadmus.Cli.Core: core models and logic for CLIcadmus-mig: CLI migration toolcadmus-tool: CLI tool
- API:
Cadmus.Api: demo APICadmus.Api.Config: API configurationCadmus.Api.Controllers: API controllersCadmus.Api.Controllers.Export: data export API controllersCadmus.Api.Controllers.Import: data import API controllersCadmus.Api.Models: API data exchange modelsCadmus.Api.Services: API services
- graph studio:
Cadmus.GraphStudio.Api: API for graph studio
If you add new projects to this solution, ensure to add them in
buildnpub.ps1(you can use getbuildorder.ps1 to get the build order).
🐋 Before creating Docker images, ensure you have a buildx builder instance running that supports multi-arch:
docker buildx create --use --name multi-arch-builder || docker buildx use multi-arch-builder
docker buildx inspect --bootstrapTo run natively on Linux VMs, macOS (both Intel and Apple Silicon), and Windows (via WSL2 or Docker Desktop)—
linux/amd64andlinux/arm64are the only two targets we need. Note thatdocker buildxautomatically injects variables likeTARGETARCHandTARGETOSinto the scope of your build. InDockerfilewe pass these directly to the .NET CLI commands.
These commands build for multiple platforms and push directly to Docker Hub:
- 🐋 Cadmus.Api:
docker buildx build --platform linux/amd64,linux/arm64 -t vedph2020/cadmus-api:13.0.4 -t vedph2020/cadmus-api:latest --push .- 🐋 Cadmus.Bricks.Api:
docker buildx build -f Dockerfile-bricks --platform linux/amd64,linux/arm64 -t vedph2020/cadmus-bricks-api:14.0.1 -t vedph2020/cadmus-bricks-api:latest --push .- 🐋 Cadmus.GraphStudio.Api:
docker buildx build -f Dockerfile-graph-studio --platform linux/amd64,linux/arm64 -t vedph2020/cadmus-graph-studio-api:1.0.0 -t vedph2020/cadmus-graph-studio-api:latest --push .This workspace has a CI workflow for publishing the CLI tool application. Should it fail, you can re-run it after fixing the workflow if the error is there. Yet, remember that "Re-run all jobs" reuses the workflow file as it was pinned to that specific run (the commit/tag that triggered it), not your latest push. Since a fix lands in a commit after that run started, the rerun replays the old, broken ci.yaml. To avoid this, use the workflow_dispatch trigger — that one runs whatever ci.yaml currently exists on the branch/ref you pick. Via the UI:
- Actions tab → select the Publish workflow in the left sidebar (not the old run)
- Click Run workflow (top right)
- Pick branch master, enter v14.0.2 in the tag field
- Run workflow