# System map — strapi/strapi

> Canonical page: https://codevetter.com/unpack/strapi/system-map

# System map — strapi/strapi

Scanned commit 93476f908c08d6d3d5215c06483829e3c6da1b32 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The runtime centers on a Strapi dependency container, with a CLI entrypoint and separate HTTP/admin application boundaries. Content persistence passes through the Document Service into a Knex-backed database package. Plugins and providers assemble application capabilities, while Nx coordinates package builds and checks. Architecture diagrams and contributor documentation are separately built artifacts.
- The executable bin delegates to runCLI; createCLI loads command factories, and the start action resolves appDir/distDir before invoking createStrapi(...).start(). TypeScript projects use an existing compiled output fast path or resolveOutDir fallback. — [packages/core/strapi/bin/strapi.js#L1-4](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/strapi/bin/strapi.js#L1-L4) [packages/core/strapi/src/cli/index.ts#L42-54](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/strapi/src/cli/index.ts#L42-L54) [packages/core/strapi/src/cli/commands/start.ts#L10-40](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/strapi/src/cli/commands/start.ts#L10-L40)
- Strapi extends Container, loads configuration in its constructor, registers internal services, and invokes provider initialization. Its container owns server, authentication, Document Service, database, request context, and event hub services. — [packages/core/core/src/Strapi.ts#L54-71](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/core/src/Strapi.ts#L54-L71) [packages/core/core/src/Strapi.ts#L290-326](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/core/src/Strapi.ts#L290-L326)
- createServer creates a Koa application and HTTP server, separates admin and content-api routers, installs request context, and exposes /_health with status 204. Content API routing defaults to the /api prefix. — [packages/core/core/src/services/server/index.ts#L13-40](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/core/src/services/server/index.ts#L13-L40) [packages/core/core/src/services/server/content-api.ts#L4-10](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/core/src/services/server/content-api.ts#L4-L10)
- @strapi/admin exports distinct strapi-admin and strapi-server entrypoints. The browser StrapiApp constructs Redux state from stored preferences/token and renders a RouterProvider, keeping browser application state separate from server services. — [packages/core/admin/package.json#L27-62](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/admin/package.json#L27-L62) [packages/core/admin/admin/src/StrapiApp.tsx#L573-601](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/admin/admin/src/StrapiApp.tsx#L573-L601)
- Database constructs dialect, Knex connection, metadata, schema, migration, lifecycle, entity-manager, and repair services. init loads model metadata and validates the database; query(uid) rejects unknown models before returning a repository. — [packages/core/database/src/index.ts#L76-126](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/database/src/index.ts#L76-L126) [packages/core/database/src/index.ts#L129-161](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/database/src/index.ts#L129-L161)
- Plugin loading resolves each enabled package's strapi-server export, loads its implementation, merges defaults/configuration, applies application extensions, and registers it. Email providers are dynamically resolved and initialized with providerOptions/settings. — [packages/core/core/src/loaders/plugins/index.ts#L98-150](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/core/src/loaders/plugins/index.ts#L98-L150) [packages/core/email/server/src/bootstrap.ts#L22-52](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/email/server/src/bootstrap.ts#L22-L52)
- The root is a private Yarn workspace using yarn@4.12.0; build targets run through Nx, and core packages emit Rollup code plus TypeScript declarations. Nx caches build outputs in package dist directories. — [package.json#L24-38](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/package.json#L24-L38) [package.json#L214-219](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/package.json#L214-L219) [packages/core/core/package.json#L45-57](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/packages/core/core/package.json#L45-L57) [nx.json#L21-37](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/nx.json#L21-L37)
- Architecture is a separate LikeC4 workspace with HTML-build and diagram-export commands; contributor docs use Docusaurus. The contributor-doc workflow builds docs and publishes docs/build to GitHub Pages on develop pushes or manual dispatch. — [architecture/package.json#L1-16](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/architecture/package.json#L1-L16) [architecture/README.md#L9-16](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/architecture/README.md#L9-L16) [docs/package.json#L5-14](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/docs/package.json#L5-L14) [.github/workflows/contributor-doc.yml#L3-16](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/.github/workflows/contributor-doc.yml#L3-L16) [.github/workflows/contributor-doc.yml#L35-48](https://github.com/strapi/strapi/blob/93476f908c08d6d3d5215c06483829e3c6da1b32/.github/workflows/contributor-doc.yml#L35-L48)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
