Use invented names, identifiers, addresses, barcodes, accession numbers, and study identifiers.
Do not copy screenshots, database dumps, DICOM studies, HL7 messages, ASTM messages, or logs containing real patient data.
Store reusable sanitized samples in the repository only after a second person confirms that direct and indirect identifiers are removed.
Treat generated API tokens as secrets even when the database is disposable.
Route development mail to logs or a local mail catcher.
Never restore a production database or PACS volume to a workstation. Use an approved de-identification process before clinical data leaves the production boundary.
composer installnpm installphp artisan migratenpm run buildphp artisan optimize:clear
Use docker compose ... up -d --build instead when working in Docker Desktop.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"HMIS Documentation","description":"Operational and developer documentation for the HMIS platform.","colors":{"primary":"#0B5D6B","light":"#0E7C86","dark":"#083D49"},"api":{"openapi":"openapi.yaml","playground":{"display":"interactive","proxy":true},"examples":{"defaults":"all","languages":["bash","javascript","python"],"prefill":false,"autogenerate":true}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"derrick-mugabwa","hasAudioNarration":false,"actualSubdomain":"derrick-mugabwa","customDomains":["hmis-docs.derrickmugabwa.dev"],"gitSource":{"type":"github","owner":"derrickmugabwa","repo":"hmis-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a773be80eda53582ec39a97","collectionId":"6c025432-97d4-4c04-a17d-666e69163791","liveDeploymentHistoryId":"6a773be80eda53582ec39a97","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a773be80eda53582ec39a97:success","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API reference","count":79},{"language":"default","tag":"Staff workflows","count":33},{"language":"default","tag":"Patient mobile","count":25},{"language":"default","tag":"Platform","count":22},{"language":"default","tag":"Foundation and integrations","count":20},{"language":"default","tag":"Implementation","count":15},{"language":"default","tag":"Laboratory integration","count":14},{"language":"default","tag":"Staff clinical workspace","count":14},{"language":"default","tag":"Radiology integration","count":13},{"language":"default","tag":"Staff appointments","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"platform/local-development/environment-and-data","slug":"/platform/local-development/environment-and-data","pageMetadata":{"title":"Local environment and test data","description":"Configure local HMIS settings and keep development data separate from clinical data.","href":"/platform/local-development/environment-and-data"},"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: \"Configure local HMIS settings and keep development data separate from clinical data.\"\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`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The committed `,_jsx(_components.code,{children:`.env.example`}),` is the source for available local variables. Copy it to `,_jsx(_components.code,{children:`.env`}),`, then change only the values required by your chosen runtime.`]}),`\n`,_jsx(Heading,{level:`2`,id:`core-local-settings`,children:`Core local settings`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Native default`}),_jsx(_components.th,{children:`Docker value`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`APP_ENV`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`local`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`local`})}),_jsx(_components.td,{children:`Enables local behavior`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`APP_DEBUG`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsx(_components.td,{children:`Displays development errors; never use in production`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`APP_URL`})}),_jsx(_components.td,{children:`Local Laravel URL`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`http://localhost:8080`})}),_jsx(_components.td,{children:`URL generation and passkey origin`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`APP_KEY`})}),_jsxs(_components.td,{children:[`Generated by `,_jsx(_components.code,{children:`composer setup`})]}),_jsx(_components.td,{children:`Generate a local key`}),_jsx(_components.td,{children:`Encryption and signed values`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DB_CONNECTION`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`sqlite`})}),_jsxs(_components.td,{children:[`Overridden to `,_jsx(_components.code,{children:`pgsql`}),` by Compose`]}),_jsx(_components.td,{children:`Database driver`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`QUEUE_CONNECTION`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`database`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`database`})}),_jsx(_components.td,{children:`Queue backend`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SESSION_DRIVER`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`database`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`database`})}),_jsx(_components.td,{children:`Session backend`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`CACHE_STORE`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`database`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`database`})}),_jsx(_components.td,{children:`Cache backend`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`MAIL_MAILER`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`log`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`log`})}),_jsx(_components.td,{children:`Prevents delivery of real mail`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`generate-a-key`,children:`Generate a key`}),`\n`,_jsx(_components.p,{children:`For native setup:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`php artisan key:generate`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`For a Docker-only setup after the image is built, print a key and place it in `,_jsx(_components.code,{children:`.env`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`docker compose run `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`--`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`rm `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`--`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`no`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`deps app php artisan key:generate `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`--`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`show`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Do not reuse a local key in staging or production.`}),`\n`,_jsx(Heading,{level:`2`,id:`test-data-rules`,children:`Test-data rules`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Use invented names, identifiers, addresses, barcodes, accession numbers, and study identifiers.`}),`\n`,_jsx(_components.li,{children:`Do not copy screenshots, database dumps, DICOM studies, HL7 messages, ASTM messages, or logs containing real patient data.`}),`\n`,_jsx(_components.li,{children:`Store reusable sanitized samples in the repository only after a second person confirms that direct and indirect identifiers are removed.`}),`\n`,_jsx(_components.li,{children:`Treat generated API tokens as secrets even when the database is disposable.`}),`\n`,_jsx(_components.li,{children:`Route development mail to logs or a local mail catcher.`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Never restore a production database or PACS volume to a workstation. Use an approved de-identification process before clinical data leaves the production boundary.`})}),`\n`,_jsx(Heading,{level:`2`,id:`development-seeding`,children:`Development seeding`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`DatabaseSeeder`}),` creates reference data and a known administrator account. It is designed for disposable development environments.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`php artisan db:seed`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`For a retained local database, use the safer production-style sequence from `,_jsx(_components.a,{href:`/platform/initial-configuration`,children:`initial configuration`}),` instead.`]}),`\n`,_jsx(Heading,{level:`2`,id:`changing-branches`,children:`Changing branches`}),`\n`,_jsx(_components.p,{children:`After switching application branches:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`composer install`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`npm install`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`php artisan migrate`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`npm run build`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`php artisan optimize:clear`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`docker compose ... up -d --build`}),` instead when working in Docker Desktop.`]})]})}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":{"title":"Local environment and test data","description":"Configure local HMIS settings and keep development data separate from clinical data.","href":"/platform/local-development/environment-and-data"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Core local settings","slug":"core-local-settings","depth":2,"children":[]},{"title":"Generate a key","slug":"generate-a-key","depth":2,"children":[]},{"title":"Test-data rules","slug":"test-data-rules","depth":2,"children":[]},{"title":"Development seeding","slug":"development-seeding","depth":2,"children":[]},{"title":"Changing branches","slug":"changing-branches","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"derrick-mugabwa","siteName":"HMIS Documentation","title":"Local environment and test data - HMIS Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-04T15:19:04.769Z","originalFileLocation":"platform/local-development/environment-and-data.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=\"Configure local HMIS settings and keep development data separate from clinical data.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HMIS Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/derrick-mugabwa/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/derrick-mugabwa/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/derrick-mugabwa/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/derrick-mugabwa/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Local environment and test data - HMIS Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure local HMIS settings and keep development data separate from clinical data.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HMIS Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://derrick-mugabwa.mintlify.app/_mintlify/api/og/v2?division=Local+development\u0026amp;title=Local+environment+and+test+data\u0026amp;description=Configure+local+HMIS+settings+and+keep+development+data+separate+from+clinical+data.\u0026amp;theme=c8cb1bf06d72132755fda86b\u0026amp;signature=4354ca65cf6eb1e684ccd3c2183964f201bbc3d5526ba8e7b79a73e5322f0413\">\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=\"Local environment and test data - HMIS Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure local HMIS settings and keep development data separate from clinical data.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://derrick-mugabwa.mintlify.app/_mintlify/api/og/v2?division=Local+development\u0026amp;title=Local+environment+and+test+data\u0026amp;description=Configure+local+HMIS+settings+and+keep+development+data+separate+from+clinical+data.\u0026amp;theme=c8cb1bf06d72132755fda86b\u0026amp;signature=4354ca65cf6eb1e684ccd3c2183964f201bbc3d5526ba8e7b79a73e5322f0413\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/derrick-mugabwa/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HMIS Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0B5D6B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/platform/local-development/environment-and-data.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://hmis-docs.derrickmugabwa.dev/#organization\",\"name\":\"HMIS Documentation\",\"url\":\"https://hmis-docs.derrickmugabwa.dev\"},{\"@type\":\"WebSite\",\"@id\":\"https://hmis-docs.derrickmugabwa.dev#website\",\"name\":\"HMIS Documentation\",\"url\":\"https://hmis-docs.derrickmugabwa.dev\",\"publisher\":{\"@id\":\"https://hmis-docs.derrickmugabwa.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data#webpage\",\"url\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data\",\"name\":\"Local environment and test data\",\"description\":\"Configure local HMIS settings and keep development data separate from clinical data.\",\"dateModified\":\"2026-08-04T15:19:04.769Z\",\"isPartOf\":{\"@id\":\"https://hmis-docs.derrickmugabwa.dev#website\"},\"breadcrumb\":{\"@id\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Local development\",\"item\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/native-windows\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Local environment and test data\",\"item\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data#article\",\"headline\":\"Local environment and test data\",\"name\":\"Local environment and test data\",\"description\":\"Configure local HMIS settings and keep development data separate from clinical data.\",\"url\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data\",\"mainEntityOfPage\":{\"@id\":\"https://hmis-docs.derrickmugabwa.dev/platform/local-development/environment-and-data#webpage\"},\"dateModified\":\"2026-08-04T15:19:04.769Z\",\"publisher\":{\"@id\":\"https://hmis-docs.derrickmugabwa.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://hmis-docs.derrickmugabwa.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HMIS Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HMIS Documentation","nav":{"global":null,"tabs":[{"tab":"Platform","groups":[{"group":"Getting started","pages":[{"title":"HMIS documentation","href":"/introduction"},{"title":"Platform architecture","href":"/platform/architecture"},{"title":"Environment model","href":"/platform/environments"},{"title":"Prerequisites","href":"/platform/prerequisites"},{"title":"Deployment terminology","href":"/platform/terminology"}]},{"group":"Local development","pages":[{"title":"Native Windows setup","href":"/platform/local-development/native-windows"},{"title":"Docker Desktop setup","description":"Run HMIS, OIE, Orthanc, OHIF, and the simulators as a local Compose stack.","href":"/platform/local-development/docker-desktop"},{"title":"Local environment and test data","href":"/platform/local-development/environment-and-data"},{"title":"Local verification","description":"Confirm the local application, background processes, and optional integration stack are working.","href":"/platform/local-development/verification"}]},{"group":"Dokploy deployment","pages":[{"title":"Prepare the Dokploy server","href":"/platform/deployment/server-preparation"},{"title":"Create the Dokploy project","href":"/platform/deployment/dokploy-project"},{"title":"Production environment variables","href":"/platform/deployment/environment-variables"},{"title":"Domains, TLS, and storage","href":"/platform/deployment/domains-and-storage"},{"title":"First production deployment","href":"/platform/deployment/first-deployment"}]},{"group":"Initial configuration","pages":[{"title":"Initial hospital configuration","href":"/platform/initial-configuration"}]},{"group":"Integrations","pages":[{"title":"Optional integrations","href":"/platform/optional-integrations"}]},{"group":"Operations","pages":[{"title":"Release and rollback","href":"/platform/operations/release-and-rollback"},{"title":"Backup and restore","href":"/platform/operations/backup-and-restore"},{"title":"Monitoring and maintenance","href":"/platform/operations/monitoring-and-maintenance"},{"title":"Security and incident response","href":"/platform/operations/security-and-incidents"},{"title":"Deployment troubleshooting","href":"/platform/operations/troubleshooting"},{"title":"Production go-live checklist","href":"/platform/operations/go-live-checklist"}]}]},{"tab":"Laboratory integration","pages":[{"title":"Laboratory integration","href":"/laboratory-integration/integration-context"}]},{"tab":"Radiology integration","pages":[{"title":"Radiology integration","href":"/radiology-integration/architecture"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/overview"}]}]},"title":"Local environment and test data - HMIS Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}