Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for 3/month(IPv4)or1/month (IPv6)
Updated May 8, 2026A Public IP on Raff is a routable IPv4 or IPv6 address attached to a VM (or to a VPC’s Internet Gateway) so it can be reached from the public internet. Every VM you create comes with one auto-assigned IPv4 from the regional pool — free for as long as it’s attached. You can also reserve a static IP that stays yours across VM rebuilds and detaches, billed at $3/month for IPv4 or $1/month for IPv6.There are two distinct lifecycles for a public IP on Raff, and the difference matters:
Auto-assigned
Reserved
Cost
Free while attached
$3/month (IPv4) or $1/month (IPv6), billed continuously
What happens when detached
Returns to the regional pool — anyone may get it next
Stays yours, unattached, ready to re-attach to any VM
What happens when the VM is deleted
Released to the pool
Survives, stays yours
Use it for
Default VM internet access
Stable address you reference in DNS / firewall rules / partner whitelists
If your VM was rebuilt every Tuesday, an auto-assigned IP would change every Tuesday. A reserved IP would stay the same forever.
The dashboard surfaces public IPs in two places: the Public IPs tab on the Networking page (account-wide list, where you reserve and auto-assign) and the Network tab inside each VM’s detail page (where you add, remove, or firewall that specific VM’s IPs).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Raff","colors":{"primary":"#E43D12","light":"#f15e3a","dark":"#b32f0d"},"logo":{"light":"https://mintcdn.com/rafftechnologiesllc/-fGNhyEGXJeJV5ed/logo/light.svg?fit=max\u0026auto=format\u0026n=-fGNhyEGXJeJV5ed\u0026q=85\u0026s=0e81ca868d348265df3068ed9c0d9769","dark":"https://mintcdn.com/rafftechnologiesllc/-fGNhyEGXJeJV5ed/logo/dark.svg?fit=max\u0026auto=format\u0026n=-fGNhyEGXJeJV5ed\u0026q=85\u0026s=449e6e79f98b68b6f313c524bc66dc76"},"favicon":"https://mintcdn.com/rafftechnologiesllc/W-SRe3pyhI_9M9ss/favicon.ico?fit=max\u0026auto=format\u0026n=W-SRe3pyhI_9M9ss\u0026q=85\u0026s=108c3e7250ef83b8d547d35e00467418","api":{"playground":{}},"navbar":{"links":[{"href":"mailto:support@rafftechnologies.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.rafftechnologies.com"}},"footer":{"socials":{"x":"https://x.com/rafftechnologies","instagram":"https://instagram.com/rafftechnologies","linkedin":"https://linkedin.com/company/rafftechnologies","reddit":"https://www.reddit.com/user/rafftechnologies","github":"https://github.com/rafftechnologies"},"links":[{"header":"Company","items":[{"label":"About","href":"https://rafftechnologies.com/about-us"},{"label":"Blog","href":"https://rafftechnologies.com/blog"},{"label":"Pricing","href":"https://rafftechnologies.com/pricing"},{"label":"Status","href":"https://rafftechnologies.com/status"}]},{"header":"Docs","items":[{"label":"Docs Home","href":"/introduction"},{"label":"API Reference","href":"/api-reference/endpoints"},{"label":"CLI","href":"/reference/cli/introduction"},{"label":"Terraform Provider","href":"https://registry.terraform.io/providers/RaffTechnologies/raff/latest"},{"label":"Quickstart","href":"/quickstart"},{"label":"Products","href":"/products"}]},{"header":"Application","items":[{"label":"Dashboard","href":"https://app.rafftechnologies.com"},{"label":"Sign in","href":"https://app.rafftechnologies.com/auth/sign-in"},{"label":"Sign up","href":"https://app.rafftechnologies.com/auth/sign-up"},{"label":"Marketplace","href":"https://marketplace.rafftechnologies.com"}]},{"header":"Support","items":[{"label":"Tickets","href":"https://help.rafftechnologies.com"},{"label":"Contact","href":"mailto:support@rafftechnologies.com"},{"label":"FAQ","href":"https://rafftechnologies.com/faq"},{"label":"Terms of Service","href":"https://app.rafftechnologies.com/legal"},{"label":"Privacy Policy","href":"https://app.rafftechnologies.com/legal"},{"label":"SLA","href":"https://app.rafftechnologies.com/legal"}]}]},"seo":{"metatags":{"og:site_name":"Raff","og:image":"https://rafftechnologies.com/images/og.jpg","twitter:card":"summary_large_image","twitter:site":"@rafftechnologies"},"indexing":"all"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Changelog","icon":"clock-rotate-left","href":"/api-reference/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rafftechnologiesllc","hasAudioNarration":false,"actualSubdomain":"rafftechnologiesllc","customDomains":["docs.rafftechnologies.com"],"gitSource":{"type":"github","owner":"rafftechnologies","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec9e50b60c5e999977098f","collectionId":"ec34cc43-45f1-4417-bf03-f82bc9b6cb21","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec9e50b60c5e999977098f"},"feedback":{"thumbs":false},"entitlements":{},"buildId":"6aec9e50b60c5e999977098f","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Reference","count":280},{"language":"default","tag":"Products","count":231},{"language":"default","tag":"REST API","count":229},{"language":"default","tag":"Build","count":109},{"language":"default","tag":"Quickstart \u0026 guides","count":94},{"language":"default","tag":"Raff Apps","count":72},{"language":"default","tag":"Virtual Machines","count":65},{"language":"default","tag":"Concepts","count":62},{"language":"default","tag":"Managed Databases","count":60},{"language":"default","tag":"Kubernetes","count":52}]},"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":"rbac-expansion","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":"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":"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":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"products/network/public-ips","slug":"/products/network/public-ips","pageMetadata":{"title":"Public IPs","sidebarTitle":"Overview","description":"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6)","icon":"globe","href":"/products/network/public-ips/index"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n annotation: \"annotation\",\n math: \"math\",\n mi: \"mi\",\n mn: \"mn\",\n mo: \"mo\",\n mrow: \"mrow\",\n p: \"p\",\n semantics: \"semantics\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for \", _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mn, {\n children: \"3\"\n }), _jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"/\"\n }), _jsx(_components.mi, {\n children: \"m\"\n }), _jsx(_components.mi, {\n children: \"o\"\n }), _jsx(_components.mi, {\n children: \"n\"\n }), _jsx(_components.mi, {\n children: \"t\"\n }), _jsx(_components.mi, {\n children: \"h\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mi, {\n children: \"I\"\n }), _jsx(_components.mi, {\n children: \"P\"\n }), _jsx(_components.mi, {\n children: \"v\"\n }), _jsx(_components.mn, {\n children: \"4\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n }), _jsx(_components.mi, {\n children: \"o\"\n }), _jsx(_components.mi, {\n children: \"r\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"3/month (IPv4) or \"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"3/\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"m\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"o\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"n\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"t\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"h\"\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.0785em\"\n },\n children: \"I\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.1389em\"\n },\n children: \"P\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.0359em\"\n },\n children: \"v\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"4\"\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.0278em\"\n },\n children: \"or\"\n })]\n })\n })]\n }), \"1/month (IPv6)\"]\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={hr:`hr`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,OptimizedImage,Table}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(`sub`,{children:`Updated May 8, 2026`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`Public IP`}),` on Raff is a routable IPv4 or IPv6 address attached to a VM (or to a VPC’s Internet Gateway) so it can be reached from the public internet. Every VM you create comes with one auto-assigned IPv4 from the regional pool — free for as long as it’s attached. You can also `,_jsx(_components.strong,{children:`reserve`}),` a static IP that stays yours across VM rebuilds and detaches, billed at `,_jsx(_components.strong,{children:`$3/month for IPv4`}),` or `,_jsx(_components.strong,{children:`$1/month for IPv6`}),`.`]}),`\n`,_jsx(_components.p,{children:`There are two distinct lifecycles for a public IP on Raff, and the difference matters:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:_jsx(_components.strong,{children:`Auto-assigned`})}),_jsx(_components.th,{children:_jsx(_components.strong,{children:`Reserved`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Cost`})}),_jsx(_components.td,{children:`Free while attached`}),_jsx(_components.td,{children:`$3/month (IPv4) or $1/month (IPv6), billed continuously`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`What happens when detached`})}),_jsx(_components.td,{children:`Returns to the regional pool — anyone may get it next`}),_jsx(_components.td,{children:`Stays yours, unattached, ready to re-attach to any VM`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`What happens when the VM is deleted`})}),_jsx(_components.td,{children:`Released to the pool`}),_jsx(_components.td,{children:`Survives, stays yours`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Use it for`})}),_jsx(_components.td,{children:`Default VM internet access`}),_jsx(_components.td,{children:`Stable address you reference in DNS / firewall rules / partner whitelists`})]})]})]}),`\n`,_jsx(_components.p,{children:`If your VM was rebuilt every Tuesday, an auto-assigned IP would change every Tuesday. A reserved IP would stay the same forever.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/rafftechnologiesllc/n4fsufxkvK_RoBMU/images/products/network/public-ips/public-ips-list.png?fit=max\u0026auto=format\u0026n=n4fsufxkvK_RoBMU\u0026q=85\u0026s=368a01b61c9cbabfd78110d6ea723bff`,alt:`Public IPs tab on the Networking page showing 9 IPs grouped under their VPCs, with Auto-assign IP and + Reserve IP buttons in the top right`,\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`836`,height:`836`,\"data-path\":`images/products/network/public-ips/public-ips-list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/rafftechnologiesllc/n4fsufxkvK_RoBMU/images/products/network/public-ips/public-ips-list.png?w=280\u0026fit=max\u0026auto=format\u0026n=n4fsufxkvK_RoBMU\u0026q=85\u0026s=3b02b83091525d4ea409809c44b7dfef 280w, https://mintcdn.com/rafftechnologiesllc/n4fsufxkvK_RoBMU/images/products/network/public-ips/public-ips-list.png?w=560\u0026fit=max\u0026auto=format\u0026n=n4fsufxkvK_RoBMU\u0026q=85\u0026s=a602d1695807131eb0b3e96549fda817 560w, https://mintcdn.com/rafftechnologiesllc/n4fsufxkvK_RoBMU/images/products/network/public-ips/public-ips-list.png?w=840\u0026fit=max\u0026auto=format\u0026n=n4fsufxkvK_RoBMU\u0026q=85\u0026s=38ba5c4e220ecebfc0623e7b098d8a0a 840w, https://mintcdn.com/rafftechnologiesllc/n4fsufxkvK_RoBMU/images/products/network/public-ips/public-ips-list.png?w=1100\u0026fit=max\u0026auto=format\u0026n=n4fsufxkvK_RoBMU\u0026q=85\u0026s=574b993c363e07ba4b754ef4da1ea983 1100w, https://mintcdn.com/rafftechnologiesllc/n4fsufxkvK_RoBMU/images/products/network/public-ips/public-ips-list.png?w=1650\u0026fit=max\u0026auto=format\u0026n=n4fsufxkvK_RoBMU\u0026q=85\u0026s=3af7d1af12ab41a255c65d8f161113ba 1650w, https://mintcdn.com/rafftechnologiesllc/n4fsufxkvK_RoBMU/images/products/network/public-ips/public-ips-list.png?w=2500\u0026fit=max\u0026auto=format\u0026n=n4fsufxkvK_RoBMU\u0026q=85\u0026s=08d84fe16da5e33ae4d55d7c741dcbf4 2500w`})}),`\n`,_jsxs(_components.p,{children:[`The dashboard surfaces public IPs in two places: the `,_jsx(_components.strong,{children:`Public IPs`}),` tab on the Networking page (account-wide list, where you reserve and auto-assign) and the `,_jsx(_components.strong,{children:`Network`}),` tab inside each VM’s detail page (where you add, remove, or firewall that specific VM’s IPs).`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-can-do`,children:`What you can do`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Task`}),_jsx(_components.th,{children:`Where`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Give an existing VM a public IP from the free pool`}),_jsxs(_components.td,{children:[`Networking → Public IPs → `,_jsx(_components.strong,{children:`Auto-assign IP`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Reserve a static IP you’ll keep across VMs`}),_jsxs(_components.td,{children:[`Networking → Public IPs → `,_jsx(_components.strong,{children:`+ Reserve IP`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Add or remove a public IPv4 / IPv6 on one VM`}),_jsxs(_components.td,{children:[`VM detail → `,_jsx(_components.strong,{children:`Network`}),` tab`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Move a reserved IP between VMs`}),_jsx(_components.td,{children:`Detach from VM A → attach to VM B`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Add a Firewall to a public IP`}),_jsxs(_components.td,{children:[`VM detail → `,_jsx(_components.strong,{children:`Network`}),` tab → IP card → `,_jsx(_components.strong,{children:`Attach`}),` firewall`]})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`most-viewed`,children:`Most viewed`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Auto-assign a public IP`,icon:`wand-magic-sparkles`,href:`/products/network/public-ips/quickstart-guides/auto-assign`,children:_jsx(_components.p,{children:`Give a VM a free pool IP in seconds.`})}),_jsx(Card,{title:`Reserve a static IP`,icon:`anchor`,href:`/products/network/public-ips/quickstart-guides/reserve-ip`,children:_jsx(_components.p,{children:`Hold an IPv4 across VM rebuilds for $3/mo.`})}),_jsx(Card,{title:`Manage from a VM`,icon:`server`,href:`/products/network/public-ips/quickstart-guides/manage-from-vm`,children:_jsx(_components.p,{children:`Add, remove, or firewall IPs from the VM detail page.`})}),_jsx(Card,{title:`Move between VMs`,icon:`arrow-right-arrow-left`,href:`/products/network/public-ips/quickstart-guides/move-between-vms`,children:_jsx(_components.p,{children:`Detach from one VM, attach to another.`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`browse`,children:`Browse`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Quickstart \u0026 guides`,icon:`rocket`,href:`/products/network/public-ips/quickstart-guides/auto-assign`,children:_jsx(_components.p,{children:`Auto-assign, reserve, attach, move, release.`})}),_jsx(Card,{title:`Concepts`,icon:`lightbulb`,href:`/products/network/public-ips/concepts/reserved-vs-ephemeral`,children:_jsx(_components.p,{children:`Auto-assigned vs reserved.`})}),_jsx(Card,{title:`Details`,icon:`circle-info`,href:`/products/network/public-ips/details/features-and-limits`,children:_jsx(_components.p,{children:`Pricing, limits, regional pools.`})}),_jsx(Card,{title:`Troubleshooting`,icon:`life-ring`,href:`/products/network/public-ips/troubleshooting`,children:_jsx(_components.p,{children:`Common public-IP issues.`})}),_jsx(Card,{title:`API Reference`,icon:`code`,href:`/api-reference/endpoint/list-ips`,children:_jsx(_components.p,{children:`Public IP endpoints.`})}),_jsx(Card,{title:`Changelog`,icon:`clock-rotate-left`,href:`/api-reference/changelog`,children:_jsx(_components.p,{children:`All API updates and changes.`})})]})]})}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":"Public IPs","sidebarTitle":"Overview","description":"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6)","icon":"globe","href":"/products/network/public-ips/index"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What you can do","slug":"what-you-can-do","depth":2,"children":[]},{"title":"Most viewed","slug":"most-viewed","depth":2,"children":[]},{"title":"Browse","slug":"browse","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"rafftechnologiesllc","siteName":"Raff","title":"Public IPs - Raff","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-11T09:20:30.148Z","gitLastModified":"2026-05-11T09:20:06.000Z","originalFileLocation":"products/network/public-ips/index.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=\"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6)\">\u003cmeta data-mint-head name=\"application-name\" content=\"Raff\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Public IPs - Raff\">\u003cmeta data-mint-head property=\"og:description\" content=\"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6)\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Raff\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.rafftechnologies.com/products/network/public-ips\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rafftechnologies.com/images/og.jpg\">\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=\"Public IPs - Raff\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6)\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rafftechnologies.com/images/og.jpg\">\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/rafftechnologiesllc/81XTCmJ0Yt4lOC7_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Raff\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#E43D12\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.rafftechnologies.com/products/network/public-ips\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/products/network/public-ips.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.rafftechnologies.com/#organization\",\"name\":\"Raff\",\"url\":\"https://docs.rafftechnologies.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rafftechnologiesllc/-fGNhyEGXJeJV5ed/logo/light.svg?fit=max\u0026auto=format\u0026n=-fGNhyEGXJeJV5ed\u0026q=85\u0026s=0e81ca868d348265df3068ed9c0d9769\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.rafftechnologies.com#website\",\"name\":\"Raff\",\"url\":\"https://docs.rafftechnologies.com\",\"publisher\":{\"@id\":\"https://docs.rafftechnologies.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.rafftechnologies.com/products/network/public-ips#webpage\",\"url\":\"https://docs.rafftechnologies.com/products/network/public-ips\",\"name\":\"Public IPs\",\"description\":\"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6)\",\"dateModified\":\"2026-05-11T09:20:06.000Z\",\"isPartOf\":{\"@id\":\"https://docs.rafftechnologies.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.rafftechnologies.com/products/network/public-ips#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.rafftechnologies.com/products/network/public-ips#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Network\",\"item\":\"https://docs.rafftechnologies.com/products/network/vpc/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Public IPs\",\"item\":\"https://docs.rafftechnologies.com/products/network/public-ips/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Public IPs\",\"item\":\"https://docs.rafftechnologies.com/products/network/public-ips\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.rafftechnologies.com/products/network/public-ips#article\",\"headline\":\"Public IPs\",\"name\":\"Public IPs\",\"description\":\"Public IPv4 and IPv6 addresses on Raff — auto-assigned from a free pool by default, or reserved as static IPs that persist across VM rebuilds for $3/month (IPv4) or $1/month (IPv6)\",\"url\":\"https://docs.rafftechnologies.com/products/network/public-ips\",\"mainEntityOfPage\":{\"@id\":\"https://docs.rafftechnologies.com/products/network/public-ips#webpage\"},\"image\":\"https://rafftechnologies.com/images/og.jpg\",\"dateModified\":\"2026-05-11T09:20:06.000Z\",\"publisher\":{\"@id\":\"https://docs.rafftechnologies.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.rafftechnologies.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Raff\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Raff","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":"clock-rotate-left","href":"/api-reference/changelog"}]},"tabs":[{"tab":"Products","groups":[{"group":"Products Home","pages":[{"title":"Products","icon":"grid-2","href":"/products"},{"title":"Why Raff","icon":"sparkles","href":"/products/why-raff"}]},{"group":"Build","icon":"server","pages":[{"group":"Virtual Machines","icon":"server","pages":[{"title":"Virtual Machines","sidebarTitle":"Overview","icon":"server","href":"/products/build/virtual-machines/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Create a VM","href":"/products/build/virtual-machines/quickstart-guides/create-a-vm"},{"title":"Initial server setup (Linux)","href":"/products/build/virtual-machines/quickstart-guides/initial-server-setup"},{"title":"Connect via SSH","href":"/products/build/virtual-machines/quickstart-guides/connect-via-ssh"},{"title":"Connect via RDP","href":"/products/build/virtual-machines/quickstart-guides/connect-via-rdp"},{"title":"Open the browser console","href":"/products/build/virtual-machines/quickstart-guides/open-browser-console"},{"title":"Transfer files to and from a VM","href":"/products/build/virtual-machines/quickstart-guides/transfer-files"},{"title":"Manage power","href":"/products/build/virtual-machines/quickstart-guides/manage-power"},{"title":"Rename a VM","href":"/products/build/virtual-machines/quickstart-guides/rename"},{"title":"Resize a VM","href":"/products/build/virtual-machines/quickstart-guides/resize"},{"title":"Reset password","href":"/products/build/virtual-machines/quickstart-guides/reset-password"},{"title":"Add or remove SSH keys on a server","sidebarTitle":"Add or remove SSH keys","href":"/products/build/virtual-machines/quickstart-guides/manage-ssh-keys"},{"title":"Reinstall a VM","href":"/products/build/virtual-machines/quickstart-guides/reinstall"},{"title":"Factory reset","href":"/products/build/virtual-machines/quickstart-guides/factory-reset"},{"title":"Create a snapshot","href":"/products/build/virtual-machines/quickstart-guides/create-snapshot"},{"title":"Enable backups","href":"/products/build/virtual-machines/quickstart-guides/enable-backups"},{"title":"Recover a locked-out VM","href":"/products/build/virtual-machines/quickstart-guides/recover-locked-vm"},{"title":"Delete a VM","href":"/products/build/virtual-machines/quickstart-guides/delete-vm"}]},{"group":"Concepts","pages":[{"title":"Plans \u0026 sizing","href":"/products/build/virtual-machines/concepts/plans-and-sizing"},{"title":"CPU and bursting","href":"/products/build/virtual-machines/concepts/cpu-and-bursting"},{"title":"Regions","href":"/products/build/virtual-machines/concepts/regions"},{"title":"OS templates","href":"/products/build/virtual-machines/concepts/os-templates"},{"title":"Custom images","href":"/products/build/virtual-machines/concepts/custom-images"},{"title":"Storage model","href":"/products/build/virtual-machines/concepts/storage-model"},{"title":"Snapshots vs Backups","href":"/products/build/virtual-machines/concepts/snapshots-vs-backups"},{"title":"Lifecycle states","href":"/products/build/virtual-machines/concepts/lifecycle-states"},{"title":"Authentication \u0026 access","href":"/products/build/virtual-machines/concepts/authentication"},{"title":"Monitoring \u0026 metrics","href":"/products/build/virtual-machines/concepts/monitoring-and-metrics"},{"title":"Tags \u0026 organization","href":"/products/build/virtual-machines/concepts/tags-and-organization"},{"title":"VM notes — My Notes \u0026 Team Notes","href":"/products/build/virtual-machines/concepts/vm-notes"},{"title":"Account limits","href":"/products/build/virtual-machines/concepts/account-limits"},{"title":"Billing model","href":"/products/build/virtual-machines/concepts/billing-model"}]},{"group":"Details","pages":[{"title":"Virtual Machines features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/build/virtual-machines/details/features-and-limits"},{"title":"Pricing","href":"/products/build/virtual-machines/details/pricing"},{"title":"SLA","href":"/products/build/virtual-machines/details/sla"},{"title":"Acceptable use","href":"/products/build/virtual-machines/details/acceptable-use"},{"title":"Support","href":"/products/build/virtual-machines/details/support"}]},{"title":"Virtual Machines troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/build/virtual-machines/troubleshooting"}]},{"group":"Kubernetes","icon":"dharmachakra","pages":[{"title":"Kubernetes","sidebarTitle":"Overview","icon":"dharmachakra","href":"/products/build/kubernetes/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Create a Kubernetes cluster","sidebarTitle":"Create a cluster","href":"/products/build/kubernetes/quickstart-guides/create-a-cluster"},{"title":"Connect to Kubernetes with kubectl","sidebarTitle":"Connect with kubectl","href":"/products/build/kubernetes/quickstart-guides/connect-with-kubectl"},{"title":"Add a Kubernetes node pool","sidebarTitle":"Add a node pool","href":"/products/build/kubernetes/quickstart-guides/add-a-node-pool"},{"title":"Scale a Kubernetes node pool","sidebarTitle":"Scale a node pool","href":"/products/build/kubernetes/quickstart-guides/scale-a-node-pool"},{"title":"Upgrade to an HA control plane","sidebarTitle":"Upgrade to HA","href":"/products/build/kubernetes/quickstart-guides/upgrade-to-ha"},{"title":"Upgrade the Kubernetes version","sidebarTitle":"Upgrade version","href":"/products/build/kubernetes/quickstart-guides/upgrade-kubernetes-version"},{"title":"Install an app from App Hub","sidebarTitle":"Install an app","href":"/products/build/kubernetes/quickstart-guides/install-an-app"},{"title":"Expose a Kubernetes service","sidebarTitle":"Expose a service","href":"/products/build/kubernetes/quickstart-guides/expose-a-service"},{"title":"View Kubernetes logs and metrics","sidebarTitle":"Logs \u0026 metrics","href":"/products/build/kubernetes/quickstart-guides/view-logs-and-metrics"},{"title":"Delete a Kubernetes cluster","sidebarTitle":"Delete a cluster","href":"/products/build/kubernetes/quickstart-guides/delete-a-cluster"}]},{"group":"Concepts","pages":[{"title":"Kubernetes cluster architecture","sidebarTitle":"Cluster architecture","href":"/products/build/kubernetes/concepts/cluster-architecture"},{"title":"Kubernetes node pools and autoscaling","sidebarTitle":"Node pools \u0026 autoscaling","href":"/products/build/kubernetes/concepts/node-pools-and-autoscaling"},{"title":"Kubernetes control plane and HA","sidebarTitle":"Control plane \u0026 HA","href":"/products/build/kubernetes/concepts/control-plane-and-ha"},{"title":"Kubernetes networking","sidebarTitle":"Networking","href":"/products/build/kubernetes/concepts/networking"},{"title":"Cluster access and credentials","sidebarTitle":"Cluster access","href":"/products/build/kubernetes/concepts/cluster-access"},{"title":"Kubernetes storage","sidebarTitle":"Storage","href":"/products/build/kubernetes/concepts/storage"},{"title":"Kubernetes cluster states","sidebarTitle":"Lifecycle states","href":"/products/build/kubernetes/concepts/lifecycle-states"},{"title":"Kubernetes billing model","sidebarTitle":"Billing model","href":"/products/build/kubernetes/concepts/billing-model"}]},{"group":"Details","pages":[{"title":"Kubernetes features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/build/kubernetes/details/features-and-limits"},{"title":"Kubernetes pricing","sidebarTitle":"Pricing","href":"/products/build/kubernetes/details/pricing"},{"title":"Kubernetes SLA","sidebarTitle":"SLA","href":"/products/build/kubernetes/details/sla"},{"title":"Kubernetes supported versions","sidebarTitle":"Supported versions","href":"/products/build/kubernetes/details/supported-versions"}]},{"title":"Kubernetes troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/build/kubernetes/troubleshooting"}]},{"group":"Raff Apps","icon":"rocket","pages":[{"title":"Raff Apps","sidebarTitle":"Overview","icon":"rocket","href":"/products/build/raff-apps/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Deploy an app from GitHub","sidebarTitle":"Deploy from GitHub","href":"/products/build/raff-apps/quickstart-guides/deploy-from-github"},{"title":"Deploy a Docker image","href":"/products/build/raff-apps/quickstart-guides/deploy-a-docker-image"},{"title":"Deploy n8n, Metabase and other templates","sidebarTitle":"Deploy a template","href":"/products/build/raff-apps/quickstart-guides/deploy-a-template"},{"title":"Import a Docker Compose file","sidebarTitle":"Import Docker Compose","href":"/products/build/raff-apps/quickstart-guides/import-docker-compose"},{"title":"Add a Postgres database to an app","sidebarTitle":"Add a Postgres database","href":"/products/build/raff-apps/quickstart-guides/add-a-database"},{"title":"Set app environment variables","sidebarTitle":"Set environment variables","href":"/products/build/raff-apps/quickstart-guides/set-environment-variables"},{"title":"Add a custom domain to an app","sidebarTitle":"Add a custom domain","href":"/products/build/raff-apps/quickstart-guides/add-a-custom-domain"},{"title":"Scale an app and let it sleep","sidebarTitle":"Scale an app","href":"/products/build/raff-apps/quickstart-guides/scale-an-app"},{"title":"Run cron jobs and one-off jobs","sidebarTitle":"Cron and one-off jobs","href":"/products/build/raff-apps/quickstart-guides/run-cron-jobs-and-jobs"},{"title":"Preview pull requests","sidebarTitle":"Pull request previews","href":"/products/build/raff-apps/quickstart-guides/preview-pull-requests"},{"title":"View logs, metrics and a shell","sidebarTitle":"Logs, metrics and shell","href":"/products/build/raff-apps/quickstart-guides/view-logs-and-metrics"},{"title":"Roll back a deploy","sidebarTitle":"Roll back a deploy","href":"/products/build/raff-apps/quickstart-guides/roll-back-a-deploy"},{"title":"Pause and resume an app","sidebarTitle":"Pause and resume","href":"/products/build/raff-apps/quickstart-guides/pause-and-resume"},{"title":"Set an Apps spend cap","sidebarTitle":"Spend cap","href":"/products/build/raff-apps/quickstart-guides/set-a-spend-cap"},{"title":"Reconnect GitHub to Raff Apps","sidebarTitle":"Reconnect GitHub","href":"/products/build/raff-apps/quickstart-guides/reconnect-github"},{"title":"Delete an app","sidebarTitle":"Delete an app","href":"/products/build/raff-apps/quickstart-guides/delete-an-app"}]},{"group":"Concepts","pages":[{"title":"App types: web, private, worker, cron and job","sidebarTitle":"App types","href":"/products/build/raff-apps/concepts/app-types"},{"title":"How Raff builds and runs your code","sidebarTitle":"Builds and sources","href":"/products/build/raff-apps/concepts/builds-and-sources"},{"title":"Deploys, health checks and rollbacks","sidebarTitle":"Deploys and health checks","href":"/products/build/raff-apps/concepts/deploys-and-health-checks"},{"title":"App sizes, scaling and sleeping","sidebarTitle":"Sizes and scaling","href":"/products/build/raff-apps/concepts/sizes-and-scaling"},{"title":"App networking and domains","sidebarTitle":"Networking and domains","href":"/products/build/raff-apps/concepts/networking-and-domains"},{"title":"How apps connect to databases","sidebarTitle":"Database links","href":"/products/build/raff-apps/concepts/database-links"},{"title":"App isolation and security","sidebarTitle":"Isolation and security","href":"/products/build/raff-apps/concepts/isolation-and-security"},{"title":"How Raff Apps billing works","sidebarTitle":"Billing model","href":"/products/build/raff-apps/concepts/billing-model"}]},{"group":"Details","pages":[{"title":"Raff Apps features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/build/raff-apps/details/features-and-limits"},{"title":"Raff Apps pricing","sidebarTitle":"Pricing","href":"/products/build/raff-apps/details/pricing"},{"title":"Raff Apps templates","sidebarTitle":"Templates","href":"/products/build/raff-apps/details/templates"}]},{"title":"Troubleshoot Raff Apps","sidebarTitle":"Troubleshooting","href":"/products/build/raff-apps/troubleshooting"}]},{"group":"Raff Keep","icon":"boxes-stacked","pages":[{"title":"Raff Keep","sidebarTitle":"Overview","icon":"boxes-stacked","href":"/products/build/raff-keep/index"},{"group":"Get a server","pages":[{"title":"Set up a MetaTrader server","href":"/products/build/raff-keep/quickstart-guides/set-up-a-metatrader-server"},{"title":"Set up an ASP.NET server","href":"/products/build/raff-keep/quickstart-guides/set-up-an-aspnet-server"},{"title":"Follow a Raff Keep install","sidebarTitle":"Follow the install","href":"/products/build/raff-keep/quickstart-guides/follow-the-install"},{"title":"Get your Raff Keep logins","sidebarTitle":"Get your logins and passwords","href":"/products/build/raff-keep/quickstart-guides/get-your-logins"}]},{"group":"Use your server","pages":[{"title":"Sign in to a Raff Keep server","sidebarTitle":"Connect with Remote Desktop","href":"/products/build/raff-keep/quickstart-guides/sign-in-with-remote-desktop"},{"title":"Add a MetaTrader terminal","href":"/products/build/raff-keep/quickstart-guides/add-a-metatrader-terminal"},{"title":"Publish an ASP.NET site","href":"/products/build/raff-keep/quickstart-guides/publish-an-aspnet-site"},{"title":"Manage ASP.NET sites and domains","sidebarTitle":"Manage sites and domains","href":"/products/build/raff-keep/quickstart-guides/manage-sites-and-domains"},{"title":"Delete a Raff Keep server","sidebarTitle":"Delete the server","href":"/products/build/raff-keep/quickstart-guides/delete-a-keep-server"}]},{"group":"Concepts","pages":[{"title":"How a Raff Keep install works","sidebarTitle":"How an install works","href":"/products/build/raff-keep/concepts/how-an-install-works"},{"title":"Logins and the built-in Administrator","sidebarTitle":"Logins and the Administrator","href":"/products/build/raff-keep/concepts/logins-and-the-built-in-administrator"},{"title":"Kept by Raff and Raff Guardian","sidebarTitle":"Kept by Raff","href":"/products/build/raff-keep/concepts/raff-guardian-choice"},{"title":"Failed Raff Keep installs","sidebarTitle":"Failed installs","href":"/products/build/raff-keep/concepts/failed-installs"},{"title":"Raff Keep billing model","sidebarTitle":"Billing model","href":"/products/build/raff-keep/concepts/billing-model"}]},{"group":"Details","pages":[{"title":"Raff Keep features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/build/raff-keep/details/features-and-limits"},{"title":"Raff Keep pricing","sidebarTitle":"Pricing","href":"/products/build/raff-keep/details/pricing"}]},{"title":"Raff Keep troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/build/raff-keep/troubleshooting"}]}]},{"group":"Store","icon":"hard-drive","pages":[{"group":"Volumes","icon":"hard-drive","pages":[{"title":"Volumes","sidebarTitle":"Overview","icon":"hard-drive","href":"/products/store/volumes/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Create a volume","href":"/products/store/volumes/quickstart-guides/create-a-volume"},{"title":"Attach to a VM","href":"/products/store/volumes/quickstart-guides/attach-to-vm"},{"title":"Resize a volume","href":"/products/store/volumes/quickstart-guides/resize-volume"},{"title":"Detach from a VM","href":"/products/store/volumes/quickstart-guides/detach-from-vm"},{"title":"Delete a volume","href":"/products/store/volumes/quickstart-guides/delete-volume"}]},{"group":"Concepts","pages":[{"title":"Volume types","href":"/products/store/volumes/concepts/volume-types"}]},{"group":"Details","pages":[{"title":"Volumes features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/store/volumes/details/features-and-limits"}]},{"title":"Volumes troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/store/volumes/troubleshooting"}]},{"group":"Object Storage","icon":"bucket","pages":[{"title":"Object Storage","sidebarTitle":"Overview","icon":"bucket","href":"/products/store/object-storage/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Create a bucket","href":"/products/store/object-storage/quickstart-guides/create-bucket"},{"title":"Upload files","href":"/products/store/object-storage/quickstart-guides/upload-files"},{"title":"Generate access keys","href":"/products/store/object-storage/quickstart-guides/generate-access-keys"},{"title":"Set public or private","href":"/products/store/object-storage/quickstart-guides/set-public-private"},{"title":"Use the S3 SDK","href":"/products/store/object-storage/quickstart-guides/s3-sdk-access"},{"title":"Monitor bucket usage","href":"/products/store/object-storage/quickstart-guides/monitor-usage"}]},{"group":"Concepts","pages":[{"title":"S3 compatibility","href":"/products/store/object-storage/concepts/s3-compatibility"}]},{"group":"Details","pages":[{"title":"Object Storage features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/store/object-storage/details/features-and-limits"}]},{"title":"Object Storage troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/store/object-storage/troubleshooting"}]},{"group":"Managed Databases","icon":"database","pages":[{"title":"Managed Databases","sidebarTitle":"Overview","icon":"database","href":"/products/store/databases/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Create a database","href":"/products/store/databases/quickstart-guides/create-a-database"},{"title":"Connect to a database","href":"/products/store/databases/quickstart-guides/connect-to-a-database"},{"title":"Turn on public access","href":"/products/store/databases/quickstart-guides/turn-on-public-access"},{"title":"Connect a database to a VPC","sidebarTitle":"Connect a VPC","href":"/products/store/databases/quickstart-guides/connect-a-vpc"},{"title":"Work with data in the dashboard","sidebarTitle":"Work with data","href":"/products/store/databases/quickstart-guides/work-with-data"},{"title":"Manage database users and passwords","sidebarTitle":"Manage users","href":"/products/store/databases/quickstart-guides/manage-users"},{"title":"Turn on PostgreSQL extensions","sidebarTitle":"Turn on extensions","href":"/products/store/databases/quickstart-guides/turn-on-extensions"},{"title":"Resize a database","href":"/products/store/databases/quickstart-guides/resize-a-database"},{"title":"Back up and restore a database","sidebarTitle":"Back up and restore","href":"/products/store/databases/quickstart-guides/back-up-and-restore"},{"title":"Monitor a database","href":"/products/store/databases/quickstart-guides/monitor-a-database"},{"title":"Delete a database","href":"/products/store/databases/quickstart-guides/delete-a-database"}]},{"group":"Concepts","pages":[{"title":"Database engines","sidebarTitle":"Engines","href":"/products/store/databases/concepts/engines"},{"title":"Database plans and sizing","sidebarTitle":"Plans and sizing","href":"/products/store/databases/concepts/plans-and-sizing"},{"title":"High availability and read replicas","sidebarTitle":"High availability and replicas","href":"/products/store/databases/concepts/high-availability-and-replicas"},{"title":"Database networking and security","sidebarTitle":"Networking and security","href":"/products/store/databases/concepts/networking-and-security"},{"title":"PostgreSQL connection pooling","sidebarTitle":"Connection pooling","href":"/products/store/databases/concepts/connection-pooling"},{"title":"Database backups and point-in-time restore","sidebarTitle":"Backups and point-in-time restore","href":"/products/store/databases/concepts/backups-and-restore"},{"title":"Database status and health","sidebarTitle":"Status and health","href":"/products/store/databases/concepts/status-and-health"},{"title":"Free database plan","sidebarTitle":"Free plan","href":"/products/store/databases/concepts/free-plan"},{"title":"Database billing model","sidebarTitle":"Billing model","href":"/products/store/databases/concepts/billing-model"}]},{"group":"Details","pages":[{"title":"Managed Databases features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/store/databases/details/features-and-limits"},{"title":"Managed Databases pricing","sidebarTitle":"Pricing","href":"/products/store/databases/details/pricing"}]},{"title":"Managed Databases troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/store/databases/troubleshooting"}]}]},{"group":"Network","icon":"network-wired","pages":[{"group":"VPC","icon":"network-wired","pages":[{"title":"Virtual Private Cloud","sidebarTitle":"Overview","icon":"network-wired","href":"/products/network/vpc/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Use the Networking diagram","href":"/products/network/vpc/quickstart-guides/use-networking-diagram"},{"title":"Create a VPC","href":"/products/network/vpc/quickstart-guides/create-vpc"},{"title":"Manage a VPC","href":"/products/network/vpc/quickstart-guides/manage-vpc"},{"title":"Attach a VM","href":"/products/network/vpc/quickstart-guides/attach-vm"},{"title":"Delete a VPC","href":"/products/network/vpc/quickstart-guides/delete-vpc"}]},{"group":"Concepts","pages":[{"title":"VXLAN, CIDR, and isolation","href":"/products/network/vpc/concepts/cidr-and-isolation"}]},{"group":"Details","pages":[{"title":"VPC features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/network/vpc/details/features-and-limits"}]},{"title":"VPC troubleshooting","sidebarTitle":"Troubleshooting","description":"Common VPC problems — CIDR rejection, IPs that don't talk to each other, DNS not propagating, port forwarding not working, gateway and delete blocks — and the fix for each","href":"/products/network/vpc/troubleshooting"}]},{"group":"Public IPs","icon":"globe","pages":[{"title":"Public IPs","sidebarTitle":"Overview","icon":"globe","href":"/products/network/public-ips/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Auto-assign a public IP","description":"Give a VM that has no public IP a free address from the regional pool — IPv4 or IPv6, no commitment, returns to the pool when detached","href":"/products/network/public-ips/quickstart-guides/auto-assign"},{"title":"Reserve a static IP","href":"/products/network/public-ips/quickstart-guides/reserve-ip"},{"title":"Manage public IPs from a VM","href":"/products/network/public-ips/quickstart-guides/manage-from-vm"},{"title":"Move a reserved IP between VMs","href":"/products/network/public-ips/quickstart-guides/move-between-vms"},{"title":"Release a public IP","href":"/products/network/public-ips/quickstart-guides/release-ip"}]},{"group":"Concepts","pages":[{"title":"Auto-assigned vs reserved IPs","href":"/products/network/public-ips/concepts/reserved-vs-ephemeral"}]},{"group":"Details","pages":[{"title":"Public IP features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/network/public-ips/details/features-and-limits"}]},{"title":"Public IPs troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/network/public-ips/troubleshooting"}]},{"group":"Firewall","icon":"shield-halved","pages":[{"title":"Firewall","sidebarTitle":"Overview","icon":"shield-halved","href":"/products/network/firewall/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Create a Firewall Group","href":"/products/network/firewall/quickstart-guides/create-firewall-group"},{"title":"Add rules — port and IP formats by example","href":"/products/network/firewall/quickstart-guides/add-rules"},{"title":"Attach a Firewall Group to a VM","href":"/products/network/firewall/quickstart-guides/attach-to-vm"},{"title":"Update rules in a Firewall Group","href":"/products/network/firewall/quickstart-guides/update-rules"},{"title":"Delete a Firewall Group","href":"/products/network/firewall/quickstart-guides/delete-firewall-group"}]},{"group":"Concepts","pages":[{"title":"Inbound vs outbound, layers, and rule format","href":"/products/network/firewall/concepts/inbound-vs-outbound"}]},{"group":"Details","pages":[{"title":"Firewall features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/network/firewall/details/features-and-limits"}]},{"title":"Firewall troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/network/firewall/troubleshooting"}]}]},{"group":"Manage","icon":"folder","pages":[{"group":"Team \u0026 Projects","icon":"users","pages":[{"title":"Team \u0026 Projects","sidebarTitle":"Overview","icon":"users","href":"/products/manage/team-projects/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Invite a member","href":"/products/manage/team-projects/quickstart-guides/invite-member"},{"title":"Change or remove a member's role","href":"/products/manage/team-projects/quickstart-guides/change-role"},{"title":"Remove a member","href":"/products/manage/team-projects/quickstart-guides/remove-member"},{"title":"Create a project","href":"/products/manage/team-projects/quickstart-guides/create-a-project"},{"title":"Edit or delete a project","href":"/products/manage/team-projects/quickstart-guides/delete-a-project"},{"title":"Generate an API key","href":"/products/manage/team-projects/quickstart-guides/generate-api-key"},{"title":"Rotate an API key","href":"/products/manage/team-projects/quickstart-guides/rotate-api-key"}]},{"group":"Concepts","pages":[{"title":"Roles, scopes, and the Owner","href":"/products/manage/team-projects/concepts/roles-and-api-keys"},{"title":"Resource scoping","href":"/products/manage/team-projects/concepts/projects-and-scoping"},{"title":"API keys","href":"/products/manage/team-projects/concepts/api-keys"}]},{"group":"Details","pages":[{"title":"Permissions matrix","href":"/products/manage/team-projects/details/permissions-matrix"}]},{"title":"Team \u0026 Projects troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/manage/team-projects/troubleshooting"}]},{"group":"Raff Guardian","icon":"shield-check","pages":[{"title":"Raff Guardian","sidebarTitle":"Overview","icon":"shield-check","href":"/products/manage/raff-guardian/index"},{"group":"Set up","pages":[{"title":"Add Raff Guardian while creating a server","sidebarTitle":"Add while creating a server","href":"/products/manage/raff-guardian/quickstart-guides/add-while-creating-a-server"},{"title":"Install Raff Guardian on an existing server","sidebarTitle":"Install on an existing server","href":"/products/manage/raff-guardian/quickstart-guides/install-on-an-existing-server"},{"title":"Set permissions: what Raff Guardian may do","sidebarTitle":"Set permissions: what it may do","href":"/products/manage/raff-guardian/quickstart-guides/set-permissions"},{"title":"Uninstall Raff Guardian from a server","sidebarTitle":"Uninstall Raff Guardian","href":"/products/manage/raff-guardian/quickstart-guides/uninstall"}]},{"group":"Everyday","pages":[{"title":"Approve or decline a change Raff Guardian proposes","sidebarTitle":"Approve or decline a change","href":"/products/manage/raff-guardian/quickstart-guides/approve-or-decline-a-change"},{"title":"See what Raff Guardian did: the activity log","sidebarTitle":"See what it did (activity log)","href":"/products/manage/raff-guardian/quickstart-guides/see-the-activity-log"},{"title":"Let Raff support help with your server","sidebarTitle":"Let Raff support help","href":"/products/manage/raff-guardian/quickstart-guides/let-raff-support-help"}]},{"group":"Security","pages":[{"title":"Block or unblock an IP address","sidebarTitle":"Block or unblock an IP address","href":"/products/manage/raff-guardian/quickstart-guides/block-or-unblock-an-ip-address"},{"title":"Limit who can reach Remote Desktop","sidebarTitle":"Limit who can reach Remote Desktop","href":"/products/manage/raff-guardian/quickstart-guides/limit-remote-desktop-access"},{"title":"Reset Windows passwords and manage users","sidebarTitle":"Reset passwords and manage users","href":"/products/manage/raff-guardian/quickstart-guides/reset-passwords-and-manage-windows-users"}]},{"group":"Updates and power","pages":[{"title":"Schedule Windows updates","sidebarTitle":"Schedule Windows updates","href":"/products/manage/raff-guardian/quickstart-guides/schedule-windows-updates"},{"title":"Restart or shut down the server safely","sidebarTitle":"Restart or shut down the server","href":"/products/manage/raff-guardian/quickstart-guides/restart-or-shut-down-the-server"}]},{"group":"Concepts","pages":[{"title":"How Raff Guardian works","sidebarTitle":"How it works","href":"/products/manage/raff-guardian/concepts/how-it-works"},{"title":"Raff Guardian modes and permissions","sidebarTitle":"Modes and permissions","href":"/products/manage/raff-guardian/concepts/modes-and-permissions"},{"title":"Raff Guardian automatic blocking and account lockout","sidebarTitle":"Automatic blocking and lockout","href":"/products/manage/raff-guardian/concepts/automatic-blocking"},{"title":"Windows updates with Raff Guardian","sidebarTitle":"Windows updates","href":"/products/manage/raff-guardian/concepts/windows-updates"},{"title":"Raff Guardian findings","sidebarTitle":"Findings","href":"/products/manage/raff-guardian/concepts/findings"},{"title":"Raff Guardian activity","sidebarTitle":"Activity","href":"/products/manage/raff-guardian/concepts/activity"},{"title":"What Raff Guardian reads and sends","sidebarTitle":"Privacy and data","href":"/products/manage/raff-guardian/concepts/privacy-and-data"}]},{"group":"Details","pages":[{"title":"Raff Guardian features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/manage/raff-guardian/details/features-and-limits"},{"title":"Raff Guardian pricing","sidebarTitle":"Pricing","href":"/products/manage/raff-guardian/details/pricing"}]},{"title":"Raff Guardian troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/manage/raff-guardian/troubleshooting"}]}]},{"group":"AI","icon":"robot","pages":[{"group":"MCP server","icon":"plug","pages":[{"title":"Raff MCP server","sidebarTitle":"Overview","icon":"robot","href":"/products/ai/mcp/index"},{"group":"Quickstart \u0026 guides","pages":[{"title":"Connect Raff to Claude","sidebarTitle":"Connect Claude","href":"/products/ai/mcp/quickstart-guides/connect-claude"},{"title":"Connect Raff to Claude Code","sidebarTitle":"Connect Claude Code","href":"/products/ai/mcp/quickstart-guides/connect-claude-code"},{"title":"Connect Raff to ChatGPT","sidebarTitle":"Connect ChatGPT","href":"/products/ai/mcp/quickstart-guides/connect-chatgpt"},{"title":"Connect Raff to Cursor","sidebarTitle":"Connect Cursor","href":"/products/ai/mcp/quickstart-guides/connect-cursor"},{"title":"Connect Raff to VS Code, Gemini CLI and other apps","sidebarTitle":"Connect other apps","href":"/products/ai/mcp/quickstart-guides/connect-other-clients"},{"title":"Create a database from chat","href":"/products/ai/mcp/quickstart-guides/create-a-database-from-chat"},{"title":"Use Raff docs in your AI tools","sidebarTitle":"Connect the docs server","href":"/products/ai/mcp/quickstart-guides/connect-docs-server"}]},{"group":"Concepts","pages":[{"title":"MCP sign-in and access","sidebarTitle":"Sign-in and access","href":"/products/ai/mcp/concepts/sign-in-and-access"},{"title":"MCP paid changes and confirmation","sidebarTitle":"Paid changes","href":"/products/ai/mcp/concepts/paid-changes"},{"title":"MCP read-only mode and tool groups","sidebarTitle":"Read-only mode and tool groups","href":"/products/ai/mcp/concepts/read-only-and-tool-groups"}]},{"group":"Details","pages":[{"title":"Raff MCP server tools","sidebarTitle":"Tools","href":"/products/ai/mcp/details/tools"},{"title":"Raff MCP server features and limits","sidebarTitle":"Features \u0026 limits","href":"/products/ai/mcp/details/features-and-limits"}]},{"title":"Raff MCP server troubleshooting","sidebarTitle":"Troubleshooting","href":"/products/ai/mcp/troubleshooting"}]}]}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/introduction"}]}]},"basePath":"","title":"Public IPs - Raff","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-CK6QbnxT.js","DynamicMarkdown-BKiHAm_d.js","zoom-image-lightbox-CLQdF-Ar.js","lightbox-handle-r17bVUz3.js"]}