ArchMeta · Built 2026-09-09T17:39:23.802Z

Docker

External SystemGit RepositoryThe model repository: .arch, .data, .view, .cascade, .metamodel, .bpmn and .md files. This IS the database. The Kernel reads it on load and commits to it on write-back; it never … archmeta-kernel (container) archmeta-site (container) archmeta-build (job) Model Repository Volume archmeta/kernel Site Output Volume archmeta/site ContainerKernelReads the repository into an in-memory graph and serves it over REST on port 7777. Never throws on model content: unresolved references, malformed attributes and rule violations become diagnostics, and the load always completes. A pure function of the repository — no clock, no randomness, no network during a load — so the same commit produces the same model and the same diagnostics forever. ContainerViewerThe single-screen React SPA that is the primary authoring tool: model canvas, BPMN modeler, Markdown editor and Explore in one shell, flanked by a management pane and a docked Inspector. Never reads the whole graph — every instance read is a point read, a search or a bounded neighbourhood — and never touches the filesystem. Edits stage; only a commit sends them to the Kernel. ContainerCLIThe command surface: archmeta init scaffolds a repository with its metamodel profiles, archmeta load reports the model and its diagnostics, archmeta build generates the site, archmeta daemon serves the Kernel and the Viewer. The only entry point in a CI pipeline. ContainerGenerated SiteThe deliverable: static HTML, CSS and JavaScript with a prebuilt search index. No server, no database, no API — it can be served from object storage, a CDN, an nginx container or a … Mounts read-writeServesServesReads fromMounts read-onlyRuns archmetaWritesRealizeIs instantiated asIs instantiated asIs instantiated asPackagesUseREST over HTTPLoads through

Elements (12)

archmeta-kernel (container)archimate:node

deployment.docker-engine.kernel-container

Runs the Kernel daemon, publishing port 7777 and serving the Viewer bundle alongside the API. Stateless: kill it and nothing is lost, because everything it knows was read from the mounted repository and everything it changed was committed back to it.

archmeta-site (container)archimate:node

deployment.docker-engine.site-container

An nginx image serving the generated static site. It has no connection to the Kernel and no back end of its own — once the site is built, this container is interchangeable with any static host.

archmeta-build (job)archimate:node

deployment.docker-engine.builder-container

A one-shot container that runs archmeta build and exits. This is the CI shape: check the repository out, build the site, publish the artifact, tear everything down. Nothing persists between runs, which is safe precisely because the load is a pure function of the commit.

Model Repository Volumearchimate:node

deployment.volumes.model-repo

The Git working tree holding the .arch, .data, .view, .cascade, .metamodel, .bpmn and .md files, mounted read-write so the Kernel can commit. This is the database, and it is a directory.

archmeta/kernelarchimate:technologycomponent

deployment.images.kernel-image

Multi-stage image on node:22-alpine. Build stage installs the npm workspace and compiles every package; the runtime stage carries the Kernel, the CLI and the Viewer bundle. Entry point is archmeta daemon; the model repository arrives as a mount, never baked in.

Site Output Volumearchimate:node

deployment.volumes.site-output

Where the Publisher writes the generated site and the site container reads it from. Disposable: it is derived entirely from the model repository at a given commit.

archmeta/sitearchimate:technologycomponent

deployment.images.site-image

nginx:alpine with the generated site copied into the web root. Built per model repository rather than per product release, because its content is the customer's architecture, not ArchMeta's code.

Kernelc4:container

archmeta.kernel

Reads the repository into an in-memory graph and serves it over REST on port 7777. Never throws on model content: unresolved references, malformed attributes and rule violations become diagnostics, and the load always completes. A pure function of the repository — no clock, no randomness, no network during a load — so the same commit produces the same model and the same diagnostics forever.

Viewerc4:container

archmeta.viewer

The single-screen React SPA that is the primary authoring tool: model canvas, BPMN modeler, Markdown editor and Explore in one shell, flanked by a management pane and a docked Inspector. Never reads the whole graph — every instance read is a point read, a search or a bounded neighbourhood — and never touches the filesystem. Edits stage; only a commit sends them to the Kernel.

CLIc4:container

archmeta.cli

The command surface: archmeta init scaffolds a repository with its metamodel profiles, archmeta load reports the model and its diagnostics, archmeta build generates the site, archmeta daemon serves the Kernel and the Viewer. The only entry point in a CI pipeline.

Generated Sitec4:container

archmeta.static-site

The deliverable: static HTML, CSS and JavaScript with a prebuilt search index. No server, no database, no API — it can be served from object storage, a CDN, an nginx container or a filesystem, which is the point.

Git Repositoryc4:externalsystem

git-repository

The model repository: .arch, .data, .view, .cascade, .metamodel, .bpmn and .md files. This IS the database. The Kernel reads it on load and commits to it on write-back; it never pushes, never pulls and never branches, and is silently inert when the directory is not a Git working tree.

Relationships (17)Relationships (7)

Loads throughc4:uses

archmeta.cli → archmeta.kernel

Loads the model through

Usec4:uses

archmeta.kernel → git-repository

Reads on load, commits on write-back — never pushes

REST over HTTPc4:uses

archmeta.viewer → archmeta.kernel

REST over HTTP — never IPC, never shared state

Runs archmetaarchimate:assignment

deployment.docker-engine.builder-container → archmeta.cli

Runs archmeta build via

Mounts read-onlyarchimate:access

deployment.docker-engine.builder-container → deployment.volumes.model-repo

Writesarchimate:access

deployment.docker-engine.builder-container → deployment.volumes.site-output

Writes the generated site to

deployment.docker-engine.kernel-container → archmeta.kernelarchmeta-kernel (container) → Kernelc4:realization

deployment.docker-engine.kernel-container → archmeta.kernel

Servesarchimate:assignment

deployment.docker-engine.kernel-container → archmeta.viewer

Serves the bundle for

Mounts read-writearchimate:access

deployment.docker-engine.kernel-container → deployment.volumes.model-repo

Servesarchimate:assignment

deployment.docker-engine.site-container → archmeta.static-site

Reads fromarchimate:access

deployment.docker-engine.site-container → deployment.volumes.site-output

deployment.images.kernel-image → archmeta.kernelarchmeta/kernel → Kernelarchimate:realization

deployment.images.kernel-image → archmeta.kernel

Is instantiated asarchimate:realization

deployment.images.kernel-image → deployment.docker-engine.builder-container

Is instantiated asarchimate:realization

deployment.images.kernel-image → deployment.docker-engine.kernel-container

Packagesarchimate:access

deployment.images.site-image → archmeta.static-site

Is instantiated asarchimate:realization

deployment.images.site-image → deployment.docker-engine.site-container

Realizearchimate:realization

deployment.volumes.model-repo → git-repository

Is the working tree of

← Home