The verified latest public binary release is v0.5.5. Current merged source declares 0.6.0, including database logical dumps and live restore. Public source publication is being prepared; do not assume an available release asset means the matching public source tree has already been published.Use the installer for a released Engine. The existing nerdit package on PyPI is not the current supported installation route. For development, start from an authorized source checkout rather than an invented download command.
Requirements: Python 3.11 or newer, a working Docker environment for runtime work, Git, and Node/npm for the bundled local dashboard. Caddy is required to exercise HTTPS from source.From the repository root:
python3 -m venv venvvenv/bin/python -m pip install -e '.[dev,mcp]'(cd src/nerdit/daemon/web && npm ci && npm run build)venv/bin/nerdit --help
The dashboard build is required; otherwise its route reports that the bundle is missing. nerdit init is the interactive source-checkout bootstrap, not a repair command for an installed service. Read the checkout’s contributor and agent instructions before starting any Engine.
venv/bin/ruff check src/nerditvenv/bin/ruff format --check src/nerditvenv/bin/mypy src/nerditvenv/bin/pytest tests/test_openapi.py tests/test_mcp.py
These focused schema/tool checks do not prove a Docker deployment works. Use tests appropriate to the changed feature, then exercise its live path in an isolated environment when runtime behavior changes.
Some tests start real Engine processes, inspect ports, or interact with Docker. Never run the full suite while a real Engine or demonstration stack is running. A disposable machine is the simplest safe environment for installation, update, uninstall, and recovery tests.
For multiple Engines sharing one Docker host, every scratch Engine must use a unique [daemon].instance_id, its own configuration/data directory, and separate API/proxy ports. Container cleanup is instance-scoped; using the default identity can affect another instance’s managed containers. Preserve Docker CLI/plugin configuration deliberately when isolating user directories.A useful live validation loop is: dry-run deployment, deploy and wait, request the actual application URL, inspect health/logs, exercise a deliberate failure, and clean up only that test instance. Use throwaway tokens and verify that invalid credentials are actually refused before trusting permission checks.
When public source is available, use the repository’s CONTRIBUTING.md as the maintained contribution policy. The planned release mirror accepts issues and proposed patches; accepted changes are integrated through the release process. Do not infer that every contribution is merged directly into the public mirror.Follow the repository’s Developer Certificate of Origin requirement:
git commit -s
Keep source comments concise and use Google-style Python docstrings. Preserve security, recovery, and caller-visible contracts. MCP descriptions are part of a tool interface: review them with the MCP contract tests rather than treating them as ordinary prose.Documentation is maintained once in the documentation website’s version-controlled source. Public source retains tests and essential root/contributor documents; user-guide sources and MkDocs configuration are not part of the public source export. Report a documentation issue with its page URL and the affected Engine version.
The Engine, CLI, MCP server, and bundled local dashboard are prepared for publication under Apache-2.0. Refer to the released source tree’s LICENSE and NOTICE for the actual terms and attribution. Nerdit’s name and logo are not licensed as trademarks by the code license. The hosted App is a separate service; an account entitlement is unrelated to the source-code license.
Start with troubleshooting. Include your version, platform, installation method, exact command, error code, and redacted diagnostic output when reporting a problem.The public source repository is planned at nerdit-ai/nerdit. Until its issue and security-reporting surfaces are available, contact support@nerdit.ai. Do not publish sensitive reports into an ordinary issue as a workaround.Once available, use the repository’s Security → Report a vulnerability flow for Engine vulnerabilities, following SECURITY.md. That policy covers the Engine and its bundled interfaces; report third-party dependency issues upstream and hosted App issues through the service’s support channel. Security fixes target the latest release line.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Nerdit","description":"Deploy and operate apps on your hardware with Nerdit Engine, and manage connected machines with the Nerdit App.","colors":{"primary":"#0C6E4F","light":"#34C99A","dark":"#0C6E4F"},"logo":{"light":"https://mintcdn.com/nerdit/6Q2GvnvJM-MmRoRG/assets/logo.svg?fit=max\u0026auto=format\u0026n=6Q2GvnvJM-MmRoRG\u0026q=85\u0026s=46f63d4bfedb14b16899fb9d0711277e","dark":"https://mintcdn.com/nerdit/6Q2GvnvJM-MmRoRG/assets/logo.svg?fit=max\u0026auto=format\u0026n=6Q2GvnvJM-MmRoRG\u0026q=85\u0026s=46f63d4bfedb14b16899fb9d0711277e","href":"/"},"favicon":"https://mintcdn.com/nerdit/6Q2GvnvJM-MmRoRG/assets/favicon.png?fit=max\u0026auto=format\u0026n=6Q2GvnvJM-MmRoRG\u0026q=85\u0026s=1ffb540d115afc3bcd9720184cd3a132","api":{"playground":{"display":"none"}},"navbar":{"links":[{"href":"https://nerdit.ai","label":"Website"}],"primary":{"type":"button","label":"Open App","href":"https://app.nerdit.ai"}},"search":{"prompt":"Search Nerdit documentation"},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nerdit","hasAudioNarration":false,"actualSubdomain":"nerdit","customDomains":["docs.nerdit.ai"],"gitSource":{"type":"github","owner":"lwi00","repo":"nerdit_private","deployBranch":"docs/mintlify","contentDirectory":"docs/site","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aa7c8387d216db0b779c015","collectionId":"bc94c210-0aed-4949-a8a1-5d75d2385b21","liveDeploymentHistoryId":"6aa7c8387d216db0b779c015","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"}},"buildId":"6aa7c8387d216db0b779c015","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Engine","count":98},{"language":"default","tag":"HTTP endpoints","count":82},{"language":"default","tag":"Services","count":12},{"language":"default","tag":"App","count":9},{"language":"default","tag":"System","count":9},{"language":"default","tag":"Link","count":8},{"language":"default","tag":"Build and operate","count":7},{"language":"default","tag":"Config","count":6},{"language":"default","tag":"Exposure","count":6},{"language":"default","tag":"Start here","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"engine/development","slug":"/engine/development","pageMetadata":{"sidebarTitle":"Development and support","title":"Development, contributing, and support","description":"Work from a source checkout, verify changes safely, and find the public project policies.","href":"/engine/development"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Work from a source checkout, verify changes safely, and find the public project policies.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`release-and-source-status`,children:`Release and source status`}),`\n`,_jsxs(_components.p,{children:[`The verified latest public binary release is `,_jsx(_components.strong,{children:`v0.5.5`}),`. Current merged source declares `,_jsx(_components.strong,{children:`0.6.0`}),`, including database logical dumps and live restore. Public source publication is being prepared; do not assume an available release asset means the matching public source tree has already been published.`]}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`/engine/installation`,children:`installer`}),` for a released Engine. The existing `,_jsx(_components.code,{children:`nerdit`}),` package on PyPI is not the current supported installation route. For development, start from an authorized source checkout rather than an invented download command.`]}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-a-checkout`,children:`Set up a checkout`}),`\n`,_jsx(_components.p,{children:`Requirements: Python 3.11 or newer, a working Docker environment for runtime work, Git, and Node/npm for the bundled local dashboard. Caddy is required to exercise HTTPS from source.`}),`\n`,_jsx(_components.p,{children:`From the repository root:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`python3`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` venv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` venv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`venv/bin/python`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -e`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '.[dev,mcp]'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` src/nerdit/daemon/web`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ci`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`venv/bin/nerdit`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --help`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The dashboard build is required; otherwise its route reports that the bundle is missing. `,_jsx(_components.code,{children:`nerdit init`}),` is the interactive source-checkout bootstrap, not a repair command for an installed service. Read the checkout’s contributor and agent instructions before starting any Engine.`]}),`\n`,_jsx(Heading,{level:`2`,id:`verify-changes-safely`,children:`Verify changes safely`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`venv/bin/ruff`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` check`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` src/nerdit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`venv/bin/ruff`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` format`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --check`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` src/nerdit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`venv/bin/mypy`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` src/nerdit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`venv/bin/pytest`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tests/test_openapi.py`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tests/test_mcp.py`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`These focused schema/tool checks do not prove a Docker deployment works. Use tests appropriate to the changed feature, then exercise its live path in an isolated environment when runtime behavior changes.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Some tests start real Engine processes, inspect ports, or interact with Docker. Never run the full suite while a real Engine or demonstration stack is running. A disposable machine is the simplest safe environment for installation, update, uninstall, and recovery tests.`})}),`\n`,_jsxs(_components.p,{children:[`For multiple Engines sharing one Docker host, every scratch Engine must use a `,_jsxs(_components.strong,{children:[`unique `,_jsx(_components.code,{children:`[daemon].instance_id`})]}),`, its own configuration/data directory, and separate API/proxy ports. Container cleanup is instance-scoped; using the default identity can affect another instance’s managed containers. Preserve Docker CLI/plugin configuration deliberately when isolating user directories.`]}),`\n`,_jsx(_components.p,{children:`A useful live validation loop is: dry-run deployment, deploy and wait, request the actual application URL, inspect health/logs, exercise a deliberate failure, and clean up only that test instance. Use throwaway tokens and verify that invalid credentials are actually refused before trusting permission checks.`}),`\n`,_jsx(Heading,{level:`2`,id:`contribute`,children:`Contribute`}),`\n`,_jsxs(_components.p,{children:[`When public source is available, use the repository’s `,_jsx(_components.code,{children:`CONTRIBUTING.md`}),` as the maintained contribution policy. The planned release mirror accepts issues and proposed patches; accepted changes are integrated through the release process. Do not infer that every contribution is merged directly into the public mirror.`]}),`\n`,_jsx(_components.p,{children:`Follow the repository’s Developer Certificate of Origin requirement:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` commit`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -s`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Keep source comments concise and use Google-style Python docstrings. Preserve security, recovery, and caller-visible contracts. MCP descriptions are part of a tool interface: review them with the MCP contract tests rather than treating them as ordinary prose.`}),`\n`,_jsx(_components.p,{children:`Documentation is maintained once in the documentation website’s version-controlled source. Public source retains tests and essential root/contributor documents; user-guide sources and MkDocs configuration are not part of the public source export. Report a documentation issue with its page URL and the affected Engine version.`}),`\n`,_jsx(Heading,{level:`2`,id:`licensing`,children:`Licensing`}),`\n`,_jsxs(_components.p,{children:[`The Engine, CLI, MCP server, and bundled local dashboard are prepared for publication under `,_jsx(_components.strong,{children:`Apache-2.0`}),`. Refer to the released source tree’s `,_jsx(_components.code,{children:`LICENSE`}),` and `,_jsx(_components.code,{children:`NOTICE`}),` for the actual terms and attribution. Nerdit’s name and logo are not licensed as trademarks by the code license. The hosted App is a separate service; an account entitlement is unrelated to the source-code license.`]}),`\n`,_jsx(Heading,{level:`2`,id:`support-and-security-reports`,children:`Support and security reports`}),`\n`,_jsxs(_components.p,{children:[`Start with `,_jsx(_components.a,{href:`/engine/troubleshooting`,children:`troubleshooting`}),`. Include your version, platform, installation method, exact command, error code, and redacted diagnostic output when reporting a problem.`]}),`\n`,_jsxs(_components.p,{children:[`The public source repository is planned at `,_jsx(_components.a,{href:`https://github.com/nerdit-ai/nerdit`,children:`nerdit-ai/nerdit`}),`. Until its issue and security-reporting surfaces are available, contact `,_jsx(_components.a,{href:`mailto:support@nerdit.ai`,children:`support@nerdit.ai`}),`. Do not publish sensitive reports into an ordinary issue as a workaround.`]}),`\n`,_jsxs(_components.p,{children:[`Once available, use the repository’s `,_jsx(_components.strong,{children:`Security → Report a vulnerability`}),` flow for Engine vulnerabilities, following `,_jsx(_components.code,{children:`SECURITY.md`}),`. That policy covers the Engine and its bundled interfaces; report third-party dependency issues upstream and hosted App issues through the service’s support channel. Security fixes target the latest release line.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"sidebarTitle":"Development and support","title":"Development, contributing, and support","description":"Work from a source checkout, verify changes safely, and find the public project policies.","href":"/engine/development"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Release and source status","slug":"release-and-source-status","depth":2,"children":[]},{"title":"Set up a checkout","slug":"set-up-a-checkout","depth":2,"children":[]},{"title":"Verify changes safely","slug":"verify-changes-safely","depth":2,"children":[]},{"title":"Contribute","slug":"contribute","depth":2,"children":[]},{"title":"Licensing","slug":"licensing","depth":2,"children":[]},{"title":"Support and security reports","slug":"support-and-security-reports","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"nerdit","siteName":"Nerdit","title":"Development, contributing, and support - Nerdit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-08T16:53:32.767Z","originalFileLocation":"engine/development.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Work from a source checkout, verify changes safely, and find the public project policies.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nerdit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Development, contributing, and support - Nerdit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Work from a source checkout, verify changes safely, and find the public project policies.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nerdit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.nerdit.ai/engine/development\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nerdit.mintlify.app/_mintlify/api/og/v2?division=Get+help\u0026amp;title=Development%2C+contributing%2C+and+support\u0026amp;description=Work+from+a+source+checkout%2C+verify+changes+safely%2C+and+find+the+public+project+policies.\u0026amp;theme=aab2262ec1953b4b86d21331\u0026amp;signature=bcf62897e80a742ab17c581b5c98d7ac4e8c6e13efc193f7c15d80bf58be5d4e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Development, contributing, and support - Nerdit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Work from a source checkout, verify changes safely, and find the public project policies.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nerdit.mintlify.app/_mintlify/api/og/v2?division=Get+help\u0026amp;title=Development%2C+contributing%2C+and+support\u0026amp;description=Work+from+a+source+checkout%2C+verify+changes+safely%2C+and+find+the+public+project+policies.\u0026amp;theme=aab2262ec1953b4b86d21331\u0026amp;signature=bcf62897e80a742ab17c581b5c98d7ac4e8c6e13efc193f7c15d80bf58be5d4e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/nerdit/7ZVgKiO1myBxHYGV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nerdit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C6E4F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.nerdit.ai/engine/development\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/engine/development.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.nerdit.ai/#organization\",\"name\":\"Nerdit\",\"url\":\"https://docs.nerdit.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/nerdit/6Q2GvnvJM-MmRoRG/assets/logo.svg?fit=max\u0026auto=format\u0026n=6Q2GvnvJM-MmRoRG\u0026q=85\u0026s=46f63d4bfedb14b16899fb9d0711277e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.nerdit.ai#website\",\"name\":\"Nerdit\",\"url\":\"https://docs.nerdit.ai\",\"publisher\":{\"@id\":\"https://docs.nerdit.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.nerdit.ai/engine/development#webpage\",\"url\":\"https://docs.nerdit.ai/engine/development\",\"name\":\"Development, contributing, and support\",\"description\":\"Work from a source checkout, verify changes safely, and find the public project policies.\",\"dateModified\":\"2026-09-08T16:53:32.767Z\",\"isPartOf\":{\"@id\":\"https://docs.nerdit.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.nerdit.ai/engine/development#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.nerdit.ai/engine/development#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get help\",\"item\":\"https://docs.nerdit.ai/engine/troubleshooting\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Development, contributing, and support\",\"item\":\"https://docs.nerdit.ai/engine/development\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.nerdit.ai/engine/development#article\",\"headline\":\"Development, contributing, and support\",\"name\":\"Development, contributing, and support\",\"description\":\"Work from a source checkout, verify changes safely, and find the public project policies.\",\"url\":\"https://docs.nerdit.ai/engine/development\",\"mainEntityOfPage\":{\"@id\":\"https://docs.nerdit.ai/engine/development#webpage\"},\"dateModified\":\"2026-09-08T16:53:32.767Z\",\"publisher\":{\"@id\":\"https://docs.nerdit.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.nerdit.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nerdit\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Nerdit","nav":{"global":null,"tabs":[{"tab":"Engine","groups":[{"group":"Start here","pages":[{"sidebarTitle":"Overview","title":"Engine","href":"/engine"},{"sidebarTitle":"Installation","title":"Install, upgrade, and remove Nerdit","href":"/engine/installation"},{"title":"Deploy your first application","href":"/engine/quickstart"}]},{"group":"Build and operate","pages":[{"sidebarTitle":"Configuration","title":"Configure the Engine and applications","href":"/engine/configuration"},{"sidebarTitle":"Deploy applications","title":"Deploy an application","href":"/engine/deploy"},{"sidebarTitle":"Service operations","title":"Operate and troubleshoot services","href":"/engine/operations"},{"sidebarTitle":"Networking and HTTPS","title":"Networking and HTTPS","href":"/engine/networking"},{"sidebarTitle":"AI services and models","title":"Serve models and connect AI services","href":"/engine/ai"},{"sidebarTitle":"Managed databases","title":"Manage Postgres and Redis","href":"/engine/databases"},{"sidebarTitle":"Backup and recovery","title":"Back up and recover","href":"/engine/backup-recovery"}]},{"group":"Access and interfaces","pages":[{"sidebarTitle":"Authentication and security","title":"Authentication and security boundaries","href":"/engine/security"},{"title":"CLI reference","href":"/engine/cli"},{"title":"HTTP API reference","href":"/engine/http-api"},{"title":"MCP setup and tool reference","href":"/engine/mcp"}]},{"group":"HTTP endpoints","pages":[{"group":"Health","pages":[{"title":"Health","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/health","href":"/engine/api/health/health"}]},{"group":"Auth","pages":[{"title":"Auth Check","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/auth/check","href":"/engine/api/auth/auth-check"}]},{"group":"GPUs","pages":[{"title":"List Gpus","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/gpus","href":"/engine/api/gpus/list-gpus"}]},{"group":"Cluster","pages":[{"title":"Cluster Stats","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/cluster/stats","href":"/engine/api/cluster/cluster-stats"},{"title":"Cluster Info","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/cluster/info","href":"/engine/api/cluster/cluster-info"}]},{"group":"Events","pages":[{"title":"List Events","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/events","href":"/engine/api/events/list-events"},{"title":"Stream Cluster Events","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/events/stream","href":"/engine/api/events/stream-cluster-events"}]},{"group":"Images","pages":[{"title":"List Images","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/images","href":"/engine/api/images/list-images"}]},{"group":"Audit","pages":[{"title":"List Audit","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/audit","href":"/engine/api/audit/list-audit"},{"title":"Stream Audit","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/audit/stream","href":"/engine/api/audit/stream-audit"}]},{"group":"Config","pages":[{"title":"Get Daemon Config","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/config/daemon","href":"/engine/api/config/get-daemon-config"},{"title":"Get Daemon Config Section","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/config/daemon/{section}","href":"/engine/api/config/get-daemon-config-section"},{"title":"Put Daemon Config Section","deprecated":null,"version":null,"openapi":"/engine/openapi.json put /api/config/daemon/{section}","href":"/engine/api/config/put-daemon-config-section"},{"title":"Apply Daemon Config","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/config/daemon/apply","href":"/engine/api/config/apply-daemon-config"},{"title":"Get App Config","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/config/apps/{name}","href":"/engine/api/config/get-app-config"},{"title":"Put App Config Section","deprecated":null,"version":null,"openapi":"/engine/openapi.json put /api/config/apps/{name}/{section}","href":"/engine/api/config/put-app-config-section"}]},{"group":"Tokens","pages":[{"title":"List Tokens","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/tokens","href":"/engine/api/tokens/list-tokens"},{"title":"Create Token","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/tokens","href":"/engine/api/tokens/create-token"},{"title":"Get Self Token","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/tokens/self","href":"/engine/api/tokens/get-self-token"},{"title":"Rotate Self Token","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/tokens/self/rotate","href":"/engine/api/tokens/rotate-self-token"},{"title":"Revoke Token","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/tokens/{token_id}","href":"/engine/api/tokens/revoke-token"}]},{"group":"Services","pages":[{"title":"Get Service","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{ident}","href":"/engine/api/services/get-service"},{"title":"Delete Service","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/services/{ident}","href":"/engine/api/services/delete-service"},{"title":"Diagnose Service","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{ident}/diagnose","href":"/engine/api/services/diagnose-service"},{"title":"Run Service Command","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/services/{ident}/run","href":"/engine/api/services/run-service-command"},{"title":"List Services","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services","href":"/engine/api/services/list-services"},{"title":"Create Service","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/services","href":"/engine/api/services/create-service"},{"title":"Stop Service","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/services/{ident}/stop","href":"/engine/api/services/stop-service"},{"title":"Restart Service","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/services/{ident}/restart","href":"/engine/api/services/restart-service"},{"title":"Get Service Logs","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{ident}/logs","href":"/engine/api/services/get-service-logs"},{"title":"Wait For Service","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{ident}/wait","href":"/engine/api/services/wait-for-service"},{"title":"Get Service Stats","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{ident}/stats","href":"/engine/api/services/get-service-stats"},{"title":"Stream Service Logs","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{ident}/logs/stream","href":"/engine/api/services/stream-service-logs"}]},{"group":"Deploy","pages":[{"title":"Deploy","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/deploy","href":"/engine/api/deploy/deploy"},{"title":"Deploy Git","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/deploy/git","href":"/engine/api/deploy/deploy-git"},{"title":"Rollback","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/deploy/{name}/rollback","href":"/engine/api/deploy/rollback"},{"title":"Redeploy","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/deploy/{name}/redeploy","href":"/engine/api/deploy/redeploy"}]},{"group":"Secrets","pages":[{"title":"Rotate Secrets Key","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/secrets/rotate-key","href":"/engine/api/secrets/rotate-secrets-key"},{"title":"List Secret Names","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/secrets/{service}","href":"/engine/api/secrets/list-secret-names"},{"title":"Set Secrets","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/secrets/{service}","href":"/engine/api/secrets/set-secrets"},{"title":"Delete All Secrets","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/secrets/{service}","href":"/engine/api/secrets/delete-all-secrets"},{"title":"Delete Secret Key","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/secrets/{service}/{key}","href":"/engine/api/secrets/delete-secret-key"}]},{"group":"Models","pages":[{"title":"List Models","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/models","href":"/engine/api/models/list-models"},{"title":"Serve Model","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/models","href":"/engine/api/models/serve-model"}]},{"group":"Databases","pages":[{"title":"List Databases","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/databases","href":"/engine/api/databases/list-databases"},{"title":"Create Database","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/databases","href":"/engine/api/databases/create-database"},{"title":"Create Database Dump","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/databases/{name}/dump","href":"/engine/api/databases/create-database-dump"},{"title":"List Database Dumps","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/databases/{name}/dumps","href":"/engine/api/databases/list-database-dumps"},{"title":"Restore Database Dump","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/databases/{name}/restore","href":"/engine/api/databases/restore-database-dump"}]},{"group":"Proxy","pages":[{"title":"Get Proxy Ca","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/proxy/ca","href":"/engine/api/proxy/get-proxy-ca"},{"title":"Get Proxy Status","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/proxy/status","href":"/engine/api/proxy/get-proxy-status"},{"title":"List Routes","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/routes","href":"/engine/api/proxy/list-routes"}]},{"group":"Store","pages":[{"title":"List App Templates","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/app-templates","href":"/engine/api/store/list-app-templates"},{"title":"Get App Template","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/app-templates/{template_id}","href":"/engine/api/store/get-app-template"},{"title":"Deploy App Template","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/app-templates/{template_id}/deploy","href":"/engine/api/store/deploy-app-template"}]},{"group":"System","pages":[{"title":"Get Capabilities","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/capabilities","href":"/engine/api/system/get-capabilities"},{"title":"Get Doctor","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/doctor","href":"/engine/api/system/get-doctor"},{"title":"Restart Daemon","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/daemon/restart","href":"/engine/api/system/restart-daemon"},{"title":"Get System Disk","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/system/disk","href":"/engine/api/system/get-system-disk"},{"title":"Run System Gc","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/system/gc","href":"/engine/api/system/run-system-gc"},{"title":"Create Backup Route","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/system/backup","href":"/engine/api/system/create-backup-route"},{"title":"Create Volume Backup Route","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/system/backup/volumes","href":"/engine/api/system/create-volume-backup-route"},{"title":"Install License","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/license","href":"/engine/api/system/install-license"},{"title":"Remove License","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/license","href":"/engine/api/system/remove-license"}]},{"group":"Workspaces","pages":[{"title":"Write Workspace Files","deprecated":null,"version":null,"openapi":"/engine/openapi.json put /api/workspaces/{name}/files","href":"/engine/api/workspaces/write-workspace-files"},{"title":"Get Workspace","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/workspaces/{name}","href":"/engine/api/workspaces/get-workspace"},{"title":"Read Workspace File","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/workspaces/{name}/files/{path}","href":"/engine/api/workspaces/read-workspace-file"},{"title":"Deploy Workspace","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/workspaces/{name}/deploy","href":"/engine/api/workspaces/deploy-workspace"}]},{"group":"Link","pages":[{"title":"Claim Link","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/link/claim","href":"/engine/api/link/claim-link"},{"title":"Unlink Node","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/link","href":"/engine/api/link/unlink-node"},{"title":"Refresh Link","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/link/refresh","href":"/engine/api/link/refresh-link"},{"title":"Start Device Link","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/link/device","href":"/engine/api/link/start-device-link"},{"title":"Poll Device Link","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/link/device/poll","href":"/engine/api/link/poll-device-link"},{"title":"Push Link Entitlement","deprecated":null,"version":null,"openapi":"/engine/openapi.json put /api/link/entitlement","href":"/engine/api/link/push-link-entitlement"},{"title":"Push Link Github Token","deprecated":null,"version":null,"openapi":"/engine/openapi.json put /api/link/github-token","href":"/engine/api/link/push-link-github-token"},{"title":"Nudge Git","deprecated":null,"version":null,"openapi":"/engine/openapi.json post /api/link/git-nudge","href":"/engine/api/link/nudge-git"}]},{"group":"Exposure","pages":[{"title":"Get Share","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{name}/share","href":"/engine/api/exposure/get-share"},{"title":"Set Share","deprecated":null,"version":null,"openapi":"/engine/openapi.json put /api/services/{name}/share","href":"/engine/api/exposure/set-share"},{"title":"Remove Share","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/services/{name}/share","href":"/engine/api/exposure/remove-share"},{"title":"List Domains","deprecated":null,"version":null,"openapi":"/engine/openapi.json get /api/services/{name}/domains","href":"/engine/api/exposure/list-domains"},{"title":"Add Domain","deprecated":null,"version":null,"openapi":"/engine/openapi.json put /api/services/{name}/domains/{domain}","href":"/engine/api/exposure/add-domain"},{"title":"Remove Domain","deprecated":null,"version":null,"openapi":"/engine/openapi.json delete /api/services/{name}/domains/{domain}","href":"/engine/api/exposure/remove-domain"}]}]},{"group":"Get help","pages":[{"title":"Troubleshoot the Engine","description":"Start with the symptom, collect the relevant diagnostics, and apply a targeted fix.","href":"/engine/troubleshooting"},{"sidebarTitle":"Development and support","title":"Development, contributing, and support","href":"/engine/development"}]}]},{"tab":"App","pages":[{"title":"App","href":"/app"}]}]},"title":"Development, contributing, and support - Nerdit","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}