Cloud-Init lets you boot a custom qcow2 image and execute first-boot automation (user creation, key injection, package installs) on first boot. Make sure you keep independent backups—treat the custom-image upload and installation workflow as destructive; back up before starting.
Cloud-Init is a lightweight framework baked into many Linux templates. On first boot it reads your #cloud-config instructions, creates users, injects SSH keys, installs packages, and runs commands so the server is ready without manual steps.Open Installation → Custom Image for the QCOW2 workflow. The normal view provides password and public-key fields; Expert mode exposes a user-data editor.
Custom Image overview: QCOW2 upload, access settings, firmware choice and the erase acknowledgement.
Export a qcow2 disk that already includes Cloud-Init. Remove SSH host keys and temporary data so the instance generates fresh credentials on first boot.
Sign in to the EDBB Control Panel, choose your VPS, and switch to the Installation tab.
2
Select Custom Image
Choose the Custom Image sub-tab to reveal the Cloud-Init upload interface.
3
Upload the qcow2 file
Drag & drop your qcow2 (or click browse). The Control Panel stores the image temporarily for this reinstall.
4
Configure Expert mode (optional)
Toggle Expert mode to replace the simple password/key fields with the Cloud-Init “user_data” editor. Supply the full configuration, including the access credentials you need. Review the optional firmware setting, then acknowledge that the disk will be erased.
Expert mode with a short illustrative YAML example. Configure account access as well before installing.
5
Start the installation
Click Proceed. The VPS is rebuilt from your qcow2 image and executes the supplied Cloud-Init directives on first boot.
The panel warns that the qcow2 workflow erases the VPS disk. Back up before uploading or confirming Proceed. Keep an external backup and verify the checksum of your image before you begin.
This example assumes a Debian/Ubuntu Cloud-Init image and its sudo group. Replace the entire example key line with your valid public key. It creates a user but does not grant passwordless sudo; configure administrative access deliberately and test it through the console. Do not paste secrets into reusable images. Validate user-data against your image before installation.
Run sudo cloud-init status --wait after first boot to confirm success.
Check /var/log/cloud-init.log for detailed logs if tasks fail.
Inspect /var/log/cloud-init-output.log as well. Rerunning the installation erases the current disk; prefer correcting a running system when a reinstall is unnecessary.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"EDBB Docs","colors":{"primary":"#3857e8","light":"#8da2ff","dark":"#3857e8"},"logo":{"light":"https://mintcdn.com/edbackboneco/GXZDWPUcLpd5fRmb/logo/EDBB_dark.svg?fit=max\u0026auto=format\u0026n=GXZDWPUcLpd5fRmb\u0026q=85\u0026s=cfa1041d16994b88380da3ff36225dfa","dark":"https://mintcdn.com/edbackboneco/GXZDWPUcLpd5fRmb/logo/EDBB_light.svg?fit=max\u0026auto=format\u0026n=GXZDWPUcLpd5fRmb\u0026q=85\u0026s=497d87296d6e93817ac98a5880bcf553"},"favicon":"https://mintcdn.com/edbackboneco/GXZDWPUcLpd5fRmb/favicon.svg?fit=max\u0026auto=format\u0026n=GXZDWPUcLpd5fRmb\u0026q=85\u0026s=27d0302879ec7031fb0dd663889f8e52","navbar":{"links":[{"href":"https://www.edbb.com/contact","label":"Support"},{"href":"https://status.edis.global/","label":"Status"},{"href":"https://blog.edbb.com","label":"Blog"}],"primary":{"type":"button","label":"Control Panel","href":"https://my.edbb.com/clientarea.php"}},"footer":{"socials":{"x":"https://x.com/edbb_vps"}},"seo":{"indexing":"navigable"},"styling":{"codeblocks":"system","latex":false},"integrations":{"intercom":{"appId":"mh511doa"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Buy VPS Hosting","icon":"cloud","href":"https://www.edbb.com/#start-now"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"edbackboneco","hasAudioNarration":false,"actualSubdomain":"edbackboneco","customDomains":["docs.edbb.com"],"gitSource":{"type":"github","owner":"edbb-docs","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac379a7308778e6590a7829","collectionId":"dd5b9e13-ed01-48d1-9a14-d4c29aef2001","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac379a7308778e6590a7829"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6ac379a7308778e6590a7829","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Documentation","count":113},{"language":"default","tag":"IP addresses and DNS","count":24},{"language":"default","tag":"Billing and payments","count":18},{"language":"default","tag":"Manage your VPS","count":14},{"language":"default","tag":"Getting started","count":11},{"language":"default","tag":"Upgrades and locations","count":11},{"language":"default","tag":"Policies and abuse","count":7},{"language":"default","tag":"Cancellation and account","count":7},{"language":"default","tag":"Troubleshooting","count":7},{"language":"default","tag":"Advanced guides","count":5}]},"assistantConfig":{"enableStarterQuestions":false},"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},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":""}],"page":{"pagePath":"vps-management/cloud-init-vps-installation","slug":"/vps-management/cloud-init-vps-installation","pageMetadata":{"title":"Provision EDBB VPS with Cloud-Init","sidebarTitle":"Cloud-Init","description":"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.","href":"/vps-management/cloud-init-vps-installation"},"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: \"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.\"\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={code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Info,Note,OptimizedImage,Step,Steps}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`bring-your-own-cloud-init-image`,children:`Bring Your Own Cloud-Init Image`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Cloud-Init lets you boot a custom qcow2 image and execute first-boot automation (user creation, key injection, package installs) on first boot. Make sure you keep independent backups—treat the custom-image upload and installation workflow as destructive; back up before starting.`})}),`\n`,_jsxs(_components.p,{children:[`Cloud-Init is a lightweight framework baked into many Linux templates. On first boot it reads your `,_jsx(`code`,{children:`#cloud-config`}),` instructions, creates users, injects SSH keys, installs packages, and runs commands so the server is ready without manual steps.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Installation → Custom Image`}),` for the QCOW2 workflow. The normal view provides password and public-key fields; Expert mode exposes a user-data editor.`]}),`\n`,_jsx(Frame,{caption:`Custom Image overview: QCOW2 upload, access settings, firmware choice and the erase acknowledgement.`,children:_jsx(`div`,{style:{background:`#0b1830`,padding:`24px`,borderRadius:`12px`,borderTop:`3px solid #14b8a6`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-overview.png?fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=625e73e437f1197bae8d8685a1444b89`,alt:`Cloud Init QCOW2 upload screen with Expert mode off and Proceed disabled`,\"data-og-width\":`713`,width:`713`,\"data-og-height\":`887`,height:`887`,\"data-path\":`assets/panel-workflows/cloud-init-overview.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-overview.png?w=280\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=ca9538556686a7c0dfc8fc4b65b17a36 280w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-overview.png?w=560\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=76b4d5cb37022f0c56642b624c0209ba 560w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-overview.png?w=840\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=185e34c175d5e73ff68bb855bffc9fd0 840w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-overview.png?w=1100\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=5d713d22714d5451e1b460360fbe1452 1100w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-overview.png?w=1650\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=9ac759c7c527ba924bd3838c69316296 1650w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-overview.png?w=2500\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=9a7efc9fd51500c8d2b20ec07fe981ff 2500w`})})}),`\n`,_jsx(Heading,{level:`2`,id:`why-use-cloud-init`,children:`Why Use Cloud-Init`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Automated onboarding`}),` – preconfigure users, passwords, SSH keys, and services.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Repeatable builds`}),` – reuse a reviewed image and user-data; package versions and external dependencies can still change.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom stacks`}),` – ship bespoke templates or vendor images instead of the standard automated installers.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`prepare-your-image`,children:`Prepare Your Image`}),`\n`,_jsx(Heading,{level:`3`,id:`build-\u0026-clean`,children:`Build \u0026 Clean`}),`\n`,_jsxs(_components.p,{children:[`Export a `,_jsx(`strong`,{children:`qcow2`}),` disk that already includes Cloud-Init. Remove SSH host keys and temporary data so the instance generates fresh credentials on first boot.`]}),`\n`,_jsx(Heading,{level:`3`,id:`bring-user-data`,children:`Bring user-data`}),`\n`,_jsxs(_components.p,{children:[`Keep your `,_jsx(`code`,{children:`#cloud-config`}),` YAML handy. You’ll paste it in `,_jsx(`strong`,{children:`Expert mode`}),` if you want to run custom tasks on first boot.`]}),`\n`,_jsx(Heading,{level:`3`,id:`verify-\u0026-checksum`,children:`Verify \u0026 checksum`}),`\n`,_jsx(_components.p,{children:`Confirm the image boots locally and note its checksum. This helps you detect corruption before uploading and keeps reinstalls predictable.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`upload-provision-existing-vps`,children:`Upload - Provision (Existing VPS)`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Installation tab`,children:_jsxs(_components.p,{children:[`Sign in to the `,_jsx(`a`,{href:`https://my.edbb.com/clientarea.php`,target:`_blank`,children:`EDBB Control Panel`}),`, choose your VPS, and switch to the `,_jsx(`strong`,{children:`Installation`}),` tab.`]})}),_jsx(Step,{title:`Select Custom Image`,children:_jsxs(_components.p,{children:[`Choose the `,_jsx(`strong`,{children:`Custom Image`}),` sub-tab to reveal the Cloud-Init upload interface.`]})}),_jsx(Step,{title:`Upload the qcow2 file`,children:_jsxs(_components.p,{children:[`Drag \u0026 drop your qcow2 (or click `,_jsx(`em`,{children:`browse`}),`). The Control Panel stores the image temporarily for this reinstall.`]})}),_jsxs(Step,{title:`Configure Expert mode (optional)`,children:[_jsxs(_components.p,{children:[`Toggle `,_jsx(`strong`,{children:`Expert mode`}),` to replace the simple password/key fields with the `,_jsx(`strong`,{children:`Cloud-Init “user_data”`}),` editor. Supply the full configuration, including the access credentials you need. Review the optional firmware setting, then acknowledge that the disk will be erased.`]}),_jsx(Frame,{caption:`Expert mode with a short illustrative YAML example. Configure account access as well before installing.`,children:_jsx(`div`,{style:{background:`#0b1830`,padding:`24px`,borderRadius:`12px`,borderTop:`3px solid #14b8a6`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-expert.png?fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=1b86556371f07b089b4b8bcd37e75a81`,alt:`Expert mode enabled with sample cloud config user-data and erase acknowledgement`,width:`450`,\"data-og-width\":`450`,\"data-og-height\":`426`,\"data-path\":`assets/panel-workflows/cloud-init-expert.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-expert.png?w=280\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=69e6140103e71a1f9b411338da38f027 280w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-expert.png?w=560\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=c846d623a8dd9443c33ab8b334386e03 560w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-expert.png?w=840\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=3728e0865a7945ded7597c231d68b73b 840w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-expert.png?w=1100\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=6f66dd8cf048f6c5a7915eceba79df47 1100w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-expert.png?w=1650\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=3aac95dd077cb8b3e9ce352cda86e2d5 1650w, https://mintcdn.com/edbackboneco/X1hBs5av6BVjIghH/assets/panel-workflows/cloud-init-expert.png?w=2500\u0026fit=max\u0026auto=format\u0026n=X1hBs5av6BVjIghH\u0026q=85\u0026s=d7973013c5f36db413c79c8208278975 2500w`})})})]}),_jsx(Step,{title:`Start the installation`,children:_jsxs(_components.p,{children:[`Click `,_jsx(`strong`,{children:`Proceed`}),`. The VPS is rebuilt from your qcow2 image and executes the supplied Cloud-Init directives on first boot.`]})})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`The panel warns that the qcow2 workflow erases the VPS disk. Back up before uploading or confirming Proceed. Keep an external backup and verify the checksum of your image before you begin.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(`span`,{id:`sample-cloud-config`}),`\n`,_jsxs(Heading,{level:`2`,id:`debian/ubuntu-example-cloud-config`,children:[`Debian/Ubuntu example `,_jsx(_components.code,{children:`cloud-config`})]}),`\n`,_jsxs(_components.p,{children:[`This example assumes a Debian/Ubuntu Cloud-Init image and its `,_jsx(_components.code,{children:`sudo`}),` group. Replace the entire example key line with your valid public key. It creates a user but does not grant passwordless sudo; configure administrative access deliberately and test it through the console. Do not paste secrets into reusable images. Validate user-data against your image before installation.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`25`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`25`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`#cloud-config`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`users`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`default`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`deploy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` groups`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`sudo`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` shell`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/bin/bash`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` ssh_authorized_keys`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh-ed25519 REPLACE_WITH_YOUR_COMPLETE_PUBLIC_KEY`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`package_update`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`package_upgrade`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`packages`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`nginx`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`fail2ban`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ufw`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`write_files`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`path`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/etc/motd`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` permissions`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0644\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` owner`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`root:root`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` content`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Welcome to your automated VPS!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`runcmd`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`enable`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`--now`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`nginx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ufw`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`allow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"OpenSSH\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`power_state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` mode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`reboot`})]}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`validate-troubleshoot`,children:`Validate - Troubleshoot`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Run `,_jsx(_components.code,{children:`sudo cloud-init status --wait`}),` after first boot to confirm success.`]}),`\n`,_jsxs(_components.li,{children:[`Check `,_jsx(_components.code,{children:`/var/log/cloud-init.log`}),` for detailed logs if tasks fail.`]}),`\n`,_jsxs(_components.li,{children:[`Inspect `,_jsx(_components.code,{children:`/var/log/cloud-init-output.log`}),` as well. Rerunning the installation erases the current disk; prefer correcting a running system when a reinstall is unnecessary.`]}),`\n`]}),`\n`,_jsx(_components.hr,{})]})}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":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Provision EDBB VPS with Cloud-Init","sidebarTitle":"Cloud-Init","description":"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.","href":"/vps-management/cloud-init-vps-installation"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Bring Your Own Cloud-Init Image","slug":"bring-your-own-cloud-init-image","depth":2,"children":[]},{"title":"Why Use Cloud-Init","slug":"why-use-cloud-init","depth":2,"children":[]},{"title":"Prepare Your Image","slug":"prepare-your-image","depth":2,"children":[{"title":"Build \u0026 Clean","slug":"build-\u0026-clean","depth":3,"children":[]},{"title":"Bring user-data","slug":"bring-user-data","depth":3,"children":[]},{"title":"Verify \u0026 checksum","slug":"verify-\u0026-checksum","depth":3,"children":[]}]},{"title":"Upload - Provision (Existing VPS)","slug":"upload-provision-existing-vps","depth":2,"children":[]},{"title":"Debian/Ubuntu example cloud-config","slug":"debian/ubuntu-example-cloud-config","depth":2,"children":[]},{"title":"Validate - Troubleshoot","slug":"validate-troubleshoot","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"edbackboneco","siteName":"EDBB Docs","title":"Provision EDBB VPS with Cloud-Init - EDBB Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-28T19:47:51.810Z","originalFileLocation":"vps-management/cloud-init-vps-installation.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=\"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.\">\u003cmeta data-mint-head name=\"application-name\" content=\"EDBB Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/edbackboneco/DJ9PRfl9Fx8OuZcY/_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/edbackboneco/DJ9PRfl9Fx8OuZcY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/edbackboneco/DJ9PRfl9Fx8OuZcY/_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/edbackboneco/DJ9PRfl9Fx8OuZcY/_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/edbackboneco/DJ9PRfl9Fx8OuZcY/_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/edbackboneco/DJ9PRfl9Fx8OuZcY/_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/edbackboneco/DJ9PRfl9Fx8OuZcY/_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/edbackboneco/DJ9PRfl9Fx8OuZcY/_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/edbackboneco/DJ9PRfl9Fx8OuZcY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Provision EDBB VPS with Cloud-Init - EDBB Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"EDBB Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.edbb.com/vps-management/cloud-init-vps-installation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://edbackboneco.mintlify.app/_mintlify/api/og/v2?division=Manage+your+VPS\u0026amp;title=Provision+EDBB+VPS+with+Cloud-Init\u0026amp;description=Upload+a+qcow2+image+with+Cloud-Init+support%2C+supply+your+user-data%2C+and+boot+it+via+the+EDBB+Installation+%E2%86%92+Custom+Image+workflow.\u0026amp;theme=3693de21418f686d54f8dff0\u0026amp;signature=a9311dafd92e95e8b53575205a96432eae8be4aac604a3ba078dc22a27ee1ffd\">\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=\"Provision EDBB VPS with Cloud-Init - EDBB Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://edbackboneco.mintlify.app/_mintlify/api/og/v2?division=Manage+your+VPS\u0026amp;title=Provision+EDBB+VPS+with+Cloud-Init\u0026amp;description=Upload+a+qcow2+image+with+Cloud-Init+support%2C+supply+your+user-data%2C+and+boot+it+via+the+EDBB+Installation+%E2%86%92+Custom+Image+workflow.\u0026amp;theme=3693de21418f686d54f8dff0\u0026amp;signature=a9311dafd92e95e8b53575205a96432eae8be4aac604a3ba078dc22a27ee1ffd\">\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/edbackboneco/DJ9PRfl9Fx8OuZcY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"EDBB Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3857e8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.edbb.com/vps-management/cloud-init-vps-installation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/vps-management/cloud-init-vps-installation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.edbb.com/#organization\",\"name\":\"EDBB Docs\",\"url\":\"https://docs.edbb.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/edbackboneco/GXZDWPUcLpd5fRmb/logo/EDBB_dark.svg?fit=max\u0026auto=format\u0026n=GXZDWPUcLpd5fRmb\u0026q=85\u0026s=cfa1041d16994b88380da3ff36225dfa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.edbb.com#website\",\"name\":\"EDBB Docs\",\"url\":\"https://docs.edbb.com\",\"publisher\":{\"@id\":\"https://docs.edbb.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation#webpage\",\"url\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation\",\"name\":\"Provision EDBB VPS with Cloud-Init\",\"description\":\"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.\",\"dateModified\":\"2026-09-28T19:47:51.810Z\",\"isPartOf\":{\"@id\":\"https://docs.edbb.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Manage your VPS\",\"item\":\"https://docs.edbb.com/vps-management/vps-control-panel\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Provision EDBB VPS with Cloud-Init\",\"item\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation#article\",\"headline\":\"Provision EDBB VPS with Cloud-Init\",\"name\":\"Provision EDBB VPS with Cloud-Init\",\"description\":\"Upload a qcow2 image with Cloud-Init support, supply your user-data, and boot it via the EDBB Installation → Custom Image workflow.\",\"url\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.edbb.com/vps-management/cloud-init-vps-installation#webpage\"},\"dateModified\":\"2026-09-28T19:47:51.810Z\",\"publisher\":{\"@id\":\"https://docs.edbb.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.edbb.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"EDBB Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"EDBB Docs","nav":{"global":{"anchors":[{"anchor":"Buy VPS Hosting","icon":"cloud","href":"https://www.edbb.com/#start-now"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Getting started","pages":[{"title":"Get started with your EDBB VPS","sidebarTitle":"Getting started","href":""},{"title":"Everyday EDBB VPS tasks: OS, IPs, billing and upgrades","sidebarTitle":"Common VPS tasks","href":"/getting-started/common-vps-tasks"},{"title":"Check your VPS welcome email","sidebarTitle":"Welcome email","href":"/check-your-inbox"},{"title":"No welcome email? Get access to your VPS","sidebarTitle":"Missing welcome email","href":"/no-email-received"},{"title":"Connect to Linux with SSH","sidebarTitle":"Connect with SSH","href":"/linux-secure-shell-ssh"},{"title":"Windows remote desktop access","sidebarTitle":"Connect with RDP","href":"/windows-remote-desktop"},{"title":"Secure SSH access to your VPS","sidebarTitle":"SSH security","href":"/getting-started/ssh-security-hardening"},{"title":"Back up your VPS","sidebarTitle":"Backups","href":"/backups"},{"title":"Understanding EDBB email notifications","sidebarTitle":"Email notifications","href":"/getting-started/email-notifications"},{"title":"Check infrastructure status","sidebarTitle":"Infrastructure status","href":"/getting-started/infrastructure-status"},{"title":"How EDBB support can help","sidebarTitle":"Contact support","href":"/how-our-support-team-helps-you"}]},{"group":"Manage your VPS","pages":[{"title":"EDBB VPS control panel","sidebarTitle":"Control panel","href":"/vps-management/vps-control-panel"},{"title":"Power cycle or reboot a VPS","sidebarTitle":"Restart and power cycle","href":"/vps-management/power-cycle-or-reboot-a-vps"},{"title":"Reinstall your VPS with Linux or Windows","sidebarTitle":"Reinstall VPS","href":"/vps-management/reinstall-vps"},{"title":"Operating system availability on EDBB","sidebarTitle":"Operating systems","href":"/vps-management/os-availability"},{"title":"Enable VNC on your VPS","sidebarTitle":"VNC console","href":"/vps-management/enable-vnc-server"},{"title":"Reset your Linux root password","sidebarTitle":"Reset root password","href":"/vps-management/reset-root-password"},{"title":"Reset your Windows Administrator password","sidebarTitle":"Reset Windows password","href":"/vps-management/reset-windows-password"},{"title":"Mount an ISO image","sidebarTitle":"Mount ISO","href":"/vps-management/mount-iso-image"},{"title":"Upload a custom ISO image","sidebarTitle":"Custom ISO","description":"Download a compatible custom ISO through the EDBB Installation tab, mount it for installation or recovery, and remove the media when finished.","href":"/vps-management/bring-your-own-iso"},{"title":"Provision EDBB VPS with Cloud-Init","sidebarTitle":"Cloud-Init","href":"/vps-management/cloud-init-vps-installation"},{"title":"VPS hardware settings explained","sidebarTitle":"Hardware settings","description":"Understand the CPU, disk, network, display and boot options in EDBB Settings. Choose compatible drivers and apply changes with a full power cycle.","href":"/vps-management/system-configuration-dialog"},{"title":"Boot modes and TPM in VPS","sidebarTitle":"Boot mode and TPM","href":"/vps-management/efi-vs-bios-and-tpm"},{"title":"How to find and use your EDBB Support PIN","sidebarTitle":"Support PIN","href":"/vps-management/your-support-pin"},{"title":"Manage a Windows Server evaluation","sidebarTitle":"Windows evaluation","href":"/misc/windows-server-evaluation"}]},{"group":"Billing and payments","pages":[{"title":"How VPS billing and renewals work","sidebarTitle":"Billing and renewals","href":"/faq/billing-lifecycle/billing-workflow"},{"title":"Scheduled billing window","sidebarTitle":"Billing window","href":"/faq/billing-lifecycle/scheduled-billing-window"},{"title":"When will my VPS be ready?","sidebarTitle":"Provisioning time","href":"/faq/billing-lifecycle/provisioning-time"},{"title":"Which payment methods does EDBB accept?","sidebarTitle":"Payment methods","href":"/faq/billing-lifecycle/accepted-payment-methods"},{"title":"Find and download your invoices","sidebarTitle":"Download invoices","href":"/faq/billing-lifecycle/find-and-download-invoices"},{"title":"VAT on EDBB invoices","sidebarTitle":"VAT","href":"/faq/billing-lifecycle/vat"},{"title":"How currency conversion works","sidebarTitle":"Currency conversion","href":"/faq/billing-lifecycle/currency-conversion"},{"title":"How to top up your account credit","sidebarTitle":"Add account credit","href":"/faq/billing-lifecycle/how-to-add-account-credit"},{"title":"Top up account balance by bank transfer","sidebarTitle":"Top up by bank transfer","href":"/faq/billing-lifecycle/top-up-credit-balance-by-bank-transfer"},{"title":"Paying invoices with account credit","sidebarTitle":"Pay with credit","href":"/faq/billing-lifecycle/how-to-pay-with-account-credit"},{"title":"Do I need an upfront deposit?","sidebarTitle":"Upfront deposits","href":"/faq/billing-lifecycle/no-upfront-deposits-required"},{"title":"Request a monthly consolidated invoice","sidebarTitle":"Consolidated invoices","href":"/faq/billing-lifecycle/consolidated-invoices"},{"title":"Send invoices to a different email","sidebarTitle":"Invoice contacts","href":"/faq/billing-lifecycle/invoice-contacts"},{"title":"Cancel a PayPal subscription","sidebarTitle":"Cancel PayPal subscription","href":"/faq/billing-lifecycle/cancel-paypal-subscription"},{"title":"Card reservation vs captured payment","sidebarTitle":"Card payment holds","href":"/faq/billing-lifecycle/credit-card-reservation-vs-payment"},{"title":"Cryptocurrency payment confirmations","sidebarTitle":"Crypto confirmations","href":"/faq/billing-lifecycle/crypto-confirmations"},{"title":"Crypto payment arrived after the time window","sidebarTitle":"Late crypto payments","href":"/faq/billing-lifecycle/late-crypto-payment"},{"title":"Blocked cryptocurrency payment","sidebarTitle":"Blocked crypto payments","href":"/faq/billing-lifecycle/blocked-crypto-payment"}]},{"group":"Cancellation and account","pages":[{"title":"VPS cancellation","sidebarTitle":"Cancel a VPS","href":"/faq/billing-lifecycle/cancel-a-service"},{"title":"Can I get a refund?","sidebarTitle":"Refund eligibility","href":"/faq/billing-lifecycle/can-i-get-a-refund"},{"title":"Cancellation and refund policy","sidebarTitle":"Refund policy","href":"/faq/billing-lifecycle/cancellation-and-refund-policy"},{"title":"Data retention after cancellation","sidebarTitle":"Data retention","href":"/faq/billing-lifecycle/data-retention-period"},{"title":"Accidental renewal: convert payment to account credit","sidebarTitle":"Accidental renewal","href":"/faq/billing-lifecycle/accidental-renewal"},{"title":"Lost access to your two-factor authentication?","sidebarTitle":"Reset 2FA","href":"/faq/billing-lifecycle/reset-2fa"},{"title":"Move services to another client account","sidebarTitle":"Account transfers","href":"/faq/billing-lifecycle/account-transfers"}]},{"group":"IP addresses and DNS","pages":[{"title":"VPS IP address settings \u0026 network info","sidebarTitle":"IP settings","href":"/vps-management/ip-address-information"},{"title":"Are my VPS IP addresses static?","sidebarTitle":"Static IP addresses","href":"/faq/ip-addresses/static-ip-addresses"},{"title":"Configure IPv6 on your VPS","sidebarTitle":"Configure IPv6","href":"/vps-management/ipv6-configuration"},{"title":"Order additional IPv4 addresses","sidebarTitle":"Additional IP addresses","href":"/faq/ip-addresses/order-additional-ip-address"},{"title":"Configure an additional IPv4 address on Linux","sidebarTitle":"Configure extra IPv4","href":"/faq/ip-addresses/configure-additional-ip-linux"},{"title":"Request a specific IPv4 address","sidebarTitle":"Choose an IP address","href":"/faq/ip-addresses/order-bespoke-ip-address"},{"title":"Change your VPS IP address","sidebarTitle":"Change an IP","href":"/faq/ip-addresses/change-ip-address"},{"title":"Order a Standard IP change","sidebarTitle":"Standard IP change","href":"/faq/ip-addresses/standard-ip-change"},{"title":"Choose your replacement with Bespoke IP Change","sidebarTitle":"Bespoke IP change","href":"/faq/ip-addresses/bespoke-ip-change"},{"title":"Change an Ubuntu IP address with Netplan","sidebarTitle":"Change IP on Ubuntu","href":"/vps-management/change-ip-ubuntu-1804-to-2404"},{"title":"Update the IPv4 address in Windows Server","sidebarTitle":"Change IP on Windows","href":"/vps-management/change-ip-windows"},{"title":"Do VPS IPs change after reinstall or upgrade?","sidebarTitle":"IP address continuity","href":"/faq/ip-addresses/ip-addresses-after-upgrade-or-reinstall"},{"title":"Configure reverse DNS (PTR)","sidebarTitle":"Reverse DNS","href":"/faq/ip-addresses/reverse-dns"},{"title":"Ports and firewalls on your VPS","sidebarTitle":"Ports and firewalls","href":"/faq/ip-addresses/ports-and-firewalls"},{"title":"Ping test \u0026 latency tools","sidebarTitle":"Network tests","href":"/faq/ip-addresses/ping-test-ip"},{"title":"Diagnose packet loss (Windows \u0026 Linux)","sidebarTitle":"Diagnose packet loss","href":"/faq/ip-addresses/diagnose-packet-loss"},{"title":"Understand an IP address location","sidebarTitle":"IP location","href":"/faq/ip-addresses/ip-location"},{"title":"How GeoIP databases see EDBB addresses","sidebarTitle":"GeoIP databases","href":"/faq/ip-addresses/geolocation-geoip-databases"},{"title":"GeoIP shows the wrong location","sidebarTitle":"Correct geolocation","href":"/faq/ip-addresses/correct-geolocation"},{"title":"Anycast, DNS and VPS location","sidebarTitle":"Anycast and DNS","href":"/faq/ip-addresses/anycast-and-dns-location"},{"title":"DNS leak tests explained","sidebarTitle":"DNS leak tests","href":"/faq/ip-addresses/dns-leak-tests"},{"title":"VPS IP not reachable from my country","sidebarTitle":"Country reachability","href":"/faq/ip-addresses/country-reachability"},{"title":"Is IP spoofing allowed?","sidebarTitle":"IP spoofing","href":"/faq/ip-addresses/ip-spoofing"},{"title":"Can I bring my own IP prefix?","sidebarTitle":"Customer IP prefixes","href":"/faq/ip-addresses/announcing-third-party-ip-prefixes"}]},{"group":"Traffic","pages":[{"title":"What is the difference between traffic and bandwidth?","sidebarTitle":"Traffic and bandwidth","href":"/faq/traffic-bandwidth/traffic-vs-bandwidth"},{"title":"Traffic statistics and monthly refills","sidebarTitle":"Traffic statistics","href":"/faq/traffic-bandwidth/traffic-statistics"},{"title":"Traffic Pool and Auto-Hydration","sidebarTitle":"Traffic Pool","href":"/faq/traffic-bandwidth/traffic-pool"},{"title":"Exceeded monthly traffic","sidebarTitle":"Traffic limits","href":"/faq/traffic-bandwidth/exceeding-monthly-included-traffic"}]},{"group":"Upgrades and locations","pages":[{"title":"Upgrade paths for your EDBB VPS","sidebarTitle":"Upgrade options","href":"/faq/upgrades-downgrades/upgrades"},{"title":"Upgrade to a higher VPS plan","sidebarTitle":"Upgrade plan","href":"/faq/upgrades-downgrades/upgrade-plan"},{"title":"Upgrade VPS components","sidebarTitle":"Upgrade resources","href":"/faq/upgrades-downgrades/upgrade-resources"},{"title":"Expand VPS storage with Drive Boost","sidebarTitle":"Drive Boost","href":"/faq/upgrades-downgrades/upgrade-disk-drive-boost"},{"title":"Will I lose data when upgrading?","sidebarTitle":"Upgrade data safety","href":"/faq/upgrades-downgrades/upgrade-data-safety"},{"title":"Is downgrading an EDBB VPS possible?","sidebarTitle":"Downgrade policy","href":"/faq/upgrades-downgrades/downgrade-policy"},{"title":"Request a qcow2 disk export","sidebarTitle":"qcow2 export","href":"/faq/upgrades-downgrades/qcow2-export"},{"title":"CPU cores vs sockets in an EDBB VPS","sidebarTitle":"CPU cores and sockets","href":"/faq/upgrades-downgrades/cpu-cores-and-sockets"},{"title":"Check CPU resources on Linux","sidebarTitle":"Check CPU on Linux","href":"/faq/upgrades-downgrades/check-cpu-linux"},{"title":"Check CPU resources on Windows","sidebarTitle":"Check CPU on Windows","href":"/faq/upgrades-downgrades/check-cpu-windows"},{"title":"Can I move my VPS to another location?","sidebarTitle":"Change server location","href":"/faq/server-locations/change-server-location"}]},{"group":"Troubleshooting","pages":[{"title":"My VPS is not reachable","sidebarTitle":"VPS not reachable","href":"/faq/ip-addresses/network-is-down"},{"title":"Troubleshoot IPv6 connectivity","sidebarTitle":"IPv6 troubleshooting","href":"/vps-management/basic-ipv6-troubleshooting"},{"title":"Investigate unusual network usage","sidebarTitle":"Investigate network usage","href":"/faq/traffic-bandwidth/investigate-network-usage"},{"title":"RDP error 0xd07: account locked","sidebarTitle":"RDP account locked","href":"/vps-management/rdp-account-locked"},{"title":"Troubleshoot an RDP black screen","sidebarTitle":"RDP black screen","href":"/misc/rdp-black-screen"},{"title":"RealVNC Viewer closes after connecting","sidebarTitle":"RealVNC disconnects","href":"/misc/realvnc-disconnects"},{"title":"Recover a Linux VPS with rescue media","sidebarTitle":"Linux rescue","href":"/vps-management/linux-rescue"}]},{"group":"Advanced guides","pages":[{"title":"Configure a UFW firewall on Debian or Ubuntu","sidebarTitle":"UFW firewall","href":"/advanced-setup-guides/ufw-firewall"},{"title":"Extend a Windows Server disk","sidebarTitle":"Extend Windows disk","href":"/advanced-setup-guides/extend-windows-disk"},{"title":"Expand a Linux filesystem after a disk upgrade","sidebarTitle":"Resize Linux disk","href":"/advanced-setup-guides/resize-linux-disk"},{"title":"Install an Ubuntu 22.04 desktop on your VPS","sidebarTitle":"Ubuntu desktop","href":"/advanced-setup-guides/ubuntu-desktop"},{"title":"Install MikroTik CHR on your VPS","sidebarTitle":"Install MikroTik CHR","href":"/advanced-setup-guides/install-mikrotik-chr"}]},{"group":"Policies and abuse","pages":[{"title":"Acceptable Use Policy","sidebarTitle":"Acceptable use","href":"/acceptable-use-policy"},{"title":"SMTP port 25 rate limit","sidebarTitle":"Port 25 policy","href":"/faq/port-25-smtp-rate-limit-policy"},{"title":"EDBB DDoS protection overview","sidebarTitle":"DDoS protection","href":"/faq/traffic-bandwidth/dos-attacks/ddos-protection"},{"title":"Advisory for high-risk DDoS workloads","sidebarTitle":"High-risk workloads","href":"/faq/traffic-bandwidth/dos-attacks/high-risk-workloads"},{"title":"Reporting abuse","sidebarTitle":"Report abuse","href":"/misc/reporting-abuse"},{"title":"Respond to an abuse complaint","sidebarTitle":"Respond to abuse","href":"/misc/responding-to-abuse-complaints"},{"title":"Security responsibilities and legal information","sidebarTitle":"Security responsibilities","href":"/misc/security-compliance"}]},{"group":"About VPS hosting","pages":[{"title":"What is a virtual private server?","sidebarTitle":"VPS explained","href":"/faq/what-is-a-virtual-private-server"},{"title":"What is a KVM VPS?","sidebarTitle":"KVM explained","href":"/faq/what-is-a-kvm-vps"},{"title":"Do you offer free VPS trials?","sidebarTitle":"Free trial policy","href":"/faq/free-trials-available"},{"title":"Do you offer hourly VPS billing?","sidebarTitle":"Hourly billing","href":"/faq/hourly-plans-available"},{"title":"Does EDBB offer an API?","sidebarTitle":"API availability","href":"/faq/service-api"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/product"}]}]},"basePath":"","title":"Provision EDBB VPS with Cloud-Init - EDBB Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-PS-3COT9.js","DynamicMarkdown-BcnBltEQ.js","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}