Files
nexus/sreweekly/articles/99/03-how-to-create-a-high-availability-setup-with-heartbeat-and-floating-ip.html
2026-09-12 17:23:01 +08:00

520 lines
228 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html data-dpl-id="0e5edb3a" lang="en" dir="ltr" data-scroll-behavior="smooth" class="__className_a7006e __className_056829 __className_c1e5e1"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"/><link rel="preload" href="/_do-www-marketing/0e5edb3a/_next/static/media/636a5ac981f94f8b.p.woff2?dpl=0e5edb3a" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_do-www-marketing/0e5edb3a/_next/static/media/bb3ef058b751a6ad-s.p.woff2?dpl=0e5edb3a" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_do-www-marketing/0e5edb3a/_next/static/media/e4af272ccee01ff0-s.p.woff2?dpl=0e5edb3a" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_do-www-marketing/0e5edb3a/_next/static/css/17e47e26cebe8463.css?dpl=0e5edb3a" data-precedence="next"/><link rel="stylesheet" href="/_do-www-marketing/0e5edb3a/_next/static/css/6994b812b10824a2.css?dpl=0e5edb3a" data-precedence="next"/><link rel="stylesheet" href="https://www.digitalocean.com/api/static-content/v1/design_tokens/css" data-precedence="design-tokens"/><link rel="preload" as="script" fetchPriority="low" href="/_do-www-marketing/0e5edb3a/_next/static/chunks/webpack-76827b33696073ea.js?dpl=0e5edb3a"/><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/98cfe7e3-adb37e5932bcde46.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/41351-8999f64e4f3c98af.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/main-app-9d77c18dd5f52d72.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/fd66a6a3-a3e9fb76183e8a2a.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/56816-4f49e20ad6fe6030.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/57908-386d9cb9a015959a.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/25294-44a716ed5c4d1d47.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/75533-9beb1dec0bbdbeb3.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/24373-b0c166fb3422320c.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/69082-655b48b5beed86d1.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/67611-8311ddb0051c5ac5.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/40488-1f9f3ded68e601a8.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/83925-154589a79f7e112a.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/97425-2a15914d271cf06b.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/92293-7638b73d6d606cc6.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/79210-5daa1ca5a782441a.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/88522-f5bb2291e13a8a41.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/68732-b6f8b26a91ef2a49.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/52738-e3ae589399197a12.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/23829-8497c20a2cbdd7e0.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/29298-35df7c34dfed14b6.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/36304-58051dce7fed81be.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/86147-befdb06ee2d58442.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/8315-4666033ca171f9c4.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/87057-0f92239044576f7c.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/layout-51051bcd683d29e9.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/31377-64232bb2a4cb19dd.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/error-cd0efab446a17969.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/19109-87b7d1b899a9bad3.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/not-found-228596b1e9a3c7b0.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/41490-87b7d1b899a9bad3.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/unauthorized-cf674d450630664e.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/43847-6402cb6fdad1fd0f.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/88138-39d78b60a6e0c5bf.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/37264-818907131e57dd98.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/85103-f318d0bc0dd24351.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/7411-c7b2ca143a93975f.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/community/tutorials/page-809cc666cd924e3b.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/98916-abac74e723a9586d.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/community/tutorials/%5Bslug%5D/loading-9ff18149ceb63367.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/global-error-575ca33c98b0729c.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/376fd3f4-91685ecb862fb990.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/c32bb9d7-4d1ed8e2b7f0d01c.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/67338-b412adf18aad1faa.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/98763-a8c7edb0a3cffca5.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/33775-3672ab7360d87d1b.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/14303-9da0ef47962168d0.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/92780-5b217b7bd311aefe.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/20769-5ef2f7204cb564dc.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/71102-e7098f8bbe02d43e.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/34603-ed78b85af36499d1.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/33960-01825405bd588aa5.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/25024-b7cce08e0223f6f7.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/70289-5203dee71f3dbd71.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/3158-63486babd906cf95.js?dpl=0e5edb3a" async=""></script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/app/community/tutorials/%5Bslug%5D/page-02274188d9f8b7ef.js?dpl=0e5edb3a" async=""></script><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://consent.trustarc.com"/><meta name="theme-color" content="#000000"/><title>How To Create a High Availability Setup with Heartbeat and Reserved IPs on Ubuntu 16.04 | DigitalOcean</title><meta name="description" content="Heartbeat is an open source program that provides cluster infrastructure capabilities—cluster membership and messaging—to client servers, which is a critical… "/><link rel="canonical" href="https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04"/><link rel="alternate" hrefLang="en" href="https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04"/><link rel="alternate" hrefLang="x-default" href="https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04"/><meta property="og:title" content="How To Create a High Availability Setup with Heartbeat and Reserved IPs on Ubuntu 16.04 | DigitalOcean"/><meta property="og:description" content="Heartbeat is an open source program that provides cluster infrastructure capabilities—cluster membership and messaging—to client servers, which is a critical… "/><meta property="og:url" content="https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04"/><meta property="og:image" content="https://community-cdn-digitalocean-com.global.ssl.fastly.net/uPWQ3PtrCUXHamqCnTC2vs1S"/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="How To Create a High Availability Setup with Heartbeat and Reserved IPs on Ubuntu 16.04 | DigitalOcean"/><meta name="twitter:description" content="Heartbeat is an open source program that provides cluster infrastructure capabilities—cluster membership and messaging—to client servers, which is a critical… "/><meta name="twitter:image" content="https://community-cdn-digitalocean-com.global.ssl.fastly.net/uPWQ3PtrCUXHamqCnTC2vs1S"/><link rel="icon" href="/_do-www-marketing/0e5edb3a/_next/static/media/favicon.91372345.svg" type="image/svg+xml"/><link rel="icon" href="/_do-www-marketing/0e5edb3a/_next/static/media/favicon.00b9c167.ico" type="image/x-icon" sizes="32x32"/><link rel="apple-touch-icon" href="/_do-www-marketing/0e5edb3a/_next/static/media/apple-touch-icon.9537f22a.png" sizes="180x180"/><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/polyfills-42372ed130431b0a.js?dpl=0e5edb3a" noModule=""></script><style data-styled="" data-styled-version="6.4.2">.iMWrUY{text-decoration:none;}/*!sc*/
.iMWrUY.button-link{align-items:center;background-color:transparent;border:1px solid var(--border-brand);border-radius:100px;color:var(--text-accent);cursor:pointer;display:flex;font-size:1em;font-weight:700;justify-content:center;padding:16px 32px;transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link:hover{background-color:rgba(0,105,255,0.15);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link:focus{background-color:rgba(0,105,255,0.15);border:1px solid transparent;color:var(--text-accent);}/*!sc*/
.iMWrUY.button-link.is-squared{border-radius:8px;}/*!sc*/
.iMWrUY.button-link.is-primary{background-color:var(--background-expanded-blue-bold);border:1px solid var(--border-brand);color:var(--text-on-color);transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-primary:hover{background-color:var(--background-expanded-blue-bold);border:1px solid var(--border-brand);color:var(--text-on-color)!important;transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-primary:disabled{background-color:var(--background-card)!important;border:1px solid var(--border-subtle)!important;color:var(--text-on-color);}/*!sc*/
.iMWrUY.button-link.is-primary.is-outlined{border:1px solid var(--border-brand);color:var(--text-accent);}/*!sc*/
.iMWrUY.button-link.is-primary.is-outlined:hover{background-color:rgba(0,105,255,0.1);border:1px solid var(--border-brand)!important;color:var(--text-accent)!important;}/*!sc*/
.iMWrUY.button-link.is-primary.is-outlined:disabled{background-color:var(--background-card)!important;border:1px solid var(--border-mid)!important;color:var(--text-primary)!important;}/*!sc*/
.iMWrUY.button-link.is-white{background-color:var(--background-card);border:1px solid var(--border-subtle);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-white:hover{background-color:rgba(225,225,225,0.9);border:1px solid rgba(225,225,225,0.9);color:var(--text-accent)!important;transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-white:disabled{border:1px solid var(--border-mid)!important;color:var(--text-primary)!important;}/*!sc*/
.iMWrUY.button-link.is-white.is-outlined{background-color:transparent;border:1px solid rgba(255,255,255,0.8);color:rgba(255,255,255,0.8);}/*!sc*/
.iMWrUY.button-link.is-white.is-outlined:hover{background-color:transparent;border:1px solid rgba(255,255,255,1);color:rgba(255,255,255,1)!important;}/*!sc*/
.iMWrUY.button-link.is-green{background-color:var(--background-expanded-green-bold);border:1px solid var(--border-brand);color:var(--text-on-color);transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-green:hover{background-color:color-mix(in srgb,var(--background-expanded-green-bold) 90%,transparent);border:1px solid color-mix(in srgb,var(--border-brand) 90%,transparent);color:var(--text-on-color)!important;transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-green:disabled{border:1px solid color-mix(in srgb,var(--border-brand) 30%,transparent)!important;color:color-mix(in srgb,var(--text-accent) 30%,transparent)!important;}/*!sc*/
.iMWrUY.button-link.is-green.is-outlined{background-color:transparent;border:1px solid color-mix(in srgb,var(--border-brand) 90%,transparent);color:color-mix(in srgb,var(--text-accent) 90%,transparent);}/*!sc*/
.iMWrUY.button-link.is-green.is-outlined:not(:disabled):hover{background-color:transparent;border:1px solid color-mix(in srgb,var(--border-brand) 100%,transparent);color:color-mix(in srgb,var(--text-accent) 100%,transparent);}/*!sc*/
.iMWrUY.button-link.is-outlined{background-color:transparent;border:1px solid var(--border-brand);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-outlined:hover{border:1px solid var(--border-brand);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.iMWrUY.button-link.is-small{padding:12px 24px;}/*!sc*/
.iMWrUY.button-link.has-center-img{padding:15px 16px;}/*!sc*/
.iMWrUY.button-link.has-left-img >img{margin-right:8px;}/*!sc*/
.iMWrUY.button-link.mx-16{margin-left:16px;margin-right:16px;}/*!sc*/
.iMWrUY.button-link.is-gray3-color{box-shadow:0 6px 20px -6px color-mix(in srgb,var(--text-accent) 15%,transparent);color:var(--text-primary);font-size:16px;font-weight:600;line-height:24px;}/*!sc*/
data-styled.g1[id="LazyLink___StyledLink-sc-a535d946-0"]{content:"iMWrUY,"}/*!sc*/
.jjFalE{text-decoration:none;}/*!sc*/
.jjFalE.button-link{align-items:center;background-color:transparent;border:1px solid var(--border-brand);border-radius:100px;color:var(--text-accent);cursor:pointer;display:flex;font-size:1em;font-weight:700;justify-content:center;padding:16px 32px;transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link:hover{background-color:rgba(0,105,255,0.15);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link:focus{background-color:rgba(0,105,255,0.15);border:1px solid transparent;color:var(--text-accent);}/*!sc*/
.jjFalE.button-link.is-squared{border-radius:8px;}/*!sc*/
.jjFalE.button-link.is-primary{background-color:var(--background-expanded-blue-bold);border:1px solid var(--border-brand);color:var(--text-on-color);transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-primary:hover{background-color:var(--background-expanded-blue-bold);border:1px solid var(--border-brand);color:var(--text-on-color)!important;transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-primary:disabled{background-color:var(--background-card)!important;border:1px solid var(--border-subtle)!important;color:var(--text-on-color);}/*!sc*/
.jjFalE.button-link.is-primary.is-outlined{border:1px solid var(--border-brand);color:var(--text-accent);}/*!sc*/
.jjFalE.button-link.is-primary.is-outlined:hover{background-color:rgba(0,105,255,0.1);border:1px solid var(--border-brand)!important;color:var(--text-accent)!important;}/*!sc*/
.jjFalE.button-link.is-primary.is-outlined:disabled{background-color:var(--background-card)!important;border:1px solid var(--border-mid)!important;color:var(--text-primary)!important;}/*!sc*/
.jjFalE.button-link.is-white{background-color:var(--background-card);border:1px solid var(--border-subtle);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-white:hover{background-color:rgba(225,225,225,0.9);border:1px solid rgba(225,225,225,0.9);color:var(--text-accent)!important;transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-white:disabled{border:1px solid var(--border-mid)!important;color:var(--text-primary)!important;}/*!sc*/
.jjFalE.button-link.is-white.is-outlined{background-color:transparent;border:1px solid rgba(255,255,255,0.8);color:rgba(255,255,255,0.8);}/*!sc*/
.jjFalE.button-link.is-white.is-outlined:hover{background-color:transparent;border:1px solid rgba(255,255,255,1);color:rgba(255,255,255,1)!important;}/*!sc*/
.jjFalE.button-link.is-green{background-color:var(--background-expanded-green-bold);border:1px solid var(--border-brand);color:var(--text-on-color);transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-green:hover{background-color:color-mix(in srgb,var(--background-expanded-green-bold) 90%,transparent);border:1px solid color-mix(in srgb,var(--border-brand) 90%,transparent);color:var(--text-on-color)!important;transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-green:disabled{border:1px solid color-mix(in srgb,var(--border-brand) 30%,transparent)!important;color:color-mix(in srgb,var(--text-accent) 30%,transparent)!important;}/*!sc*/
.jjFalE.button-link.is-green.is-outlined{background-color:transparent;border:1px solid color-mix(in srgb,var(--border-brand) 90%,transparent);color:color-mix(in srgb,var(--text-accent) 90%,transparent);}/*!sc*/
.jjFalE.button-link.is-green.is-outlined:not(:disabled):hover{background-color:transparent;border:1px solid color-mix(in srgb,var(--border-brand) 100%,transparent);color:color-mix(in srgb,var(--text-accent) 100%,transparent);}/*!sc*/
.jjFalE.button-link.is-outlined{background-color:transparent;border:1px solid var(--border-brand);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-outlined:hover{border:1px solid var(--border-brand);color:var(--text-accent);transition:all 0.3s ease;}/*!sc*/
.jjFalE.button-link.is-small{padding:12px 24px;}/*!sc*/
.jjFalE.button-link.has-center-img{padding:15px 16px;}/*!sc*/
.jjFalE.button-link.has-left-img >img{margin-right:8px;}/*!sc*/
.jjFalE.button-link.mx-16{margin-left:16px;margin-right:16px;}/*!sc*/
.jjFalE.button-link.is-gray3-color{box-shadow:0 6px 20px -6px color-mix(in srgb,var(--text-accent) 15%,transparent);color:var(--text-primary);font-size:16px;font-weight:600;line-height:24px;}/*!sc*/
data-styled.g2[id="LazyLink___StyledA-sc-a535d946-1"]{content:"jjFalE,"}/*!sc*/
.jvaeQM{cursor:pointer;display:inline-block;font-weight:500;border-radius:999px;font-size:16px;line-height:24px;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-3, 24px);background-color:transparent;box-shadow:inset 0px 0px 0px 1px var(--button-ghost-default);color:var(--button-ghost-default);transition:background 300ms ease-in-out,color 300ms ease-in-out;}/*!sc*/
.jvaeQM:hover{box-shadow:none;background-color:var(--button-ghost-hover);color:var(--button-white-text);}/*!sc*/
.jvaeQM:focus-visible{box-shadow:none;background-color:var(--button-ghost-hover);color:var(--button-white-text);outline-color:var(--button-ghost-hover);}/*!sc*/
.jvaeQM:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/
.bPKRZR{cursor:pointer;display:inline-block;font-weight:500;border-radius:999px;font-size:16px;line-height:24px;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-3, 24px);background-color:transparent;color:var(--text-default);font-weight:500;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-2, 16px);transition:color 300ms ease-in-out,background-color 300ms ease-in-out;}/*!sc*/
.bPKRZR:hover{background-color:var(--navigation-www-nav-card-hover);color:var(--text-primary);}/*!sc*/
.bPKRZR:focus-visible{background-color:var(--navigation-www-nav-card-hover);color:var(--text-primary);outline-color:var(--navigation-www-nav-card-hover);}/*!sc*/
.bPKRZR:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/
.lcRBhP{cursor:pointer;display:inline-block;font-weight:500;border-radius:999px;font-size:16px;line-height:24px;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-3, 24px);background-color:var(--button-primary-default);color:var(--button-primary-text);font-weight:500;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-2, 16px);transition:background 300ms ease-in-out;}/*!sc*/
.lcRBhP:hover{background-color:var(--button-primary-hover);}/*!sc*/
.lcRBhP:focus-visible{background-color:var(--button-primary-hover);outline-color:var(--button-primary-hover);}/*!sc*/
.lcRBhP:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/
.jbwvZJ{cursor:pointer;display:inline-block;font-weight:500;border-radius:999px;font-size:16px;line-height:24px;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-3, 24px);background-color:var(--button-white-default);color:var(--button-white-text);transition:background 300ms ease-in-out,color 300ms ease-in-out;}/*!sc*/
.jbwvZJ:hover{background-color:var(--button-white-hover);color:var(--button-primary-text);}/*!sc*/
.jbwvZJ:focus-visible{background-color:var(--button-white-hover);color:var(--button-primary-text);outline-color:var(--button-white-hover);}/*!sc*/
.jbwvZJ:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/
data-styled.g9[id="Buttonstyles-sc-hznqte-1"]{content:"jvaeQM,bPKRZR,lcRBhP,jbwvZJ,"}/*!sc*/
.elVJvi{margin:0;color:var(--text-on-color);font-family:'Inter','Inter Fallback',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:500;}/*!sc*/
.knePS{margin:0;font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}/*!sc*/
.eAWyXV{margin:0;font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:500;}/*!sc*/
.dOfJkp{margin:0;color:var(--text-primary);font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:500;}/*!sc*/
.eorXRA{margin:0;color:var(--text-default);font-family:'Inter','Inter Fallback',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:500;}/*!sc*/
.iCUcQf{margin:0;font-family:'Inter','Inter Fallback',sans-serif;font-size:18px;letter-spacing:0;line-height:26px;font-weight:700;}/*!sc*/
.hrVXbE{margin:0;font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;}/*!sc*/
.cmZFkE{margin:0;color:var(--text-secondary);font-family:'Inter','Inter Fallback',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:400;}/*!sc*/
.bojEJy{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;letter-spacing:0;line-height:32px;font-weight:700;}/*!sc*/
.dyMnPD{margin:0;color:var(--text-default);font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;}/*!sc*/
.ieryHS{margin:0;font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:600;}/*!sc*/
.fUErXy{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-size:28px;letter-spacing:0;line-height:36px;font-weight:700;}/*!sc*/
@media (min-width: 768px){.fUErXy{font-size:36px;letter-spacing:-1px;line-height:48px;}}/*!sc*/
.gdnEcZ{margin:0;color:var(--text-on-color);font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;}/*!sc*/
.kkYqjo{margin:0;color:var(--text-default);font-family:'Inter','Inter Fallback',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:700;}/*!sc*/
.hZgGN{margin:0;color:var(--text-default);font-family:'Inter','Inter Fallback',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:400;}/*!sc*/
.gTKhrk{margin:0;color:var(--text-default);font-family:'Inter','Inter Fallback',sans-serif;font-size:18px;letter-spacing:0;line-height:26px;font-weight:700;}/*!sc*/
data-styled.g12[id="Typographystyles-sc-o7qsl9-0"]{content:"elVJvi,knePS,eAWyXV,dOfJkp,eorXRA,iCUcQf,hrVXbE,cmZFkE,bojEJy,dyMnPD,ieryHS,fUErXy,gdnEcZ,kkYqjo,hZgGN,gTKhrk,"}/*!sc*/
.jIQAEC{--k-container-padding:var(--layout-spacing-size-3, 24px);--k-container-max-width:1088px;margin:0 auto;max-width:calc( var(--k-container-max-width) + calc(var(--k-container-padding) * 2) );padding:0 var(--k-container-padding);width:100%;}/*!sc*/
@media (min-width: 768px){.jIQAEC{--k-container-padding:var(--layout-spacing-size-5, 40px);}}/*!sc*/
data-styled.g26[id="Containerstyles-sc-11hjsrs-0"]{content:"jIQAEC,"}/*!sc*/
.kcYccs{align-items:center;display:inline-flex;gap:var(--layout-spacing-size-0p75, 6px);line-height:1.5;position:relative;text-decoration:none;}/*!sc*/
.kcYccs::after{background:currentColor;bottom:var(--layout-spacing-size-0p25, 2px);content:'';height:1.5px;left:0;position:absolute;transform:scaleX(0);transform-origin:0 0;transition:transform 300ms ease-in-out;width:100%;}/*!sc*/
.kcYccs path{transition:transform 300ms ease-in-out;}/*!sc*/
.kcYccs path:nth-child(1){transform:translateX(-5px);}/*!sc*/
.kcYccs path:nth-child(2){transform:scaleX(0.6333333333);transform-origin:0 0;}/*!sc*/
.kcYccs:hover::after,.kcYccs:focus::after{transform:scaleX(1);}/*!sc*/
.kcYccs:hover path:nth-child(1),.kcYccs:focus path:nth-child(1){transform:translateX(0);}/*!sc*/
.kcYccs:hover path:nth-child(2),.kcYccs:focus path:nth-child(2){transform:scaleX(1);}/*!sc*/
.kcYccs svg{flex-shrink:0;height:12px;width:18px;}/*!sc*/
data-styled.g27[id="LinkTextstyles-sc-jz3jcd-0"]{content:"kcYccs,"}/*!sc*/
.blrpEn{isolation:isolate;position:relative;}/*!sc*/
data-styled.g32[id="Sectionstyles__StyledSection-sc-4l5hhw-0"]{content:"blrpEn,"}/*!sc*/
.bGPTxF{--k-padding:var(--layout-spacing-size-9, 72px);padding:var(--k-padding) 0;}/*!sc*/
.bMaVH{--k-padding:var(--layout-spacing-size-12, 96px);background-color:var(--background-accent);padding:var(--k-padding) 0;}/*!sc*/
data-styled.g33[id="Sectionstyles__StyledSectionInner-sc-4l5hhw-1"]{content:"bGPTxF,bMaVH,"}/*!sc*/
@keyframes ckkqjM{0%{transform:translateY(110vh);}100%{transform:translateY(0);}}/*!sc*/
data-styled.g34[id="sc-keyframes-ckkqjM"]{content:"ckkqjM,"}/*!sc*/
@keyframes kVaHQg{0%{opacity:0;}100%{opacity:0.4;}}/*!sc*/
data-styled.g35[id="sc-keyframes-kVaHQg"]{content:"kVaHQg,"}/*!sc*/
:root{--replies-accepted:light-dark(var(--kelp-100),var(--kelp-800));--replies-pinned:light-dark(var(--cerulean-100),var(--cerulean-900));color-scheme:dark;}/*!sc*/
html{--top-hat-height:calc(0 * 1px);--primary-nav-height:73px;--sub-nav-height:calc(0 * 1px);--content-spacing:64px;--scroll-padding-top:calc( var(--top-hat-height) + var(--primary-nav-height) + var(--sub-nav-height) + var(--content-spacing) );scroll-behavior:smooth;scroll-padding-top:var(--scroll-padding-top);scrollbar-color:var(--navigation-scrollbar-thumb) transparent;}/*!sc*/
body{background-color:var(--background-default);line-height:1.4;text-rendering:optimizeLegibility;}/*!sc*/
ol,ul{list-style:none;margin:0;padding:0;}/*!sc*/
table{border-collapse:collapse;}/*!sc*/
h1,h2,h3,h4,h5{font-family:'Plus Jakarta Sans',sans-serif;}/*!sc*/
.truste_box_overlay{left:200vw;position:fixed;}/*!sc*/
.truste_overlay{display:none;}/*!sc*/
.truste_box_overlay.slide-up{animation:ckkqjM 1s forwards;left:0;max-height:calc(100% - 40px);overflow:auto;}/*!sc*/
.truste_overlay.fade-in{animation:kVaHQg 1s forwards;display:block;}/*!sc*/
#truste-consent-track{left:200vw;}/*!sc*/
#truste-consent-track.slide-up{animation:ckkqjM 1s forwards;}/*!sc*/
data-styled.g36[id="sc-global-ffRIFn"]{content:"sc-global-ffRIFn1,"}/*!sc*/
*,*::before,*::after{box-sizing:border-box;}/*!sc*/
*{margin:0;}/*!sc*/
html,body{font-family:'Inter','Inter Fallback',sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;min-height:100vh;padding:0;}/*!sc*/
@media (prefers-reduced-motion){html,body{animation:none!important;}}/*!sc*/
a{color:inherit;text-decoration:none;}/*!sc*/
input,button,textarea,select{font:inherit;}/*!sc*/
img,picture,video,canvas,svg{display:block;max-width:100%;}/*!sc*/
button{background:transparent;border:0;cursor:pointer;}/*!sc*/
input,textarea{font:inherit;}/*!sc*/
input::placeholder,textarea::placeholder{opacity:1;}/*!sc*/
data-styled.g38[id="sc-global-btwYbO"]{content:"sc-global-btwYbO1,"}/*!sc*/
.hfPme{bottom:var(--layout-spacing-size-5, 40px);display:flex;flex-direction:column;gap:var(--layout-spacing-size-0p5, 4px);left:var(--layout-spacing-size-3, 24px);max-width:calc(100% - var(--layout-spacing-size-6, 48px));position:fixed;z-index:99999;}/*!sc*/
.hfPme svg{align-self:flex-start;margin-top:var(--layout-spacing-size-0p5, 4px);}/*!sc*/
@media (min-width:768px){.hfPme{left:var(--layout-spacing-size-5, 40px);}}/*!sc*/
@media (min-width:1280px){.hfPme{left:var(--layout-spacing-size-8, 64px);}}/*!sc*/
data-styled.g41[id="NotificationsStyles__NotificationsContainer-sc-7b760a16-0"]{content:"hfPme,"}/*!sc*/
.dNWMka{display:grid;gap:var(--layout-spacing-size-3, 24px);grid-template-columns:repeat(6,minmax(0,1fr));}/*!sc*/
@media (min-width: 768px){.dNWMka{gap:var(--layout-spacing-size-3, 24px);}}/*!sc*/
.dyOzEN{display:grid;gap:var(--layout-spacing-size-3, 24px);grid-template-columns:repeat(1,minmax(0,1fr));}/*!sc*/
@media (min-width: 768px){.dyOzEN{gap:var(--layout-spacing-size-3, 24px);}}/*!sc*/
.roDpq{display:grid;gap:var(--layout-spacing-size-3, 24px);grid-template-columns:repeat(2,minmax(0,1fr));}/*!sc*/
@media (min-width: 768px){.roDpq{gap:var(--layout-spacing-size-3, 24px);}}/*!sc*/
.hpedQx{display:grid;gap:var(--layout-spacing-size-1, 8px);grid-template-columns:repeat(1,minmax(0,1fr));}/*!sc*/
@media (min-width: 768px){.hpedQx{gap:var(--layout-spacing-size-1, 8px);}}/*!sc*/
.boMksh{display:grid;gap:var(--layout-spacing-size-4, 32px);grid-template-columns:repeat(1,minmax(0,1fr));}/*!sc*/
@media (min-width: 768px){.boMksh{gap:var(--layout-spacing-size-4, 32px);}}/*!sc*/
.sjyRg{display:grid;gap:var(--layout-spacing-size-3, 24px);grid-template-columns:repeat(6,minmax(0,1fr));}/*!sc*/
@media (min-width: 768px){.sjyRg{grid-auto-rows:1fr;gap:var(--layout-spacing-size-3, 24px);}}/*!sc*/
data-styled.g50[id="Gridstyles-sc-isu2n3-0"]{content:"dNWMka,dyOzEN,roDpq,hpedQx,boMksh,sjyRg,"}/*!sc*/
.eWzHZX{height:100%;}/*!sc*/
data-styled.g51[id="CTATextCenterstyles__StyledCTATextCenterWrapper-sc-1bhx0m5-0"]{content:"eWzHZX,"}/*!sc*/
.gcJQEl{border-radius:16px;color:var(--text-on-color);height:100%;overflow:hidden;padding:var(--layout-spacing-size-7, 56px) var(--layout-spacing-size-4, 32px) var(--layout-spacing-size-9, 72px);position:relative;text-align:center;}/*!sc*/
@media (min-width: 604px){.gcJQEl{padding:var(--layout-spacing-size-7, 56px) var(--layout-spacing-size-5, 40px) var(--layout-spacing-size-9, 72px);}}/*!sc*/
@media (min-width: 1280px){.gcJQEl{padding:var(--layout-spacing-size-8, 64px) 0 var(--layout-spacing-size-10, 80px);}}/*!sc*/
.icjbQA{border-radius:16px;background-color:var(--background-card);color:var(--text-primary);height:100%;overflow:hidden;padding:var(--layout-spacing-size-7, 56px) var(--layout-spacing-size-4, 32px) var(--layout-spacing-size-9, 72px);position:relative;text-align:center;}/*!sc*/
@media (min-width: 604px){.icjbQA{padding:var(--layout-spacing-size-7, 56px) var(--layout-spacing-size-5, 40px) var(--layout-spacing-size-9, 72px);}}/*!sc*/
@media (min-width: 1280px){.icjbQA{padding:var(--layout-spacing-size-8, 64px) 0 var(--layout-spacing-size-10, 80px);}}/*!sc*/
data-styled.g52[id="CTATextCenterstyles__StyledCTATextCenter-sc-1bhx0m5-1"]{content:"gcJQEl,icjbQA,"}/*!sc*/
.isBriY{inset:0;position:absolute;}/*!sc*/
.isBriY picture{height:100%;width:100%;}/*!sc*/
.isBriY picture img{height:100%;object-fit:cover;object-position:top left;width:100%;}/*!sc*/
.isBriY img{height:100%;object-fit:cover;object-position:left;width:100%;}/*!sc*/
data-styled.g53[id="CTATextCenterstyles__StyledCTATextCenterImage-sc-1bhx0m5-2"]{content:"isBriY,"}/*!sc*/
.fvUrZB{display:flex;flex-direction:column;gap:var(--layout-spacing-size-1, 8px);}/*!sc*/
data-styled.g54[id="CTATextCenterstyles__StyledCTATextCenterContent-sc-1bhx0m5-3"]{content:"fvUrZB,"}/*!sc*/
.hLrIwl{display:flex;flex-direction:column;gap:var(--layout-spacing-size-5, 40px);margin:0 auto;max-width:464px;position:relative;z-index:1;}/*!sc*/
data-styled.g55[id="CTATextCenterstyles__StyledCTATextCenterContainer-sc-1bhx0m5-4"]{content:"hLrIwl,"}/*!sc*/
.dVrxpp >div:last-child{inset:0;}/*!sc*/
.dVrxpp >div:last-child >picture{height:100%;width:100%;}/*!sc*/
.dVrxpp >div:last-child >picture >img{height:100%;object-fit:cover;object-position:top left;width:100%;}/*!sc*/
.dVrxpp >div:last-child >img{height:100%;object-fit:cover;object-position:left;width:100%;}/*!sc*/
data-styled.g57[id="StyledCTAs__StyledCTATextCenter-sc-a25a892e-1"]{content:"dVrxpp,"}/*!sc*/
.jpYjUd{grid-column:span 1;}/*!sc*/
.gOKCvp{grid-column:span 6;}/*!sc*/
@media (min-width: 768px){.gOKCvp{grid-column:span 3;}}/*!sc*/
@media (min-width: 1024px){.gOKCvp{grid-column:span 2;}}/*!sc*/
.bnXNqo{grid-column:span 2;}/*!sc*/
@media (min-width: 768px){.bnXNqo{grid-column:span 1;}}/*!sc*/
.kpCCjK{grid-column:span 6;}/*!sc*/
@media (min-width: 604px){.kpCCjK{grid-column:span 3;}}/*!sc*/
@media (min-width: 1024px){.kpCCjK{grid-column:span 2;}}/*!sc*/
data-styled.g109[id="GridItemstyles-sc-eu71zi-0"]{content:"jpYjUd,gOKCvp,bnXNqo,kpCCjK,"}/*!sc*/
.cDqwDt{border-radius:16px;overflow:hidden;position:relative;}/*!sc*/
.cDqwDt::after{content:'';display:block;padding-bottom:58.08823529411765%;}/*!sc*/
@media (min-width: 768px){.cDqwDt::after{padding-bottom:57.89473684210527%;}}/*!sc*/
.cDqwDt img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%;}/*!sc*/
data-styled.g116[id="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1"]{content:"cDqwDt,"}/*!sc*/
.hGIWRw{display:flex;flex-direction:column;gap:var(--layout-spacing-size-3, 24px);justify-content:space-between;}/*!sc*/
data-styled.g117[id="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2"]{content:"hGIWRw,"}/*!sc*/
.bBcQQT{display:flex;flex-direction:column;gap:var(--layout-spacing-size-3, 24px);}/*!sc*/
data-styled.g118[id="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3"]{content:"bBcQQT,"}/*!sc*/
.hMjgom{display:flex;flex-direction:column;gap:var(--layout-spacing-size-1, 8px);}/*!sc*/
data-styled.g120[id="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-5"]{content:"hMjgom,"}/*!sc*/
.OuQia{position:relative;}/*!sc*/
data-styled.g121[id="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-6"]{content:"OuQia,"}/*!sc*/
.bgLIvv{align-items:center;display:flex;gap:var(--layout-spacing-size-2, 16px);}/*!sc*/
.bgLIvv svg{color:var(--icon-brand);}/*!sc*/
.bgLIvv a{transition:color 300ms ease-in-out;}/*!sc*/
.bgLIvv a:hover{color:var(--icon-brand);}/*!sc*/
data-styled.g122[id="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-7"]{content:"bgLIvv,"}/*!sc*/
.hEVnrJ{display:flex;flex-direction:column;min-height:100%;color:var(--text-primary);background-color:var(--background-card);border-radius:16px;overflow:hidden;position:relative;}/*!sc*/
.hEVnrJ::after{border:2px solid var(--border-transparent);border-radius:16px;content:'';inset:0;pointer-events:none;position:absolute;}/*!sc*/
.hEVnrJ .CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2{flex-grow:1;padding:var(--layout-spacing-size-3, 24px) var(--layout-spacing-size-4, 32px);}/*!sc*/
.hEVnrJ .CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1{border-radius:0;}/*!sc*/
.hEVnrJ .CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-6{margin-top:auto;}/*!sc*/
.hEVnrJ +:not(.CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-6) .CardUniversalstyles__StyledCardUniversalFooter-sc-1inzdla-0{margin-top:auto;}/*!sc*/
data-styled.g125[id="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-10"]{content:"hEVnrJ,"}/*!sc*/
.khLIEt{padding:0;color:var(--text-default);transition:color 350ms ease;}/*!sc*/
.khLIEt:hover,.khLIEt:focus{color:var(--text-primary);}/*!sc*/
data-styled.g153[id="SocialStyles__StyledSocial-sc-cc3469ac-0"]{content:"khLIEt,"}/*!sc*/
.dNYLTy{transform-box:fill-box;transform-origin:0 0;transition:stroke-dashoffset 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),stroke-dasharray 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6);}/*!sc*/
data-styled.g154[id="DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0"]{content:"dNYLTy,"}/*!sc*/
.lcppJb{transform-box:fill-box;transform-origin:0 0;transition:transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 375ms,opacity 187.5ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 375ms;}/*!sc*/
data-styled.g155[id="DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1"]{content:"lcppJb,"}/*!sc*/
.gempjk{transform-box:fill-box;transform-origin:0 100%;transition:transform 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6);}/*!sc*/
data-styled.g156[id="DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2"]{content:"gempjk,"}/*!sc*/
.dvyWcr{transform-box:fill-box;transform-origin:0 50%;transition:transform 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6);}/*!sc*/
data-styled.g157[id="DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3"]{content:"dvyWcr,"}/*!sc*/
@keyframes lRCJp{to{transform:translate(27.75px,-41.25px) scale(1,0.25);}}/*!sc*/
data-styled.g158[id="sc-keyframes-lRCJp"]{content:"lRCJp,"}/*!sc*/
.kNCvbu{cursor:pointer;overflow:visible;}/*!sc*/
.kNCvbu:hover .DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0,.kNCvbu:focus .DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0{stroke-dasharray:113.88273369263 113.88273369263;stroke-dashoffset:0;transform:translate(0,-13.75px);transition:stroke-dashoffset 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),stroke-dasharray 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 375ms;}/*!sc*/
.kNCvbu:hover .DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1,.kNCvbu:focus .DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1{opacity:0;transform:scale(0);transition:transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 0ms,opacity 187.5ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 562.5ms;}/*!sc*/
.kNCvbu:hover .DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2,.kNCvbu:focus .DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2{transform:translate(3.25px,-58.5px) translate(0,3.75px) scale(1.2777777777777777);}/*!sc*/
.kNCvbu:hover .DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3,.kNCvbu:focus .DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3{transform:translate(27.75px,-41.25px);}/*!sc*/
.kNCvbu:focus{outline:none;}/*!sc*/
@media (hover:hover){.kNCvbu:focus .DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3{animation:375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 0s 2 alternate lRCJp;}}/*!sc*/
data-styled.g159[id="DigitalOceanSmileyStyles__StyledSvg-sc-64ca7b97-4"]{content:"kNCvbu,"}/*!sc*/
.jXWzIT{align-items:center;display:flex;flex-direction:column;gap:var(--layout-spacing-size-4, 32px);justify-content:space-between;margin:var(--layout-spacing-size-10, 80px) 0 0;}/*!sc*/
@media (min-width:768px){.jXWzIT{flex-direction:row;}}/*!sc*/
data-styled.g160[id="CompanyDetailsStyles__StyledCompanyDetails-sc-70016102-0"]{content:"jXWzIT,"}/*!sc*/
.dwIQJr{align-items:center;display:flex;flex-wrap:wrap;gap:var(--layout-spacing-size-2, 16px);justify-content:center;text-align:center;}/*!sc*/
@media (min-width:768px){.dwIQJr{flex-wrap:nowrap;}}/*!sc*/
.dwIQJr svg{color:var(--logo-do-white);}/*!sc*/
.dwIQJr a{color:var(--text-default);}/*!sc*/
.dwIQJr a:hover{color:var(--text-primary);}/*!sc*/
data-styled.g161[id="CompanyDetailsStyles__StyledCompanyLogo-sc-70016102-1"]{content:"dwIQJr,"}/*!sc*/
.iunNkm{display:flex;flex-wrap:wrap;gap:var(--layout-spacing-size-2, 16px);justify-content:center;list-style:none;margin:0;max-width:12rem;padding:0;}/*!sc*/
@media (min-width:768px){.iunNkm{max-width:none;}}/*!sc*/
data-styled.g162[id="CompanyDetailsStyles__StyledCompanySocials-sc-70016102-2"]{content:"iunNkm,"}/*!sc*/
.hYQleR{display:none;gap:var(--layout-spacing-size-4, 32px);grid-template-columns:repeat(auto-fill,minmax(192px,1fr));width:100%;}/*!sc*/
@media (min-width:768px){.hYQleR{display:grid;}}/*!sc*/
data-styled.g163[id="LinksStyles__StyledFooterDesktop-sc-607a44c5-0"]{content:"hYQleR,"}/*!sc*/
.jZDJvg{display:flex;flex-direction:column;gap:var(--layout-spacing-size-1, 8px);list-style:none;margin:var(--layout-spacing-size-2, 16px) 0 0;padding:0;}/*!sc*/
data-styled.g164[id="LinksStyles__StyledList-sc-607a44c5-1"]{content:"jZDJvg,"}/*!sc*/
.fMymZG:hover,.fMymZG:focus{color:var(--text-primary);}/*!sc*/
data-styled.g165[id="LinksStyles__StyledLink-sc-607a44c5-2"]{content:"fMymZG,"}/*!sc*/
.kruQEm{display:flex;flex-direction:column;width:100%;}/*!sc*/
@media (min-width:768px){.kruQEm{display:none;}}/*!sc*/
.kruQEm details:not(:last-child){border-bottom:1px solid var(--border-subtle);}/*!sc*/
.kruQEm .LinksStyles__StyledList-sc-607a44c5-1{margin:0 0 var(--layout-spacing-size-2, 16px);}/*!sc*/
data-styled.g166[id="LinksStyles__StyledFooterMobile-sc-607a44c5-3"]{content:"kruQEm,"}/*!sc*/
.ctHUKi{cursor:pointer;}/*!sc*/
.ctHUKi summary{align-items:center;display:flex;justify-content:space-between;list-style:none;padding:var(--layout-spacing-size-2, 16px) 0;}/*!sc*/
.ctHUKi summary::-webkit-details-marker{display:none;}/*!sc*/
.ctHUKi summary .up,.ctHUKi summary .down{color:var(--text-primary);flex:0 0 auto;}/*!sc*/
.ctHUKi[open] summary .down{display:none;}/*!sc*/
.ctHUKi:not([open]) summary .up{display:none;}/*!sc*/
data-styled.g167[id="LinksStyles__StyledDetails-sc-607a44c5-4"]{content:"ctHUKi,"}/*!sc*/
.AvLth{display:none;}/*!sc*/
@media (min-width:768px){.AvLth{display:inline-flex;}}/*!sc*/
data-styled.g168[id="DigitalOceanStyles__StyledText-sc-5322d8c4-0"]{content:"AvLth,"}/*!sc*/
.JGXYR{color:var(--logo-do-white);display:inline-flex;}/*!sc*/
data-styled.g169[id="DigitalOceanStyles__StyledLogo-sc-5322d8c4-1"]{content:"JGXYR,"}/*!sc*/
.lmmsMN{isolation:isolate;position:sticky;top:0;z-index:1000;}/*!sc*/
.lmmsMN header{z-index:1000;}/*!sc*/
data-styled.g170[id="HeaderStyles__StyledHeader-sc-5192cbe3-0"]{content:"lmmsMN,"}/*!sc*/
.bxWEGZ{display:flex;flex-direction:column;gap:var(--layout-spacing-size-1, 8px);list-style-type:none;padding:0;white-space:nowrap;}/*!sc*/
@media (min-width:calc(768px)){.bxWEGZ{flex-direction:row;}}/*!sc*/
@media (max-width:calc(768px - 1px)){.bxWEGZ{gap:var(--layout-spacing-size-2, 16px);}}/*!sc*/
@media (max-width:calc(768px - 1px)){.bxWEGZ >li:first-child>a,.bxWEGZ >li:first-child>button{box-shadow:0 0 0 1px var(--text-default);color:var(--text-default);}.bxWEGZ >li:first-child>a:hover,.bxWEGZ >li:first-child>button:hover{background-color:transparent;}}/*!sc*/
@media (max-width:calc(1024px - 1px)){.bxWEGZ >li{flex-basis:0;flex-grow:1;}.bxWEGZ >li >a,.bxWEGZ >li >button{text-align:center;width:100%;}}/*!sc*/
.bxWEGZ button{align-items:center;display:flex;gap:var(--layout-spacing-size-0p25, 2px);}/*!sc*/
.bxWEGZ button svg{flex-shrink:0;}/*!sc*/
data-styled.g171[id="HeaderStyles__StyledCTALinks-sc-5192cbe3-1"]{content:"bxWEGZ,"}/*!sc*/
.hnLqMW{position:relative;}/*!sc*/
.hnLqMW >button,.hnLqMW >a{justify-content:center;width:100%;}/*!sc*/
.hnLqMW >button >svg,.hnLqMW >a >svg{transition:transform 300ms ease-in-out;}/*!sc*/
@media (max-width:calc(768px - 1px)){.hnLqMW:first-child >ul{left:0;right:initial;}.hnLqMW:first-child >ul button{box-shadow:none;}.hnLqMW:first-child >ul a{box-shadow:none;}}/*!sc*/
data-styled.g172[id="HeaderStyles__StyledCommunityCTA-sc-5192cbe3-2"]{content:"hnLqMW,"}/*!sc*/
.jjMSkz{background-color:var(--background-card);display:none;flex-direction:column;height:100%;left:0;overflow-x:auto;padding:var(--layout-spacing-size-2, 16px);position:fixed;top:0;width:100%;z-index:1000;}/*!sc*/
@media (min-width:1280px){.jjMSkz{border-radius:16px;box-shadow:0px 9px 24px light-dark(rgba(0, 12, 42, 0.2), rgba(247, 248, 251, 0.2)),inset 0 0 0 1px var(--border-subtle);height:auto;left:auto;padding:var(--layout-spacing-size-2, 16px);position:absolute;right:0;top:calc(100% + var(--layout-spacing-size-1p5, 12px));width:283px;}}/*!sc*/
data-styled.g175[id="ActionMenuStyles__StyledActionMenu-sc-8cc9cb41-0"]{content:"jjMSkz,"}/*!sc*/
.iVVDgA{align-items:start;display:flex;gap:var(--layout-spacing-size-2, 16px);justify-content:space-between;margin-bottom:var(--layout-spacing-size-2, 16px);}/*!sc*/
data-styled.g176[id="ActionMenuStyles__StyledActionMenuTitle-sc-8cc9cb41-1"]{content:"iVVDgA,"}/*!sc*/
.jYMvAI{color:var(--text-primary);flex:1;font-weight:500;line-height:24px;min-width:0;overflow-wrap:break-word;padding:0 0 0 var(--layout-spacing-size-1p5, 12px);}/*!sc*/
@media (min-width:768px){.jYMvAI{padding:0 var(--layout-spacing-size-1p5, 12px) 0 var(--layout-spacing-size-1p5, 12px);}}/*!sc*/
data-styled.g177[id="ActionMenuStyles__StyledActionMenuTitleText-sc-8cc9cb41-2"]{content:"jYMvAI,"}/*!sc*/
.gQhTmM{display:block;flex-shrink:0;margin-left:auto;padding:0;position:relative;z-index:1;}/*!sc*/
@media (min-width:1280px){.gQhTmM{display:none!important;}}/*!sc*/
data-styled.g178[id="ActionMenuStyles__StyledCloseButton-sc-8cc9cb41-3"]{content:"gQhTmM,"}/*!sc*/
.eNAsqz{border-radius:var(--layout-spacing-size-1, 8px);color:var(--text-default);}/*!sc*/
.eNAsqz:hover{background-color:var(--background-accent);color:var(--text-primary);}/*!sc*/
.eNAsqz a,.eNAsqz button{align-items:center;color:inherit;display:flex;gap:var(--layout-spacing-size-1, 8px);margin:0;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-1p5, 12px);}/*!sc*/
.eNAsqz a:hover,.eNAsqz button:hover{background-color:var(--background-accent);color:var(--text-primary);}/*!sc*/
.eNAsqz svg{flex-shrink:0;}/*!sc*/
data-styled.g179[id="ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4"]{content:"eNAsqz,"}/*!sc*/
.kOoZiF{background-color:var(--background-default);position:relative;}/*!sc*/
.kOoZiF::after{background-color:var(--border-subtle);bottom:0;content:'';height:1px;left:0;position:absolute;width:100%;}/*!sc*/
data-styled.g199[id="SubNavigationstyles__StyledSubNavigation-sc-k2wuim-0"]{content:"kOoZiF,"}/*!sc*/
.hpjUfA{align-items:center;display:flex;gap:var(--layout-spacing-size-1, 8px);list-style-type:none;margin:0 auto;max-width:1360px;overflow:scroll;overflow-y:hidden;padding:var(--layout-spacing-size-1p5, 12px) var(--layout-spacing-size-3, 24px);scrollbar-width:none;}/*!sc*/
.hpjUfA::-webkit-scrollbar{display:none;}/*!sc*/
.hpjUfA >li:first-child{margin-left:auto;}/*!sc*/
data-styled.g200[id="SubNavigationstyles__StyledSubNavigationContainer-sc-k2wuim-1"]{content:"hpjUfA,"}/*!sc*/
.doRbmw{color:var(--text-default);}/*!sc*/
.doRbmw a{align-items:center;border-radius:64px;display:flex;gap:var(--layout-spacing-size-1, 8px);padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-2, 16px);transition:background-color 300ms ease-in-out,color 300ms ease-in-out;white-space:nowrap;width:max-content;background-color:var(--tabs-selected);color:var(--tabs-text-selected);font-weight:500;}/*!sc*/
.doRbmw a:hover{background-color:var(--tabs-hover);color:var(--text-default);background-color:var(--tabs-selected);color:var(--tabs-text-selected);}/*!sc*/
.doRbmw a >svg{flex-shrink:0;}/*!sc*/
.hMutGM{color:var(--text-default);}/*!sc*/
.hMutGM a{align-items:center;border-radius:64px;display:flex;gap:var(--layout-spacing-size-1, 8px);padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-2, 16px);transition:background-color 300ms ease-in-out,color 300ms ease-in-out;white-space:nowrap;width:max-content;}/*!sc*/
.hMutGM a:hover{background-color:var(--tabs-hover);color:var(--text-default);}/*!sc*/
.hMutGM a >svg{flex-shrink:0;}/*!sc*/
data-styled.g201[id="SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2"]{content:"doRbmw,hMutGM,"}/*!sc*/
html{--sub-nav-height:var(--layout-spacing-size-8, 64px)!important;}/*!sc*/
data-styled.g202[id="sc-global-iAxuyN"]{content:"sc-global-iAxuyN1,"}/*!sc*/
.hjnEOf{align-items:center;background-color:var(--background-card);border-radius:999px;box-shadow:inset 0 0 0 1px var(--border-subtle);color:var(--text-secondary);display:flex;gap:var(--layout-spacing-size-1, 8px);margin-left:var(--layout-spacing-size-4, 32px);padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-2, 16px);width:max-content;}/*!sc*/
.hjnEOf svg{flex-shrink:0;height:var(--layout-spacing-size-2, 16px);width:var(--layout-spacing-size-2, 16px);}/*!sc*/
data-styled.g203[id="SubNavigationStyles__StyledCommunitySearch-sc-d7ee409e-0"]{content:"hjnEOf,"}/*!sc*/
@media (min-width:1024px){.eUiaNK >ul>li:first-child>a{margin-left:191px;}.eUiaNK >ul>li:last-child{margin-left:auto;}}/*!sc*/
data-styled.g204[id="SubNavigationStyles__StyledCommunitySubNavigation-sc-d7ee409e-1"]{content:"eUiaNK,"}/*!sc*/
.dha-Dsk{background-color:var(--navigation-tophat-background);display:none;padding:var(--layout-spacing-size-1, 8px) 0;visibility:hidden;}/*!sc*/
@media (min-width: 768px){.dha-Dsk{display:block;visibility:visible;}}/*!sc*/
data-styled.g205[id="TopBarstyles__StyledTopBar-sc-17n1n7p-0"]{content:"dha-Dsk,"}/*!sc*/
.kSWNYq{align-items:center;display:flex;gap:0 var(--layout-spacing-size-2, 16px);line-height:0;margin:0 auto;max-width:1360px;padding:0 var(--layout-spacing-size-3, 24px);}/*!sc*/
@media (min-width: 768px){.kSWNYq{justify-content:center;}}/*!sc*/
data-styled.g206[id="TopBarstyles__StyledTopBarContainer-sc-17n1n7p-1"]{content:"kSWNYq,"}/*!sc*/
.kPbLnT{display:flex;flex:1 1 auto;flex-direction:column;min-height:1.375em;overflow:hidden;position:relative;}/*!sc*/
data-styled.g207[id="TopBarstyles__StyledTopBarCTAs-sc-17n1n7p-2"]{content:"kPbLnT,"}/*!sc*/
.iahKgg{display:none;list-style-type:none;margin:0;padding:0;}/*!sc*/
@media (min-width: 1024px){.iahKgg{align-items:center;display:flex;flex:0 0 auto;gap:0 var(--layout-spacing-size-2, 16px);}}/*!sc*/
.iahKgg a{color:var(--text-on-color);display:block;text-align:center;transition:color 300ms ease-in-out;}/*!sc*/
.iahKgg a:hover{text-decoration:underline;text-underline-offset:var(--layout-spacing-size-0p25, 2px);}/*!sc*/
data-styled.g208[id="TopBarstyles__StyledTopBarLinks-sc-17n1n7p-3"]{content:"iahKgg,"}/*!sc*/
.hvjxun{background-color:var(--background-default);overflow-x:clip;position:relative;z-index:100;}/*!sc*/
.hvjxun::after{background-color:var(--border-transparent);bottom:0;content:'';height:1px;left:0;pointer-events:none;position:absolute;width:100%;}/*!sc*/
data-styled.g210[id="Headerstyles__StyledHeader-sc-9ucsot-0"]{content:"hvjxun,"}/*!sc*/
.hFtORd{align-items:center;display:flex;gap:var(--layout-spacing-size-2, 16px);margin:0 auto;max-width:1440px;padding:var(--layout-spacing-size-2, 16px) var(--layout-spacing-size-3, 24px);}/*!sc*/
@media (min-width: 768px){.hFtORd{gap:var(--layout-spacing-size-3, 24px);padding:var(--layout-spacing-size-2, 16px) var(--layout-spacing-size-8, 64px);}}/*!sc*/
data-styled.g211[id="Headerstyles__StyledHeaderContainer-sc-9ucsot-1"]{content:"hFtORd,"}/*!sc*/
.dTUndf{line-height:0;margin-right:auto;}/*!sc*/
data-styled.g212[id="Headerstyles__StyledHeaderLogo-sc-9ucsot-2"]{content:"dTUndf,"}/*!sc*/
.eEMGyf{color:var(--text-default);height:var(--icon-size-4, 32px);padding:0;width:var(--icon-size-4, 32px);}/*!sc*/
@media (min-width: 1024px){.eEMGyf{display:none;}}/*!sc*/
data-styled.g213[id="Headerstyles__StyledHeaderToggle-sc-9ucsot-3"]{content:"eEMGyf,"}/*!sc*/
.gIHTLv{display:none;}/*!sc*/
@media (min-width: 768px){.gIHTLv{display:block;margin-left:auto;}}/*!sc*/
data-styled.g214[id="Headerstyles__StyledHeaderContent-sc-9ucsot-4"]{content:"gIHTLv,"}/*!sc*/
.cLiNrn{background-color:var(--border-subtle);border-radius:999px;display:none;height:var(--layout-spacing-size-3, 24px);width:1.5px;}/*!sc*/
.Headerstyles__StyledHeaderUtilities-sc-9ucsot-5~.cLiNrn{display:block;}/*!sc*/
@media (min-width: 1024px){.Headerstyles__StyledHeaderUtilities-sc-9ucsot-5~.cLiNrn{display:none;}}/*!sc*/
@media (min-width: 768px){.cLiNrn{display:block;}}/*!sc*/
@media (min-width: 1024px){.cLiNrn{display:none;}}/*!sc*/
data-styled.g216[id="Headerstyles__StyledDivider-sc-9ucsot-6"]{content:"cLiNrn,"}/*!sc*/
.dGslKK{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background-color:rgba(255,255,255,0.1);height:calc(100% - 40px);left:0;opacity:0;pointer-events:none;position:fixed;top:40px;transition:opacity 300ms ease-in-out;width:100%;z-index:-1;}/*!sc*/
data-styled.g217[id="Headerstyles__StyledBackdrop-sc-9ucsot-7"]{content:"dGslKK,"}/*!sc*/
.eGMkcm{flex-shrink:0;opacity:1;z-index:3;}/*!sc*/
.eGMkcm svg{height:20px;width:20px;}/*!sc*/
@media (min-width: 1024px){.eGMkcm{opacity:0;transform:translateX(-8px);transition:transform 300ms ease-in-out,opacity 300ms ease-in-out;will-change:transform,opacity;}}/*!sc*/
data-styled.g219[id="Cardstyles__StyledChevron-sc-ngsvtw-0"]{content:"eGMkcm,"}/*!sc*/
.knFIpf{align-items:center;border-radius:8px;display:flex;flex-shrink:0;gap:var(--layout-spacing-size-1p5, 12px);justify-content:space-between;overflow:hidden;padding:var(--layout-spacing-size-1p5, 12px) var(--layout-spacing-size-1, 8px);position:relative;transition:background-color 300ms ease-in-out;}/*!sc*/
.knFIpf:hover{background-color:var(--navigation-www-nav-card-hover);cursor:pointer;}/*!sc*/
@media (hover:hover) and (pointer:fine){.knFIpf:hover .Cardstyles__StyledChevron-sc-ngsvtw-0{opacity:1;transform:translateX(0);}}/*!sc*/
data-styled.g220[id="Cardstyles__StyledCard-sc-ngsvtw-1"]{content:"knFIpf,"}/*!sc*/
.bDtbQM{display:flex;flex-direction:column;position:relative;z-index:2;}/*!sc*/
data-styled.g221[id="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2"]{content:"bDtbQM,"}/*!sc*/
.oqBja{align-items:center;display:flex;gap:var(--layout-spacing-size-1, 8px);}/*!sc*/
.oqBja svg{color:var(--icon-brand);flex-shrink:0;height:auto;width:var(--icon-size-4, 32px);}/*!sc*/
data-styled.g222[id="Cardstyles__StyledCardHeading-sc-ngsvtw-3"]{content:"oqBja,"}/*!sc*/
.kIDpRw{display:flex;flex-direction:column;gap:var(--layout-spacing-size-1, 8px);}/*!sc*/
@media (min-width: 1024px){.kIDpRw{display:none;}}/*!sc*/
data-styled.g223[id="Cardstyles__StyledCardContent-sc-ngsvtw-4"]{content:"kIDpRw,"}/*!sc*/
.bParWh{display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:1440px;width:100%;}/*!sc*/
@media (min-width: 1024px){.bParWh{flex-direction:row;gap:var(--layout-spacing-size-3, 24px);height:620px;padding:var(--layout-spacing-size-3, 24px) var(--layout-spacing-size-5, 40px);}}/*!sc*/
@media (min-width: 1280px){.bParWh{height:486px;padding:var(--layout-spacing-size-4, 32px) var(--layout-spacing-size-6, 48px);}}/*!sc*/
@media (min-width: 1440px){.bParWh{height:464px;}}/*!sc*/
data-styled.g225[id="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0"]{content:"bParWh,"}/*!sc*/
.jlmMNW{background-color:var(--background-default);display:none;height:calc(100dvh - 64px);left:0;line-height:1;overflow:hidden;position:absolute;top:0;width:100%;z-index:100;}/*!sc*/
@media (min-width: 768px){.jlmMNW{background-color:var(--background-default);border-radius:0 0 24px 24px;box-shadow:8px 8px 12px 0 light-dark(rgba(0, 12, 42, 0.1), rgba(247, 248, 251, 0.1));height:auto;}}/*!sc*/
@media (min-width: 1024px){.jlmMNW{display:block;height:0;opacity:0;top:100%;transition:opacity 300ms ease-in-out 300ms;}}/*!sc*/
data-styled.g226[id="Dropdownstyles__StyledDropdown-sc-16wobc6-1"]{content:"jlmMNW,"}/*!sc*/
.cSVflR{display:none;}/*!sc*/
@media (min-width: 1024px){.cSVflR{display:flex;flex-direction:column;gap:var(--layout-spacing-size-0p5, 4px);padding:var(--layout-spacing-size-2, 16px) var(--layout-spacing-size-1, 8px) 0;}}/*!sc*/
data-styled.g229[id="Dropdownstyles__StyledDropdownHeadingContainer-sc-16wobc6-4"]{content:"cSVflR,"}/*!sc*/
.cbXDdB{height:100%;overflow:auto;transform:translateX(0);transition:transform 300ms ease-in-out;}/*!sc*/
@media (min-width: 768px){.cbXDdB{height:auto;}}/*!sc*/
@media (min-width: 1024px){.cbXDdB{background-color:var(--background-card);border:1px solid var(--border-transparent);border-radius:16px;height:100%;max-height:100%;max-width:320px;padding:var(--layout-spacing-size-2, 16px);transform:translateX(0);width:100%;}}/*!sc*/
data-styled.g231[id="Dropdownstyles__StyledFeature-sc-16wobc6-6"]{content:"cbXDdB,"}/*!sc*/
.fGva-dE{display:flex;flex-direction:column;flex-shrink:0;gap:var(--layout-spacing-size-2, 16px);height:100%;max-height:100%;overflow-y:auto;padding:0 var(--layout-spacing-size-0p25, 2px) var(--layout-spacing-size-3, 24px) var(--layout-spacing-size-3, 24px);scrollbar-gutter:stable;}/*!sc*/
.fGva-dE::-webkit-scrollbar{appearance:none;}/*!sc*/
.fGva-dE::-webkit-scrollbar:vertical{width:var(--layout-spacing-size-1, 8px);}/*!sc*/
.fGva-dE::-webkit-scrollbar-track{background:transparent;border:none;box-shadow:none;}/*!sc*/
.fGva-dE::-webkit-scrollbar-thumb{background-color:var(--navigation-scrollbar-thumb);border:var(--layout-spacing-size-0p25, 2px) solid var(--border-subtle);border-radius:999px;}/*!sc*/
.fGva-dE .Cardstyles__StyledCard-sc-ngsvtw-1{padding:var(--layout-spacing-size-1p5, 12px);}/*!sc*/
@media (min-width: 1024px){.fGva-dE{padding:0 var(--layout-spacing-size-2, 16px) 0 0;}.fGva-dE .Cardstyles__StyledCard-sc-ngsvtw-1{padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-1p5, 12px);}}/*!sc*/
data-styled.g232[id="Dropdownstyles__StyledFeatureInner-sc-16wobc6-7"]{content:"fGva-dE,"}/*!sc*/
.zkNQV{display:none;flex-direction:column;gap:var(--layout-spacing-size-3, 24px);height:0;max-height:calc(100% - 64px);overflow:auto;padding:0;transform:translateX(100%);transition:transform 300ms ease-in-out;}/*!sc*/
@media (min-width: 768px){.zkNQV{height:0;}}/*!sc*/
@media (min-width: 1024px){.zkNQV{max-height:none;padding:0;transform:translateX(0);}}/*!sc*/
data-styled.g233[id="Dropdownstyles__StyledDropdownContent-sc-16wobc6-8"]{content:"zkNQV,"}/*!sc*/
.howKId{margin-top:auto;}/*!sc*/
@media (min-width: 768px){.howKId{flex:1;margin-top:0;}}/*!sc*/
.howKId a{align-items:center;display:flex;gap:var(--layout-spacing-size-1, 8px);justify-content:center;width:100%;}/*!sc*/
.howKId a svg{width:var(--icon-size-2, 16px);}/*!sc*/
data-styled.g235[id="Dropdownstyles__StyledButton-sc-16wobc6-10"]{content:"howKId,"}/*!sc*/
.cSrrey{padding:var(--layout-spacing-size-3, 24px) var(--layout-spacing-size-3, 24px) 0 var(--layout-spacing-size-3, 24px);}/*!sc*/
@media (min-width: 1024px){.cSrrey{display:none;}}/*!sc*/
.cSrrey svg:last-of-type{flex-shrink:0;}/*!sc*/
data-styled.g237[id="Dropdownstyles__StyledBreadcrumbContainer-sc-16wobc6-12"]{content:"cSrrey,"}/*!sc*/
.dEpoGG{flex-grow:1;z-index:100;}/*!sc*/
@media screen and (max-width:calc(604px - 1px)){.dEpoGG{height:calc(100vh - 64px);}}/*!sc*/
@media screen and (max-width:calc(1024px - 1px)){.dEpoGG{background-color:var(--background-default);border-radius:0 0 24px 24px;box-shadow:8px 8px 12px 0 light-dark(rgba(0, 12, 42, 0.1), rgba(247, 248, 251, 0.1));left:0;padding:var(--layout-spacing-size-3, 24px);position:absolute;top:100%;transform:translateX(100%);transition:transform 300ms ease-in-out;width:100%;}.dEpoGG body{overflow-x:hidden;}}/*!sc*/
data-styled.g238[id="Navigationstyles__StyledNavigation-sc-16d688r-0"]{content:"dEpoGG,"}/*!sc*/
.fJtOUD{display:flex;flex-direction:column;gap:var(--layout-spacing-size-5, 40px);height:100%;justify-content:space-between;}/*!sc*/
@media (min-width: 1024px){.fJtOUD{align-items:center;flex-direction:row;gap:0;}}/*!sc*/
data-styled.g239[id="Navigationstyles__StyledNavigationContainer-sc-16d688r-1"]{content:"fJtOUD,"}/*!sc*/
.dJPxZV{display:flex;flex-direction:column;gap:var(--layout-spacing-size-2, 16px);list-style-type:none;margin:0;padding:0;}/*!sc*/
@media (min-width: 1024px){.dJPxZV{align-items:center;flex-direction:row;flex-grow:1;gap:0;}}/*!sc*/
data-styled.g240[id="Navigationstyles__StyledNavigationList-sc-16d688r-2"]{content:"dJPxZV,"}/*!sc*/
@media (min-width: 1024px){.cmwaSz{border-bottom:0;}.cmwaSz >a,.cmwaSz >button{transition:background-color 300ms ease-in-out,color 300ms ease-in-out;}.cmwaSz svg{flex-shrink:0;}@media (scripting:none){.cmwaSz .Dropdownstyles__StyledDropdown-sc-16wobc6-1{background-color:var(--background-default);}.cmwaSz:hover .Dropdownstyles__StyledDropdown-sc-16wobc6-1,.cmwaSz:focus-within .Dropdownstyles__StyledDropdown-sc-16wobc6-1{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:1;}.cmwaSz:hover >a,.cmwaSz:focus-within >a,.cmwaSz:hover >button,.cmwaSz:focus-within >button{background-color:var(--navigation-www-nav-card-hover);color:var(--text-primary);}.cmwaSz:hover >a svg,.cmwaSz:focus-within >a svg,.cmwaSz:hover >button svg,.cmwaSz:focus-within >button svg{transform:rotate(180deg);}}}/*!sc*/
@media (min-width: 1024px){.cmwaSz:first-child{margin-left:auto;}}/*!sc*/
@media (min-width: 1024px){.cmwaSz:last-child{margin-right:auto;}}/*!sc*/
.cmwaSz >a,.cmwaSz >button{align-items:center;border-radius:999px;color:var(--text-primary);display:flex;gap:var(--layout-spacing-size-0p25, 2px);justify-content:space-between;padding:var(--layout-spacing-size-1p5, 12px);position:relative;width:100%;}/*!sc*/
@media (min-width: 1024px){.cmwaSz >a,.cmwaSz >button{color:var(--text-default);justify-content:flex-start;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-2, 16px);width:auto;}}/*!sc*/
.cmwaSz >a::before,.cmwaSz >button::before{content:'';height:calc(100% + var(--layout-spacing-size-2, 16px));left:0;position:absolute;top:0;width:100%;}/*!sc*/
.cmwaSz >a svg,.cmwaSz >button svg{transform:rotate(-90deg);transition:transform 300ms ease-in-out;}/*!sc*/
@media (min-width: 1024px){.cmwaSz >a svg,.cmwaSz >button svg{transform:rotate(0);}}/*!sc*/
@media (min-width: 1024px){.dHSJyS{border-bottom:0;}.dHSJyS >a,.dHSJyS >button{transition:background-color 300ms ease-in-out,color 300ms ease-in-out;}.dHSJyS svg{flex-shrink:0;}.dHSJyS::after{opacity:1;}.dHSJyS:hover >a,.dHSJyS:focus-within >a,.dHSJyS:hover >button,.dHSJyS:focus-within >button{background-color:var(--navigation-www-nav-card-hover);color:var(--text-primary);}.dHSJyS:hover >a svg,.dHSJyS:focus-within >a svg,.dHSJyS:hover >button svg,.dHSJyS:focus-within >button svg{transform:rotate(180deg);}@media (scripting:none){.dHSJyS .Dropdownstyles__StyledDropdown-sc-16wobc6-1{background-color:var(--background-default);}.dHSJyS:hover .Dropdownstyles__StyledDropdown-sc-16wobc6-1,.dHSJyS:focus-within .Dropdownstyles__StyledDropdown-sc-16wobc6-1{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:1;}.dHSJyS:hover >a,.dHSJyS:focus-within >a,.dHSJyS:hover >button,.dHSJyS:focus-within >button{background-color:var(--navigation-www-nav-card-hover);color:var(--text-primary);}.dHSJyS:hover >a svg,.dHSJyS:focus-within >a svg,.dHSJyS:hover >button svg,.dHSJyS:focus-within >button svg{transform:rotate(180deg);}}}/*!sc*/
@media (min-width: 1024px){.dHSJyS:first-child{margin-left:auto;}}/*!sc*/
@media (min-width: 1024px){.dHSJyS:last-child{margin-right:auto;}}/*!sc*/
.dHSJyS >a,.dHSJyS >button{align-items:center;border-radius:999px;color:var(--text-primary);display:flex;gap:var(--layout-spacing-size-0p25, 2px);justify-content:space-between;padding:var(--layout-spacing-size-1p5, 12px);position:relative;width:100%;}/*!sc*/
@media (min-width: 1024px){.dHSJyS >a,.dHSJyS >button{color:var(--text-default);justify-content:flex-start;padding:var(--layout-spacing-size-1, 8px) var(--layout-spacing-size-2, 16px);width:auto;}}/*!sc*/
.dHSJyS >a::before,.dHSJyS >button::before{content:'';height:calc(100% + var(--layout-spacing-size-2, 16px));left:0;position:absolute;top:0;width:100%;}/*!sc*/
.dHSJyS >a svg,.dHSJyS >button svg{transform:rotate(-90deg);transition:transform 300ms ease-in-out;}/*!sc*/
@media (min-width: 1024px){.dHSJyS >a svg,.dHSJyS >button svg{transform:rotate(0);}}/*!sc*/
data-styled.g241[id="Navigationstyles__StyledNavigationItem-sc-16d688r-3"]{content:"cmwaSz,dHSJyS,"}/*!sc*/
@media (min-width: 768px){.iCTJnP{display:none;}}/*!sc*/
data-styled.g242[id="Navigationstyles__StyledNavigationContent-sc-16d688r-4"]{content:"iCTJnP,"}/*!sc*/
.kplepr{display:none;}/*!sc*/
@media (min-width: 1024px){.kplepr{background-color:var(--background-default);display:block;height:0;left:0;position:absolute;top:100%;transition:height 300ms ease-in-out;width:100%;}@media (prefers-reduced-motion){.kplepr{transition:none;}}}/*!sc*/
data-styled.g243[id="Navigationstyles__StyledNavigationBackground-sc-16d688r-5"]{content:"kplepr,"}/*!sc*/
.ILcdV{background-color:var(--background-default);border-bottom:1px solid var(--border-transparent);display:flex;flex-direction:column-reverse;}/*!sc*/
@media (min-width:1440px){.ILcdV{flex-direction:row;gap:var(--layout-spacing-size-4, 32px);min-height:392px;padding-left:max(calc((100% - 1312px) / 2),var(--layout-spacing-size-8, 64px));}}/*!sc*/
data-styled.g574[id="HeroCommunityStyles__StyledHeroCommunity-sc-6ee0580f-0"]{content:"ILcdV,"}/*!sc*/
.dRSNVP{display:flex;flex-direction:column;gap:var(--layout-spacing-size-3, 24px);padding:var(--layout-spacing-size-3, 24px) var(--layout-spacing-size-5, 40px);}/*!sc*/
@media (min-width:1440px){.dRSNVP{align-self:center;flex:0 0 752px;gap:var(--layout-spacing-size-4, 32px);padding:var(--layout-spacing-size-4, 32px) 0;}}/*!sc*/
data-styled.g575[id="HeroCommunityStyles__StyledHeroCommunityContent-sc-6ee0580f-1"]{content:"dRSNVP,"}/*!sc*/
@keyframes fhVXV{0%,100%{opacity:1;}50%{opacity:0.4;}}/*!sc*/
data-styled.g577[id="sc-keyframes-fhVXV"]{content:"fhVXV,"}/*!sc*/
.hGqmBu{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:40px;width:70%;}/*!sc*/
.eDcBjS{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:40%;}/*!sc*/
.LoiJG{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:80%;}/*!sc*/
.gphyTo{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:60%;}/*!sc*/
.gKvFJh{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:70%;}/*!sc*/
.dFnCee{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:55%;}/*!sc*/
.fqAubd{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:65%;}/*!sc*/
.jEJlav{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:100%;}/*!sc*/
.gUcKjj{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:90%;}/*!sc*/
.eOcMns{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:16px;width:75%;}/*!sc*/
.gheRQT{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:16px;height:240px;width:100%;}/*!sc*/
.dthJHY{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:70%;}/*!sc*/
.jNUMKH{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:55%;}/*!sc*/
.cQGYVn{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:80%;}/*!sc*/
.bgaxrt{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:60%;}/*!sc*/
.hkRcxh{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:75%;}/*!sc*/
.lgwbfa{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:50%;}/*!sc*/
.bGrric{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:65%;}/*!sc*/
.aHXFz{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:20px;width:40%;}/*!sc*/
.dQXUxI{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:32px;width:320px;}/*!sc*/
.fXjhGq{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:8px;height:48px;width:100%;}/*!sc*/
.blwPcQ{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:6px;height:36px;width:180px;}/*!sc*/
.hEyCTf{animation:fhVXV 1.5s ease-in-out infinite;background-color:var(--background-card-emphasized);border-radius:16px;height:280px;width:100%;}/*!sc*/
data-styled.g578[id="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0"]{content:"hGqmBu,eDcBjS,LoiJG,gphyTo,gKvFJh,dFnCee,fqAubd,jEJlav,gUcKjj,eOcMns,gheRQT,dthJHY,jNUMKH,cQGYVn,bgaxrt,hkRcxh,lgwbfa,bGrric,aHXFz,dQXUxI,fXjhGq,blwPcQ,hEyCTf,"}/*!sc*/
.bBcjMB{--sidebar-top-padding:var(--layout-spacing-size-10, 80px);--sidebar-bottom-padding:var(--layout-spacing-size-10, 80px);padding:var(--sidebar-top-padding) 0 var(--sidebar-bottom-padding);}/*!sc*/
data-styled.g579[id="SidebarLayoutStyles__StyledSidebarLayout-sc-25e1a3be-0"]{content:"bBcjMB,"}/*!sc*/
.hYJmYh{--sidebar-width:192px;display:grid;gap:var(--layout-spacing-size-4, 32px);grid-template-columns:minmax(0,1fr);margin:0 auto;max-width:1440px;padding:0 var(--layout-spacing-size-3, 24px);}/*!sc*/
@media (min-width:768px){.hYJmYh{gap:var(--layout-spacing-size-7, 56px);padding:0 var(--layout-spacing-size-5, 40px);}}/*!sc*/
@media (min-width:1280px){.hYJmYh{padding:0 var(--layout-spacing-size-8, 64px);}}/*!sc*/
@media (min-width: 1024px){.hYJmYh{gap:clamp( 2rem, -10.19047619047619rem + 19.047619047619047vw, 6rem );grid-template-columns:var(--sidebar-width) minmax(0, 1fr);}}/*!sc*/
@media (min-width: 1280px){.hYJmYh{gap:clamp( 2rem, -10.19047619047619rem + 19.047619047619047vw, 6rem );grid-template-columns:var(--sidebar-width) minmax(0, 1fr) var(--sidebar-width);}}/*!sc*/
.bXCYIQ{--sidebar-width:192px;display:grid;gap:var(--layout-spacing-size-4, 32px);grid-template-columns:minmax(0,1fr);margin:0 auto;max-width:1440px;padding:0 var(--layout-spacing-size-3, 24px);}/*!sc*/
@media (min-width:768px){.bXCYIQ{gap:var(--layout-spacing-size-7, 56px);padding:0 var(--layout-spacing-size-5, 40px);}}/*!sc*/
@media (min-width:1280px){.bXCYIQ{padding:0 var(--layout-spacing-size-8, 64px);}}/*!sc*/
@media (min-width: 1280px){.bXCYIQ{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);}}/*!sc*/
data-styled.g580[id="SidebarLayoutStyles__StyledSidebarLayoutContainer-sc-25e1a3be-1"]{content:"hYJmYh,bXCYIQ,"}/*!sc*/
.blsdAN{display:none;position:relative;z-index:5;}/*!sc*/
@media (min-width:1024px){.blsdAN{display:block;}}/*!sc*/
.KeKat{display:none;position:relative;z-index:5;}/*!sc*/
@media (min-width:1280px){.KeKat{display:block;}}/*!sc*/
data-styled.g581[id="SidebarLayoutStyles__StyledSidebarLayoutLeftSidebar-sc-25e1a3be-2"]{content:"blsdAN,KeKat,"}/*!sc*/
.efLvCy{display:none;}/*!sc*/
@media (min-width:1280px){.efLvCy{display:block;}}/*!sc*/
data-styled.g582[id="SidebarLayoutStyles__StyledSidebarLayoutRightSidebar-sc-25e1a3be-3"]{content:"efLvCy,"}/*!sc*/
.kiiszA{display:flex;flex-direction:column;gap:var(--layout-spacing-size-3, 24px);}/*!sc*/
data-styled.g583[id="SidebarLayoutStyles__StyledSidebarLayoutLeftSidebarContainer-sc-25e1a3be-4"]{content:"kiiszA,"}/*!sc*/
.iNOUik{position:relative;}/*!sc*/
data-styled.g585[id="SidebarLayoutStyles__StyledSidebarLayoutContent-sc-25e1a3be-6"]{content:"iNOUik,"}/*!sc*/
.hlgzqc{display:flex;flex-direction:column;gap:var(--layout-spacing-size-5, 40px);}/*!sc*/
@media (min-width:768px){.hlgzqc{gap:var(--layout-spacing-size-6, 48px);}}/*!sc*/
@media (min-width:1024px){.hlgzqc{gap:var(--layout-spacing-size-8, 64px);}}/*!sc*/
data-styled.g590[id="TutorialContentStyles__StyledTutorialContent-sc-6ceff51f-0"]{content:"hlgzqc,"}/*!sc*/
.hquZAX{display:flex;flex-direction:column;min-height:100vh;}/*!sc*/
data-styled.g600[id="CommunityDetailSkeletonStyles__StyledCommunityDetailSkeleton-sc-7e7f554c-0"]{content:"hquZAX,"}/*!sc*/
.bToyVK{background-color:var(--background-card);border-radius:16px;box-shadow:inset 0 0 0 var(--layout-spacing-size-0p25, 2px) var(--border-subtle);padding:var(--layout-spacing-size-3, 24px);}/*!sc*/
data-styled.g601[id="SidebarCTAStyles__StyledSidebarCTA-sc-312e799-0"]{content:"bToyVK,"}/*!sc*/
.jYQOOw{background-color:var(--background-accent-bold);border:2px solid var(--border-subtle);border-radius:16px;display:flex;flex-direction:column;gap:var(--layout-spacing-size-3, 24px);padding:var(--layout-spacing-size-3, 24px);width:100%;}/*!sc*/
data-styled.g604[id="CommunityIndexTemplateStyles__StyledSearchCard-sc-61226673-2"]{content:"jYQOOw,"}/*!sc*/
.eUmtnk{display:flex;flex-direction:column;gap:var(--layout-spacing-size-1, 8px);}/*!sc*/
data-styled.g605[id="CommunityIndexTemplateStyles__StyledSearchCardHeader-sc-61226673-3"]{content:"eUmtnk,"}/*!sc*/
.jVUPTH{display:flex;flex-direction:column;gap:var(--layout-spacing-size-3, 24px);}/*!sc*/
data-styled.g616[id="TutorialIndexTemplateStyles__StyledTutorialsSidebar-sc-cc1238f0-6"]{content:"jVUPTH,"}/*!sc*/
</style></head><body><div hidden=""><!--$--><!--/$--></div><div class="NotificationsStyles__NotificationsContainer-sc-7b760a16-0 hfPme"></div><div class="Layout__StyledLayout-sc-7fe895c5-0 gHXoLg"><div class="HeaderStyles__StyledHeader-sc-5192cbe3-0 lmmsMN"><div aria-label="Top Bar" class="TopBarstyles__StyledTopBar-sc-17n1n7p-0 dha-Dsk"><nav class="TopBarstyles__StyledTopBarContainer-sc-17n1n7p-1 kSWNYq"><div class="TopBarstyles__StyledTopBarCTAs-sc-17n1n7p-2 kPbLnT"></div><ul class="TopBarstyles__StyledTopBarLinks-sc-17n1n7p-3 iahKgg"><li class="Typographystyles-sc-o7qsl9-0 elVJvi"><a href="/blog">Blog</a></li><li class="Typographystyles-sc-o7qsl9-0 elVJvi"><a href="https://docs.digitalocean.com/products">Docs</a></li><li class="Typographystyles-sc-o7qsl9-0 elVJvi"><a href="/careers">Careers</a></li><li class="Typographystyles-sc-o7qsl9-0 elVJvi"><a href="/support">Get Support</a></li><li class="Typographystyles-sc-o7qsl9-0 elVJvi"><a href="/company/contact/sales?referrer=tophat">Contact Sales</a></li></ul></nav></div><div class="Headerstyles__StyledBackdrop-sc-9ucsot-7 dGslKK"></div><header class="Headerstyles__StyledHeader-sc-9ucsot-0 hvjxun"><div class="Headerstyles__StyledHeaderContainer-sc-9ucsot-1 hFtORd"><div class="Headerstyles__StyledHeaderLogo-sc-9ucsot-2 dTUndf"><a href="/"><span class="Typographystyles-sc-o7qsl9-0 knePS">DigitalOcean</span><div aria-hidden="true" class="DigitalOceanStyles__StyledLogo-sc-5322d8c4-1 JGXYR"><svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 90 90" tabindex="-1" class="DigitalOceanSmileyStyles__StyledSvg-sc-64ca7b97-4 kNCvbu"><circle cx="45" cy="45" r="36.25" fill="none" stroke="currentColor" stroke-width="17.5" stroke-dasharray="170.824100538945 56.941366846315" stroke-dashoffset="113.88273369263" class="DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0 dNYLTy"></circle><rect x="3.25" y="61.5" width="11" height="11" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1 lcppJb"></rect><rect x="14.25" y="72.5" width="13.5" height="13.5" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2 gempjk"></rect><rect x="27.5" y="55.25" width="17.25" height="17.25" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3 dvyWcr"></rect></svg><svg xmlns="http://www.w3.org/2000/svg" height="32" viewBox="32 0 159 32" fill="currentColor" class="DigitalOceanStyles__StyledText-sc-5322d8c4-0 AvLth"><path d="M57.242 9.305c-1.835-1.254-4.129-1.9-6.806-1.9h-5.812v18.399h5.812c2.677 0 4.971-.685 6.806-2.015.994-.722 1.797-1.711 2.333-2.965.535-1.255.841-2.699.841-4.334 0-1.635-.268-3.079-.841-4.296-.536-1.254-1.3-2.242-2.333-2.889Zm-9.213 1.179h1.835c2.027 0 3.709.38 4.971 1.178 1.415.837 2.141 2.471 2.141 4.79 0 2.395-.726 4.068-2.141 4.98-1.224.798-2.868 1.217-4.933 1.217h-1.835V10.484h-.038Zm16.479-3.346c-.574 0-1.032.191-1.415.571-.382.38-.612.836-.612 1.406s.192 1.027.574 1.445c.382.38.879.57 1.453.57.574 0 1.032-.19 1.453-.57.382-.38.574-.875.574-1.445 0-.57-.192-1.026-.574-1.406-.421-.342-.918-.571-1.453-.571Zm-1.683 5.664h3.288v12.963h-3.288zm15.177 1.103c-.994-.874-2.103-1.369-3.288-1.369-1.797 0-3.327.609-4.474 1.863-1.185 1.217-1.759 2.775-1.759 4.638 0 1.825.574 3.383 1.721 4.638 1.147 1.216 2.677 1.824 4.474 1.824 1.262 0 2.332-.342 3.25-1.026v.304c0 1.064-.306 1.901-.841 2.471-.574.57-1.377.874-2.333.874-1.529 0-2.447-.608-3.632-2.128l-2.218 2.128.076.076c.498.685 1.224 1.331 2.18 1.939.956.608 2.218.95 3.633.95 1.95 0 3.517-.608 4.664-1.786 1.148-1.179 1.759-2.775 1.759-4.714V12.803h-3.212v1.102Zm-.878 7.641c-.574.646-1.3.95-2.256.95-.956 0-1.683-.304-2.218-.95-.574-.646-.841-1.483-.841-2.547s.267-1.901.841-2.547c.574-.646 1.3-.95 2.218-.95.956 0 1.682.304 2.256.95.573.646.841 1.521.841 2.547.038 1.064-.268 1.901-.841 2.547Zm6.883-8.744h3.288v12.963h-3.288zm1.685-5.664c-.574 0-1.033.191-1.415.571-.382.38-.612.836-.612 1.406s.191 1.027.574 1.445c.382.38.879.57 1.453.57.573 0 1.032-.19 1.453-.57.382-.38.573-.875.573-1.445 0-.57-.191-1.026-.573-1.406-.421-.342-.88-.571-1.453-.571Zm8.793 2.167h-3.212v3.498h-1.874v2.965h1.874v5.36c0 1.672.344 2.889.994 3.573.689.684 1.874 1.064 3.518 1.064.535 0 1.071 0 1.606-.038h.153v-2.965l-1.109.076c-.765 0-1.3-.152-1.568-.418-.267-.266-.382-.836-.382-1.71v-4.904h3.059v-2.965h-3.059V9.305Zm18.43-1.939h3.288v18.4h-3.288v-18.4Zm36.364 13.762c-.574.646-1.186 1.216-1.645 1.52-.458.304-1.032.418-1.682.418-.956 0-1.759-.342-2.371-1.064-.612-.722-.956-1.635-.956-2.737s.306-2.015.918-2.737c.612-.722 1.415-1.064 2.371-1.064 1.07 0 2.179.646 3.135 1.786l2.18-2.053c-1.415-1.824-3.212-2.661-5.354-2.661-1.797 0-3.364.647-4.626 1.939-1.262 1.293-1.912 2.889-1.912 4.828 0 1.939.65 3.573 1.912 4.828 1.262 1.292 2.829 1.939 4.626 1.939 2.371 0 4.283-1.027 5.583-2.89l-2.179-2.052Zm13.459-6.501c-.459-.646-1.109-1.178-1.874-1.558-.765-.38-1.683-.57-2.715-.57-1.835 0-3.327.684-4.435 1.976-1.109 1.331-1.645 2.965-1.645 4.866 0 1.977.612 3.574 1.797 4.828 1.186 1.216 2.792 1.863 4.742 1.863 2.218 0 4.015-.875 5.391-2.623l.077-.076-2.141-2.053c-.192.228-.498.494-.727.76-.306.304-.612.532-.956.684a3.856 3.856 0 0 1-1.644.381c-.918 0-1.644-.266-2.218-.799-.535-.494-.841-1.14-.918-1.976h8.68l.039-1.179c0-.836-.115-1.635-.345-2.395-.305-.798-.65-1.482-1.108-2.129Zm-7.15 3.042a3.28 3.28 0 0 1 .841-1.521c.459-.418 1.032-.646 1.721-.646.803 0 1.414.228 1.835.684.382.418.612.912.65 1.521h-5.047v-.038Zm19.731-3.878c-.994-.836-2.37-1.255-4.091-1.255-1.109 0-2.103.229-3.021.685a5.297 5.297 0 0 0-2.218 2.09l.039.038 2.103 2.015c.879-1.368 1.835-1.862 3.097-1.862.688 0 1.262.19 1.682.532.421.342.65.798.65 1.406v.647c-.803-.229-1.606-.381-2.409-.381-1.644 0-2.944.381-3.938 1.141-.994.76-1.491 1.863-1.491 3.231 0 1.217.42 2.205 1.262 2.927.841.722 1.911 1.065 3.173 1.065s2.409-.495 3.48-1.369v1.064h3.212V17.44c-.039-1.596-.536-2.813-1.53-3.649Zm-5.813 7.032c.383-.266.88-.38 1.568-.38a7.31 7.31 0 0 1 2.485.457v1.254c-.726.646-1.682.988-2.829.988-.574 0-.994-.114-1.3-.38-.306-.228-.459-.532-.459-.95 0-.418.153-.76.535-.989Zm19.922-6.804c-.918-1.026-2.18-1.52-3.824-1.52-1.3 0-2.37.38-3.135 1.102v-.798h-3.212v12.963h3.288v-7.147c0-.988.23-1.749.689-2.319.458-.57 1.108-.836 1.95-.836.726 0 1.3.228 1.72.722.421.494.612 1.178.612 2.053v7.489h3.288v-7.489c0-1.787-.458-3.193-1.376-4.22Zm-80.64-.228c-.994-.836-2.371-1.255-4.091-1.255-1.109 0-2.103.229-3.021.685a5.291 5.291 0 0 0-2.218 2.09l.038.038 2.103 2.015c.88-1.368 1.836-1.862 3.098-1.862.688 0 1.261.19 1.682.532.421.342.65.798.65 1.406v.647c-.803-.229-1.606-.381-2.409-.381-1.644 0-2.944.381-3.938 1.141-.994.76-1.492 1.863-1.492 3.231 0 1.217.421 2.205 1.262 2.927s1.912 1.065 3.174 1.065 2.409-.495 3.48-1.369v1.064h3.211V17.44c-.038-1.596-.535-2.813-1.529-3.649Zm-5.813 7.032c.383-.266.88-.38 1.568-.38a7.31 7.31 0 0 1 2.485.457v1.254c-.726.646-1.682.988-2.829.988-.574 0-.994-.114-1.3-.38-.306-.228-.459-.532-.459-.95 0-.418.153-.76.535-.989Zm25.082 5.209c-5.238 0-9.521-4.258-9.521-9.466 0-5.208 4.283-9.466 9.521-9.466 5.239 0 9.521 4.258 9.521 9.466 0 5.208-4.244 9.466-9.521 9.466Zm-.001-15.624c-3.403 0-6.156 2.737-6.156 6.12s2.753 6.121 6.156 6.121c3.403 0 6.156-2.738 6.156-6.121 0-3.383-2.753-6.12-6.156-6.12Z"></path></svg></div></a></div><nav links="[object Object],[object Object],[object Object],[object Object],[object Object]" aria-label="Main" class="Navigationstyles__StyledNavigation-sc-16d688r-0 dEpoGG"><div class="Navigationstyles__StyledNavigationContainer-sc-16d688r-1 fJtOUD"><ul class="Navigationstyles__StyledNavigationList-sc-16d688r-2 dJPxZV"><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 cmwaSz"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 eAWyXV">Products</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 jlmMNW"><div class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 bParWh"><div class="Dropdownstyles__StyledBreadcrumbContainer-sc-16wobc6-12 cSrrey"></div><div class="Dropdownstyles__StyledFeature-sc-16wobc6-6 cbXDdB"><div class="Dropdownstyles__StyledFeatureInner-sc-16wobc6-7 fGva-dE"><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Featured AI Products</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Compute</p></div><div class="Cardstyles__StyledCardContent-sc-ngsvtw-4 kIDpRw"><p class="Typographystyles-sc-o7qsl9-0 eorXRA">Build, deploy, and scale cloud compute resources</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Containers and Images</p></div><div class="Cardstyles__StyledCardContent-sc-ngsvtw-4 kIDpRw"><p class="Typographystyles-sc-o7qsl9-0 eorXRA">Safely store and manage containers and backups</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Managed Databases</p></div><div class="Cardstyles__StyledCardContent-sc-ngsvtw-4 kIDpRw"><p class="Typographystyles-sc-o7qsl9-0 eorXRA">Fully managed resources running popular database engines</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Management and Dev Tools</p></div><div class="Cardstyles__StyledCardContent-sc-ngsvtw-4 kIDpRw"><p class="Typographystyles-sc-o7qsl9-0 eorXRA">Control infrastructure and gather insights</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Networking</p></div><div class="Cardstyles__StyledCardContent-sc-ngsvtw-4 kIDpRw"><p class="Typographystyles-sc-o7qsl9-0 eorXRA">Secure and control traffic to apps</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Security</p></div><div class="Cardstyles__StyledCardContent-sc-ngsvtw-4 kIDpRw"><p class="Typographystyles-sc-o7qsl9-0 eorXRA">Help protect your account and resources with these security features</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Storage</p></div><div class="Cardstyles__StyledCardContent-sc-ngsvtw-4 kIDpRw"><p class="Typographystyles-sc-o7qsl9-0 eorXRA">Store and access any amount of data reliably in the cloud</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Dropdownstyles__StyledButton-sc-16wobc6-10 howKId"><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 jvaeQM" href="/products">Browse all products</a></div></div></div><div class="Dropdownstyles__StyledDropdownContent-sc-16wobc6-8 zkNQV"><div class="Dropdownstyles__StyledDropdownHeadingContainer-sc-16wobc6-4 cSVflR"><h3 class="Typographystyles-sc-o7qsl9-0 iCUcQf"></h3></div><div class="Gridstyles-sc-isu2n3-0 dNWMka"></div></div></div></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 cmwaSz"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 eAWyXV">Solutions</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 jlmMNW"><div class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 bParWh"><div class="Dropdownstyles__StyledBreadcrumbContainer-sc-16wobc6-12 cSrrey"></div><div class="Dropdownstyles__StyledFeature-sc-16wobc6-6 cbXDdB"><div class="Dropdownstyles__StyledFeatureInner-sc-16wobc6-7 fGva-dE"><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">AI/ML</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">CMS</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Data and IoT</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Developer Tools</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Gaming and Media</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Hosting</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Security and Networking</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Startups and SMBs</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Web and App Platforms</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Dropdownstyles__StyledButton-sc-16wobc6-10 howKId"><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 jvaeQM" href="/solutions">See all solutions</a></div></div></div><div class="Dropdownstyles__StyledDropdownContent-sc-16wobc6-8 zkNQV"><div class="Dropdownstyles__StyledDropdownHeadingContainer-sc-16wobc6-4 cSVflR"><h3 class="Typographystyles-sc-o7qsl9-0 iCUcQf"></h3></div><div class="Gridstyles-sc-isu2n3-0 dNWMka"></div></div></div></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 cmwaSz"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 eAWyXV">Developers</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 jlmMNW"><div class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 bParWh"><div class="Dropdownstyles__StyledBreadcrumbContainer-sc-16wobc6-12 cSrrey"></div><div class="Dropdownstyles__StyledFeature-sc-16wobc6-6 cbXDdB"><div class="Dropdownstyles__StyledFeatureInner-sc-16wobc6-7 fGva-dE"><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Community</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Documentation</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Developer Tools</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Get Involved</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Utilities and Help</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div></div></div><div class="Dropdownstyles__StyledDropdownContent-sc-16wobc6-8 zkNQV"><div class="Dropdownstyles__StyledDropdownHeadingContainer-sc-16wobc6-4 cSVflR"><h3 class="Typographystyles-sc-o7qsl9-0 iCUcQf"></h3></div><div class="Gridstyles-sc-isu2n3-0 dNWMka"></div></div></div></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 cmwaSz"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 eAWyXV">Partners</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 jlmMNW"><div class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 bParWh"><div class="Dropdownstyles__StyledBreadcrumbContainer-sc-16wobc6-12 cSrrey"></div><div class="Dropdownstyles__StyledFeature-sc-16wobc6-6 cbXDdB"><div class="Dropdownstyles__StyledFeatureInner-sc-16wobc6-7 fGva-dE"><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Become a Partner</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div><div class="Cardstyles__StyledCard-sc-ngsvtw-1 knFIpf"><div class="Cardstyles__StyledCardContentContainer-sc-ngsvtw-2 bDtbQM"><div class="Cardstyles__StyledCardHeading-sc-ngsvtw-3 oqBja"><p class="Typographystyles-sc-o7qsl9-0 dOfJkp">Marketplace</p></div></div><div class="Cardstyles__StyledChevron-sc-ngsvtw-0 eGMkcm"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--icon-primary)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></div></div></div></div><div class="Dropdownstyles__StyledDropdownContent-sc-16wobc6-8 zkNQV"><div class="Dropdownstyles__StyledDropdownHeadingContainer-sc-16wobc6-4 cSVflR"><h3 class="Typographystyles-sc-o7qsl9-0 iCUcQf"></h3></div><div class="Gridstyles-sc-isu2n3-0 dNWMka"></div></div></div></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 dHSJyS"><a href="/pricing"><span class="Typographystyles-sc-o7qsl9-0 eAWyXV">Pricing</span></a></li></ul><div class="Navigationstyles__StyledNavigationContent-sc-16d688r-4 iCTJnP"><ul class="HeaderStyles__StyledCTALinks-sc-5192cbe3-1 bxWEGZ"><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-5192cbe3-2 hnLqMW"><button aria-disabled="false" id="loginMenuTrigger" aria-haspopup="menu" aria-controls="loginmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 bPKRZR">Log in<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="loginmenu" aria-labelledby="loginMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-8cc9cb41-0 jjMSkz"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-8cc9cb41-1 iVVDgA"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-8cc9cb41-2 jYMvAI">Log in to:</li><button aria-label="close" type="button" class="ActionMenuStyles__StyledCloseButton-sc-8cc9cb41-3 gQhTmM"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--icon-default)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&amp;error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&amp;type=login"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://cloud.digitalocean.com/login"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-5192cbe3-2 hnLqMW"><button aria-disabled="false" id="signupMenuTrigger" aria-haspopup="menu" aria-controls="signupmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 lcRBhP">Sign up<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="signupmenu" aria-labelledby="signupMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-8cc9cb41-0 jjMSkz"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-8cc9cb41-1 iVVDgA"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-8cc9cb41-2 jYMvAI">Sign up for:</li><button aria-label="close" type="button" class="ActionMenuStyles__StyledCloseButton-sc-8cc9cb41-3 gQhTmM"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--icon-default)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&amp;error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&amp;type=register"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://cloud.digitalocean.com/registrations/new"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li></ul></div></div><div style="height:0px" class="Navigationstyles__StyledNavigationBackground-sc-16d688r-5 kplepr"></div></nav><div class="Headerstyles__StyledHeaderContent-sc-9ucsot-4 gIHTLv"><ul class="HeaderStyles__StyledCTALinks-sc-5192cbe3-1 bxWEGZ"><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-5192cbe3-2 hnLqMW"><button aria-disabled="false" id="loginMenuTrigger" aria-haspopup="menu" aria-controls="loginmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 bPKRZR">Log in<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="loginmenu" aria-labelledby="loginMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-8cc9cb41-0 jjMSkz"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-8cc9cb41-1 iVVDgA"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-8cc9cb41-2 jYMvAI">Log in to:</li><button aria-label="close" type="button" class="ActionMenuStyles__StyledCloseButton-sc-8cc9cb41-3 gQhTmM"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--icon-default)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&amp;error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&amp;type=login"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://cloud.digitalocean.com/login"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-5192cbe3-2 hnLqMW"><button aria-disabled="false" id="signupMenuTrigger" aria-haspopup="menu" aria-controls="signupmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 lcRBhP">Sign up<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="signupmenu" aria-labelledby="signupMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-8cc9cb41-0 jjMSkz"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-8cc9cb41-1 iVVDgA"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-8cc9cb41-2 jYMvAI">Sign up for:</li><button aria-label="close" type="button" class="ActionMenuStyles__StyledCloseButton-sc-8cc9cb41-3 gQhTmM"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--icon-default)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&amp;error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&amp;type=register"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 hrVXbE ActionMenuStyles__StyledActionMenuItem-sc-8cc9cb41-4 eNAsqz"><a href="https://cloud.digitalocean.com/registrations/new"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li></ul></div><div class="Headerstyles__StyledDivider-sc-9ucsot-6 cLiNrn"></div><button type="button" aria-label="Menu" class="Headerstyles__StyledHeaderToggle-sc-9ucsot-3 eEMGyf"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg></button></div></header><div class="Headerstyles__StyledBackdrop-sc-9ucsot-7 dGslKK"></div><nav aria-label="Quick links" class="SubNavigationstyles__StyledSubNavigation-sc-k2wuim-0 kOoZiF SubNavigationStyles__StyledCommunitySubNavigation-sc-d7ee409e-1 eUiaNK"><ul class="SubNavigationstyles__StyledSubNavigationContainer-sc-k2wuim-1 hpjUfA"><li class="Typographystyles-sc-o7qsl9-0 hrVXbE SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2 doRbmw"><a href="/community/tutorials">Tutorials</a></li><li class="Typographystyles-sc-o7qsl9-0 hrVXbE SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2 hMutGM"><a href="/community/questions">Questions</a></li><li class="Typographystyles-sc-o7qsl9-0 hrVXbE SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2 hMutGM"><a href="https://docs.digitalocean.com">Product Docs</a></li><li><button id="communitysearch" type="button" class="SubNavigationStyles__StyledCommunitySearch-sc-d7ee409e-0 hjnEOf"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg><span class="Typographystyles-sc-o7qsl9-0 cmZFkE">Search Community</span><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.7298 20C13.1835 20 12.8314 19.4907 13.0826 19.0638L17.6229 11.3465C17.7481 11.1336 17.9978 11 18.2702 11C18.8165 11 19.1686 11.5093 18.9174 11.9362L14.3771 19.6535C14.2519 19.8664 14.0022 20 13.7298 20Z" fill="currentColor"></path><path fill-rule="evenodd" d="M24.125 3H7.875C5.18261 3 3 5.18261 3 7.875V24.125C3 26.8174 5.18261 29 7.875 29H24.125C26.8174 29 29 26.8174 29 24.125V7.875C29 5.18261 26.8174 3 24.125 3ZM6.84677 4.79101C7.16993 4.68332 7.51565 4.625 7.875 4.625H24.125C24.4875 4.625 24.8361 4.68434 25.1617 4.79384L22.3774 7.61733C21.928 7.38268 21.417 7.25 20.875 7.25H11.125C10.6073 7.25 10.1178 7.37106 9.68341 7.58641L6.84677 4.79101ZM5.57691 5.57689C4.98877 6.16503 4.625 6.97753 4.625 7.875V24.125C4.625 25.1615 5.1102 26.0846 5.86586 26.6797L8.57924 22.2705C8.13837 21.7158 7.875 21.0136 7.875 20.25V10.5C7.875 9.76185 8.12108 9.08118 8.53568 8.53555L5.57691 5.57689ZM9.76202 23.2013L7.23674 27.3123C7.44312 27.3534 7.65654 27.375 7.875 27.375H24.125C24.4982 27.375 24.8567 27.3121 25.1906 27.1963L22.6081 22.9998C22.1065 23.3166 21.5122 23.5 20.875 23.5H11.125C10.6383 23.5 10.1765 23.393 9.76202 23.2013ZM27.375 24.125C27.375 25.0058 27.0246 25.8047 26.4557 26.3901L23.6839 21.8859C23.9643 21.4054 24.125 20.8465 24.125 20.25V10.5C24.125 9.78536 23.8943 9.1246 23.5034 8.58809L26.448 5.60208C27.0215 6.18812 27.375 6.99027 27.375 7.875V24.125ZM9.5 10.5C9.5 9.60254 10.2275 8.875 11.125 8.875H20.875C21.7725 8.875 22.5 9.60254 22.5 10.5V20.25C22.5 21.1475 21.7725 21.875 20.875 21.875H11.125C10.2275 21.875 9.5 21.1475 9.5 20.25V10.5Z" fill="currentColor"></path></svg></button></li></ul></nav></div><!--$?--><template id="B:0"></template><div role="status" aria-label="Loading"><div class="SidebarLayoutStyles__StyledSidebarLayout-sc-25e1a3be-0 bBcjMB"><div class="SidebarLayoutStyles__StyledSidebarLayoutContainer-sc-25e1a3be-1 bXCYIQ"><aside class="SidebarLayoutStyles__StyledSidebarLayoutLeftSidebar-sc-25e1a3be-2 KeKat"><div class="SidebarLayoutStyles__StyledSidebarLayoutLeftSidebarContainer-sc-25e1a3be-4 kiiszA"><div class="TutorialIndexTemplateStyles__StyledTutorialsSidebar-sc-cc1238f0-6 jVUPTH"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 dthJHY"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 jNUMKH"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 cQGYVn"></div><svg width="100%" height="1" viewBox="0 0 100 1" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"><line x1="0" y1="0.5" x2="100" y2="0.5" stroke="var(--border-mid)" stroke-width="1" stroke-dasharray="0" stroke-linecap="round" vector-effect="non-scaling-stroke"></line></svg><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 dthJHY"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 jNUMKH"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 cQGYVn"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 bgaxrt"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 hkRcxh"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 lgwbfa"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 bGrric"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 dthJHY"></div><svg width="100%" height="1" viewBox="0 0 100 1" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"><line x1="0" y1="0.5" x2="100" y2="0.5" stroke="var(--border-mid)" stroke-width="1" stroke-dasharray="0" stroke-linecap="round" vector-effect="non-scaling-stroke"></line></svg><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 aHXFz"></div><svg width="100%" height="1" viewBox="0 0 100 1" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"><line x1="0" y1="0.5" x2="100" y2="0.5" stroke="var(--border-mid)" stroke-width="1" stroke-dasharray="0" stroke-linecap="round" vector-effect="non-scaling-stroke"></line></svg><div class="SidebarCTAStyles__StyledSidebarCTA-sc-312e799-0 bToyVK"><div class="Gridstyles-sc-isu2n3-0 hpedQx"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 bgaxrt"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 gUcKjj"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 eDcBjS"></div></div></div></div></div></aside><div class="SidebarLayoutStyles__StyledSidebarLayoutContent-sc-25e1a3be-6 iNOUik"><div class="TutorialContentStyles__StyledTutorialContent-sc-6ceff51f-0 hlgzqc"><div class="Gridstyles-sc-isu2n3-0 boMksh"><div class="CommunityIndexTemplateStyles__StyledSearchCard-sc-61226673-2 jYQOOw"><div class="CommunityIndexTemplateStyles__StyledSearchCardHeader-sc-61226673-3 eUmtnk"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 dQXUxI"></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 gphyTo"></div></div><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 fXjhGq"></div></div></div><div class="Gridstyles-sc-isu2n3-0 boMksh"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 blwPcQ"></div><div class="Gridstyles-sc-isu2n3-0 sjyRg"><div class="GridItemstyles-sc-eu71zi-0 kpCCjK"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 hEyCTf"></div></div><div class="GridItemstyles-sc-eu71zi-0 kpCCjK"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 hEyCTf"></div></div><div class="GridItemstyles-sc-eu71zi-0 kpCCjK"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 hEyCTf"></div></div><div class="GridItemstyles-sc-eu71zi-0 kpCCjK"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 hEyCTf"></div></div><div class="GridItemstyles-sc-eu71zi-0 kpCCjK"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 hEyCTf"></div></div><div class="GridItemstyles-sc-eu71zi-0 kpCCjK"><div aria-hidden="true" class="SkeletonStyles__StyledSkeleton-sc-1db3dd71-0 hEyCTf"></div></div></div></div></div></div></div></div></div><!--/$--><div id="pre-footer" class="Sectionstyles__StyledSection-sc-4l5hhw-0 blrpEn"><div class="Sectionstyles__StyledSectionInner-sc-4l5hhw-1 bGPTxF"><div class="Containerstyles-sc-11hjsrs-0 jIQAEC"><div class="Gridstyles-sc-isu2n3-0 dyOzEN"><div class="GridItemstyles-sc-eu71zi-0 jpYjUd"><div class="Gridstyles-sc-isu2n3-0 dNWMka"><div class="GridItemstyles-sc-eu71zi-0 gOKCvp"><div class="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-10 hEVnrJ"><div class="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1 cDqwDt"><img alt="" loading="lazy" width="719" height="719" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcommunity.b05eb062.svg&amp;width=750 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcommunity.b05eb062.svg&amp;width=1920 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcommunity.b05eb062.svg&amp;width=1920"/></div><div class="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2 hGIWRw"><div class="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3 bBcQQT"><div class="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-5 hMjgom"><div class="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-7 bgLIvv"><h2 class="Typographystyles-sc-o7qsl9-0 bojEJy">Become a contributor for community</h2></div><p class="Typographystyles-sc-o7qsl9-0 dyMnPD">Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.</p></div></div><div class="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-6 OuQia"><p class="Typographystyles-sc-o7qsl9-0 ieryHS"><a class="LinkTextstyles-sc-jz3jcd-0 kcYccs" href="/community/pages/write-for-digitalocean">Sign Up<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></p></div></div></div></div><div class="GridItemstyles-sc-eu71zi-0 gOKCvp"><div class="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-10 hEVnrJ"><div class="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1 cDqwDt"><img alt="" loading="lazy" width="719" height="719" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fdetailed-documentation.1b349942.svg&amp;width=750 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fdetailed-documentation.1b349942.svg&amp;width=1920 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fdetailed-documentation.1b349942.svg&amp;width=1920"/></div><div class="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2 hGIWRw"><div class="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3 bBcQQT"><div class="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-5 hMjgom"><div class="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-7 bgLIvv"><h2 class="Typographystyles-sc-o7qsl9-0 bojEJy">DigitalOcean Documentation</h2></div><p class="Typographystyles-sc-o7qsl9-0 dyMnPD">Full documentation for every DigitalOcean product.</p></div></div><div class="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-6 OuQia"><p class="Typographystyles-sc-o7qsl9-0 ieryHS"><a class="LinkTextstyles-sc-jz3jcd-0 kcYccs" href="https://docs.digitalocean.com">Learn more<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></p></div></div></div></div><div class="GridItemstyles-sc-eu71zi-0 gOKCvp"><div class="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-10 hEVnrJ"><div class="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1 cDqwDt"><img alt="" loading="lazy" width="719" height="719" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fnexus.0c1cff19.svg&amp;width=750 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fnexus.0c1cff19.svg&amp;width=1920 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fnexus.0c1cff19.svg&amp;width=1920"/></div><div class="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2 hGIWRw"><div class="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3 bBcQQT"><div class="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-5 hMjgom"><div class="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-7 bgLIvv"><h2 class="Typographystyles-sc-o7qsl9-0 bojEJy">Resources for startups and AI-native businesses</h2></div><p class="Typographystyles-sc-o7qsl9-0 dyMnPD">The Wave has everything you need to know about building a business, from raising funding to marketing your product.</p></div></div><div class="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-6 OuQia"><p class="Typographystyles-sc-o7qsl9-0 ieryHS"><a class="LinkTextstyles-sc-jz3jcd-0 kcYccs" href="/resources">Learn more<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></p></div></div></div></div></div></div></div></div></div></div><div id="start-building-today" class="Sectionstyles__StyledSection-sc-4l5hhw-0 blrpEn"><div class="Sectionstyles__StyledSectionInner-sc-4l5hhw-1 bGPTxF"><div class="Containerstyles-sc-11hjsrs-0 jIQAEC"><div class="Gridstyles-sc-isu2n3-0 dyOzEN"><div class="Gridstyles-sc-isu2n3-0 roDpq"><div class="GridItemstyles-sc-eu71zi-0 bnXNqo"><div class="Gridstyles-sc-isu2n3-0 dyOzEN CTATextCenterstyles__StyledCTATextCenterWrapper-sc-1bhx0m5-0 eWzHZX"><div class="CTATextCenterstyles__StyledCTATextCenter-sc-1bhx0m5-1 gcJQEl StyledCTAs__StyledCTATextCenter-sc-a25a892e-1 dVrxpp"><div class="CTATextCenterstyles__StyledCTATextCenterContainer-sc-1bhx0m5-4 hLrIwl"><div class="CTATextCenterstyles__StyledCTATextCenterContent-sc-1bhx0m5-3 fvUrZB"><h2 class="Typographystyles-sc-o7qsl9-0 fUErXy">The developer cloud</h2><p class="Typographystyles-sc-o7qsl9-0 gdnEcZ">Scale up as you grow — whether you&#x27;re running one virtual machine or ten thousand.</p></div><div><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 jbwvZJ" href="/products">View all products</a></div></div><div class="CTATextCenterstyles__StyledCTATextCenterImage-sc-1bhx0m5-2 isBriY"><img alt="" loading="lazy" width="1088" height="344" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcta-wireframe.8a8c56db.webp&amp;width=1200 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcta-wireframe.8a8c56db.webp&amp;width=3840 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcta-wireframe.8a8c56db.webp&amp;width=3840"/></div></div></div></div><div class="GridItemstyles-sc-eu71zi-0 bnXNqo"><div class="Gridstyles-sc-isu2n3-0 dyOzEN CTATextCenterstyles__StyledCTATextCenterWrapper-sc-1bhx0m5-0 eWzHZX"><div class="CTATextCenterstyles__StyledCTATextCenter-sc-1bhx0m5-1 icjbQA StyledCTAs__StyledCTATextCenter-sc-a25a892e-1 dVrxpp"><div class="CTATextCenterstyles__StyledCTATextCenterContainer-sc-1bhx0m5-4 hLrIwl"><div class="CTATextCenterstyles__StyledCTATextCenterContent-sc-1bhx0m5-3 fvUrZB"><h2 class="Typographystyles-sc-o7qsl9-0 fUErXy">Start building today</h2><p class="Typographystyles-sc-o7qsl9-0 dyMnPD">From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.</p></div><div><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 jbwvZJ" href="https://cloud.digitalocean.com/registrations/new">Sign up</a></div></div><div class="CTATextCenterstyles__StyledCTATextCenterImage-sc-1bhx0m5-2 isBriY"><img alt="" loading="lazy" width="1088" height="344" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcta-purple-gradient.d87c1eee.webp&amp;width=1200 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcta-purple-gradient.d87c1eee.webp&amp;width=3840 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_do-www-marketing%2F0e5edb3a%2F_next%2Fstatic%2Fmedia%2Fcta-purple-gradient.d87c1eee.webp&amp;width=3840"/></div></div></div></div></div></div></div></div></div><div id="footer" class="Sectionstyles__StyledSection-sc-4l5hhw-0 blrpEn"><div class="Sectionstyles__StyledSectionInner-sc-4l5hhw-1 bMaVH"><div class="Containerstyles-sc-11hjsrs-0 jIQAEC"><footer class="LinksStyles__StyledFooterDesktop-sc-607a44c5-0 hYQleR"><div><h2 class="Typographystyles-sc-o7qsl9-0 kkYqjo">Company</h2><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/about">About</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/leadership/executive-management">Leadership</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/blog">Blog</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/careers">Careers</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/customers">Customers</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/partners">Partners</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/referral-program">Referral Program</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/affiliates">Affiliate Program</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/press">Press</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/legal">Legal</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/legal/privacy-policy">Privacy Policy</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/security">Security</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://investors.digitalocean.com/">Investor Relations</a></li></ul></div><div><h2 class="Typographystyles-sc-o7qsl9-0 kkYqjo">Products</h2><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/knowledge-bases">Knowledge Bases</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/gpu-droplets">GPU Droplets</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/bare-metal-gpus">Bare Metal GPUs</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/inference-engine">Inference Engine</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/data-learning">Data &amp; Learning</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/inference-engine/evaluations">Evaluations</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/model-library">Model Library</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/droplets">Droplets</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/kubernetes">Kubernetes</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/functions">Functions</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/app-platform">App Platform</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/load-balancers">Load Balancers</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/managed-databases">Managed Databases</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/spaces">Spaces</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/block-storage">Block Storage</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/storage/network-file-storage">Network File Storage</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://docs.digitalocean.com/reference/api">API</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/uptime-monitoring">Uptime</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/cloud-security-posture-management">Cloud Security Posture Management (CSPM)</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/identity-access-management">Identity and Access Management (IAM)</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/cloudways">Cloudways</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products">View all Products</a></li></ul></div><div><h2 class="Typographystyles-sc-o7qsl9-0 kkYqjo">Resources</h2><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/tutorials">Community Tutorials</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/questions">Community Q&amp;A</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://css-tricks.com/" target="_blank">CSS-Tricks</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/pages/write-for-digitalocean">Write for DOnations</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/currents">Currents Research</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/startups">DigitalOcean Startups</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/wavemakers">Wavemakers Program</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/research">Compass Council</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/open-source">Open Source</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community#iaan">Newsletter Signup</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/marketplace">Marketplace</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/pricing">Pricing</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/pricing/calculator">Pricing Calculator</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://docs.digitalocean.com/">Documentation</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://docs.digitalocean.com/release-notes">Release Notes</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/pages/code-of-conduct">Code of Conduct</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://store.digitalocean.com/" rel="nofollow">Shop Swag</a></li></ul></div><div><h2 class="Typographystyles-sc-o7qsl9-0 kkYqjo">Solutions</h2><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/ai-training-gpu">AI Training GPU</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/gpu-inference">GPU Inference</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/vps-hosting">VPS Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/website-hosting">Website Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/vpn">VPN</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/docker-hosting">Docker Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/nodejs-hosting">Node.js Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/web-mobile-apps">Web Mobile Apps</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/wordpress-hosting">WordPress Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/virtual-machines">Virtual Machines</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions">View all Solutions</a></li></ul></div><div><h2 class="Typographystyles-sc-o7qsl9-0 kkYqjo">Contact</h2><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/support">Support</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/company/contact/sales?referrer=footer">Sales</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/company/contact/abuse">Report Abuse</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://status.digitalocean.com/" rel="nofollow">System Status</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://ideas.digitalocean.com/" rel="nofollow">Share your ideas</a></li></ul></div></footer><footer class="LinksStyles__StyledFooterMobile-sc-607a44c5-3 kruQEm"><details class="LinksStyles__StyledDetails-sc-607a44c5-4 ctHUKi"><summary><h2 class="Typographystyles-sc-o7qsl9-0 gTKhrk">Company</h2><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/about">About</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/leadership/executive-management">Leadership</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/blog">Blog</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/careers">Careers</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/customers">Customers</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/partners">Partners</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/referral-program">Referral Program</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/affiliates">Affiliate Program</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/press">Press</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/legal">Legal</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/legal/privacy-policy">Privacy Policy</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/security">Security</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://investors.digitalocean.com/">Investor Relations</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-607a44c5-4 ctHUKi"><summary><h2 class="Typographystyles-sc-o7qsl9-0 gTKhrk">Products</h2><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/knowledge-bases">Knowledge Bases</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/gpu-droplets">GPU Droplets</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/bare-metal-gpus">Bare Metal GPUs</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/inference-engine">Inference Engine</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/data-learning">Data &amp; Learning</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/inference-engine/evaluations">Evaluations</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/model-library">Model Library</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/droplets">Droplets</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/kubernetes">Kubernetes</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/functions">Functions</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/app-platform">App Platform</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/load-balancers">Load Balancers</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/managed-databases">Managed Databases</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/spaces">Spaces</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/block-storage">Block Storage</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/storage/network-file-storage">Network File Storage</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://docs.digitalocean.com/reference/api">API</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/uptime-monitoring">Uptime</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/cloud-security-posture-management">Cloud Security Posture Management (CSPM)</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/identity-access-management">Identity and Access Management (IAM)</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/cloudways">Cloudways</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products">View all Products</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-607a44c5-4 ctHUKi"><summary><h2 class="Typographystyles-sc-o7qsl9-0 gTKhrk">Resources</h2><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/tutorials">Community Tutorials</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/questions">Community Q&amp;A</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://css-tricks.com/" target="_blank">CSS-Tricks</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/pages/write-for-digitalocean">Write for DOnations</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/currents">Currents Research</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/startups">DigitalOcean Startups</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/wavemakers">Wavemakers Program</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/research">Compass Council</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/open-source">Open Source</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community#iaan">Newsletter Signup</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/products/marketplace">Marketplace</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/pricing">Pricing</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/pricing/calculator">Pricing Calculator</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://docs.digitalocean.com/">Documentation</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://docs.digitalocean.com/release-notes">Release Notes</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/community/pages/code-of-conduct">Code of Conduct</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://store.digitalocean.com/" rel="nofollow">Shop Swag</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-607a44c5-4 ctHUKi"><summary><h2 class="Typographystyles-sc-o7qsl9-0 gTKhrk">Solutions</h2><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/ai-training-gpu">AI Training GPU</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/gpu-inference">GPU Inference</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/vps-hosting">VPS Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/website-hosting">Website Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/vpn">VPN</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/docker-hosting">Docker Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/nodejs-hosting">Node.js Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/web-mobile-apps">Web Mobile Apps</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/wordpress-hosting">WordPress Hosting</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions/virtual-machines">Virtual Machines</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/solutions">View all Solutions</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-607a44c5-4 ctHUKi"><summary><h2 class="Typographystyles-sc-o7qsl9-0 gTKhrk">Contact</h2><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-607a44c5-1 jZDJvg"><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/support">Support</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="/company/contact/sales?referrer=footer">Sales</a></li><li><a class="LazyLink___StyledLink-sc-a535d946-0 iMWrUY Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" rel="nofollow" href="/company/contact/abuse">Report Abuse</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://status.digitalocean.com/" rel="nofollow">System Status</a></li><li><a class="LazyLink___StyledA-sc-a535d946-1 jjFalE Typographystyles-sc-o7qsl9-0 hZgGN LinksStyles__StyledLink-sc-607a44c5-2 fMymZG" href="https://ideas.digitalocean.com/" rel="nofollow">Share your ideas</a></li></ul></details></footer><div class="CompanyDetailsStyles__StyledCompanyDetails-sc-70016102-0 jXWzIT"><div class="CompanyDetailsStyles__StyledCompanyLogo-sc-70016102-1 dwIQJr"><svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 90 90" tabindex="-1" class="DigitalOceanSmileyStyles__StyledSvg-sc-64ca7b97-4 kNCvbu"><circle cx="45" cy="45" r="36.25" fill="none" stroke="currentColor" stroke-width="17.5" stroke-dasharray="170.824100538945 56.941366846315" stroke-dashoffset="113.88273369263" class="DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0 dNYLTy"></circle><rect x="3.25" y="61.5" width="11" height="11" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1 lcppJb"></rect><rect x="14.25" y="72.5" width="13.5" height="13.5" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2 gempjk"></rect><rect x="27.5" y="55.25" width="17.25" height="17.25" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3 dvyWcr"></rect></svg><span class="Typographystyles-sc-o7qsl9-0 hZgGN">©<!-- --> 2026 <!-- -->DigitalOcean, LLC.</span><span class="Typographystyles-sc-o7qsl9-0 hZgGN"><a href="/sitemap">Sitemap</a>.</span></div><ul class="CompanyDetailsStyles__StyledCompanySocials-sc-70016102-2 iunNkm"><li><a href="https://twitter.com/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="X (Twitter)" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.0468 10.3155L22.0566 1.00003H20.1585L13.2036 9.08855L7.6488 1.00003H1.24194L9.64196 13.2313L1.24194 23H3.14011L10.4847 14.4583L16.351 23H22.7578L14.0464 10.3155H14.0468ZM11.447 13.3391L10.5959 12.1211L3.82405 2.42968H6.73952L12.2045 10.251L13.0556 11.4689L20.1594 21.6354H17.244L11.447 13.3395V13.3391Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.instagram.com/thedigitalocean/" target="_blank" rel="me nofollow noopener noreferrer" title="Instagram" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.44432 1.07693C6.27391 1.13215 5.47464 1.31893 4.77592 1.59349C4.05277 1.87531 3.43984 2.2535 2.83 2.86554C2.22015 3.47758 1.84461 4.09094 1.56476 4.81518C1.29394 5.51545 1.11046 6.31537 1.05876 7.48643C1.00706 8.6575 0.995618 9.03392 1.00134 12.0211C1.00706 15.0083 1.02026 15.3827 1.07702 16.5562C1.1329 17.7264 1.31902 18.5254 1.59358 19.2244C1.87585 19.9475 2.25359 20.5602 2.86586 21.1703C3.47812 21.7803 4.09105 22.155 4.81706 22.4353C5.51666 22.7056 6.31681 22.89 7.48766 22.9413C8.65852 22.9925 9.03538 23.0044 12.0217 22.9987C15.008 22.993 15.384 22.9798 16.5573 22.9241C17.7305 22.8684 18.5254 22.681 19.2246 22.4078C19.9477 22.1248 20.5609 21.7478 21.1705 21.1353C21.7801 20.5228 22.1554 19.909 22.4351 19.1843C22.7061 18.4847 22.8902 17.6846 22.9411 16.5146C22.9923 15.3405 23.0044 14.9656 22.9987 11.9788C22.993 8.99212 22.9796 8.61768 22.9239 7.44463C22.8682 6.27159 22.6819 5.47497 22.4076 4.77558C22.1249 4.05244 21.7475 3.44018 21.1355 2.82968C20.5235 2.21918 19.9092 1.84407 19.1847 1.56511C18.4847 1.29429 17.685 1.10971 16.5141 1.05911C15.3433 1.00851 14.9664 0.995531 11.979 1.00125C8.9916 1.00697 8.6176 1.01973 7.44432 1.07693ZM7.5728 20.9624C6.50029 20.9157 5.91795 20.7375 5.52986 20.5884C5.01594 20.3904 4.64985 20.151 4.26309 19.768C3.87633 19.385 3.63872 19.0176 3.43808 18.5047C3.28738 18.1166 3.10588 17.535 3.05572 16.4625C3.00116 15.3033 2.98972 14.9552 2.98334 12.0184C2.97696 9.08166 2.98818 8.73406 3.039 7.57443C3.08476 6.50281 3.26406 5.91981 3.413 5.53195C3.611 5.01737 3.84949 4.65194 4.23339 4.2654C4.61729 3.87886 4.9836 3.64082 5.49686 3.44018C5.88451 3.28882 6.46619 3.10886 7.53826 3.05782C8.69834 3.00282 9.04594 2.99182 11.9823 2.98544C14.9187 2.97906 15.2672 2.99006 16.4277 3.0411C17.4993 3.08774 18.0825 3.26528 18.47 3.4151C18.9841 3.6131 19.35 3.85092 19.7365 4.23548C20.1231 4.62004 20.3613 4.98503 20.562 5.49939C20.7135 5.88593 20.8935 6.46739 20.9441 7.54011C20.9993 8.70018 21.0119 9.048 21.0171 11.9841C21.0224 14.9203 21.0121 15.269 20.9613 16.4281C20.9144 17.5006 20.7366 18.0832 20.5873 18.4717C20.3893 18.9854 20.1506 19.3517 19.7664 19.7381C19.3823 20.1244 19.0164 20.3624 18.503 20.5631C18.1158 20.7142 17.5334 20.8946 16.4622 20.9456C15.3021 21.0002 14.9545 21.0116 12.0171 21.018C9.0796 21.0244 8.7331 21.0125 7.57302 20.9624M16.5403 6.12089C16.5408 6.38198 16.6186 6.63708 16.764 6.85392C16.9095 7.07076 17.1159 7.2396 17.3573 7.33909C17.5987 7.43859 17.8642 7.46426 18.1202 7.41286C18.3762 7.36147 18.6111 7.23532 18.7954 7.05036C18.9797 6.8654 19.105 6.62995 19.1555 6.37378C19.2059 6.11761 19.1793 5.85223 19.0789 5.61121C18.9785 5.37018 18.8089 5.16434 18.5915 5.01971C18.3742 4.87508 18.1188 4.79816 17.8577 4.79868C17.5077 4.79938 17.1723 4.93907 16.9252 5.18702C16.6782 5.43496 16.5397 5.77088 16.5403 6.12089ZM6.35201 12.011C6.35817 15.1306 8.89172 17.6538 12.0107 17.6478C15.1297 17.6419 17.6546 15.1086 17.6487 11.989C17.6427 8.86936 15.1085 6.34551 11.9891 6.35167C8.86972 6.35783 6.34607 8.8918 6.35201 12.011ZM8.33335 12.007C8.33192 11.2818 8.54557 10.5724 8.94728 9.96865C9.349 9.36486 9.92074 8.89376 10.5902 8.6149C11.2597 8.33605 11.9968 8.26198 12.7084 8.40205C13.4199 8.54212 14.074 8.89005 14.5878 9.40184C15.1016 9.91363 15.4521 10.5663 15.595 11.2773C15.7379 11.9883 15.6668 12.7257 15.3906 13.3962C15.1144 14.0668 14.6455 14.6404 14.0433 15.0445C13.4411 15.4486 12.7326 15.6651 12.0074 15.6665C11.5258 15.6675 11.0488 15.5737 10.6036 15.3903C10.1583 15.2069 9.75351 14.9376 9.41233 14.5978C9.07115 14.258 8.80026 13.8543 8.61513 13.4097C8.43 12.9652 8.33425 12.4886 8.33335 12.007Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.facebook.com/DigitalOceanCloudHosting" target="_blank" rel="me nofollow noopener noreferrer" title="Facebook" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.75 8.33333H6V12H8.75V23H13.3333V12H16.6718L17 8.33333H13.3333V6.80525C13.3333 5.92983 13.5093 5.58333 14.3554 5.58333H17V1H13.5093C10.213 1 8.75 2.45108 8.75 5.23042V8.33333Z" fill="currentColor"></path></svg></a></li><li><a href="https://discord.gg/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="Discord" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.6361 5.39641C18.1907 4.73466 16.6648 4.26519 15.0974 4C14.8829 4.38343 14.6888 4.77793 14.516 5.18185C12.8463 4.93025 11.1484 4.93025 9.47883 5.18185C9.30589 4.77797 9.11182 4.38348 8.89742 4C7.32898 4.26743 5.80206 4.73802 4.35518 5.39987C1.48276 9.64968 0.704089 13.7939 1.09342 17.8793C2.77559 19.1222 4.65841 20.0674 6.66004 20.6739C7.11075 20.0677 7.50957 19.4246 7.85227 18.7515C7.20136 18.5083 6.57312 18.2084 5.97481 17.8551C6.13228 17.7409 6.28628 17.6232 6.43509 17.509C8.17602 18.3278 10.0762 18.7523 12 18.7523C13.9238 18.7523 15.8239 18.3278 17.5649 17.509C17.7154 17.6319 17.8694 17.7496 18.0252 17.8551C17.4257 18.209 16.7963 18.5095 16.1442 18.7532C16.4865 19.426 16.8854 20.0686 17.3365 20.6739C19.3398 20.0699 21.2241 19.1251 22.9065 17.8811C23.3634 13.1433 22.1261 9.03712 19.6361 5.39641ZM8.34543 15.3668C7.26048 15.3668 6.36415 14.3823 6.36415 13.171C6.36415 11.9597 7.22934 10.9665 8.34197 10.9665C9.4546 10.9665 10.344 11.9597 10.325 13.171C10.3059 14.3823 9.45114 15.3668 8.34543 15.3668ZM15.6545 15.3668C14.5679 15.3668 13.675 14.3823 13.675 13.171C13.675 11.9597 14.5402 10.9665 15.6545 10.9665C16.7689 10.9665 17.6514 11.9597 17.6324 13.171C17.6133 14.3823 16.7602 15.3668 15.6545 15.3668Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.youtube.com/DigitalOcean" target="_blank" rel="me nofollow noopener noreferrer" title="YouTube" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.54 6.70437C22.2875 5.75802 21.5413 5.01286 20.595 4.7595C18.88 4.29999 12 4.29999 12 4.29999C12 4.29999 5.12 4.29999 3.405 4.7595C2.45875 5.01286 1.7125 5.75802 1.46 6.70437C1 8.42073 1 12 1 12C1 12 1 15.5792 1.46 17.2956C1.7125 18.242 2.45875 18.9871 3.405 19.2405C5.12125 19.7 12 19.7 12 19.7C12 19.7 18.88 19.7 20.595 19.2405C21.5413 18.9871 22.2875 18.242 22.54 17.2956C23 15.5805 23 12 23 12C23 12 23 8.42073 22.54 6.70437ZM9.75 15.2501V8.74984L15.5 12L9.75 15.2501Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.linkedin.com/company/digitalocean/" target="_blank" rel="me nofollow noopener noreferrer" title="LinkedIn" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.376 1H2.62403C1.72722 1 1 1.72722 1 2.62403V21.376C1 22.2728 1.72722 23 2.62403 23H21.376C22.2728 23 23 22.2728 23 21.376V2.62403C23 1.72722 22.2728 1 21.376 1ZM7.55722 19.7428H4.24958V9.23472H7.55722V19.7428ZM5.90417 7.78028C4.85153 7.78028 3.9975 6.97819 3.9975 5.88125C3.9975 4.78431 4.85153 3.98222 5.90417 3.98222C6.95681 3.98222 7.81083 4.78431 7.81083 5.88125C7.81083 6.97819 6.95681 7.78028 5.90417 7.78028ZM19.7504 19.7504H16.4428V14.0121C16.4428 12.3193 15.7232 11.7968 14.7943 11.7968C13.8135 11.7968 12.851 12.5347 12.851 14.0549V19.7519H9.54333V9.24236H12.7242V10.6983H12.7669C13.0862 10.0521 14.2046 8.9475 15.9111 8.9475C17.7567 8.9475 19.7504 10.0429 19.7504 13.2513V19.7504Z" fill="currentColor"></path></svg></a></li><li><a href="https://github.com/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="GitHub" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 1C5.92468 1 1.00366 6.04649 1.00366 12.2767C1.00366 17.2609 4.15609 21.4836 8.52358 22.9789C9.07036 23.0827 9.27287 22.7366 9.27287 22.432C9.27287 22.162 9.26612 21.4559 9.25937 20.5145C6.20145 21.1929 5.55341 19.0054 5.55341 19.0054C5.05389 17.7039 4.3316 17.3578 4.3316 17.3578C3.33254 16.6586 4.40585 16.6725 4.40585 16.6725C5.50616 16.7556 6.09344 17.8355 6.09344 17.8355C7.07225 19.5592 8.66534 19.0607 9.29312 18.77C9.39437 18.0431 9.67789 17.5447 9.98841 17.2609C7.54477 16.9771 4.97963 16.0079 4.97963 11.6883C4.97963 10.4561 5.40491 9.45235 6.11369 8.66318C5.99894 8.37936 5.62092 7.23023 6.2217 5.6796C6.2217 5.6796 7.1465 5.37501 9.24587 6.83565C10.1234 6.58644 11.0617 6.46184 12 6.45491C12.9316 6.45491 13.8766 6.58644 14.7542 6.83565C16.8535 5.37501 17.7783 5.6796 17.7783 5.6796C18.3791 7.23023 18.0011 8.37936 17.8863 8.66318C18.5884 9.45235 19.0137 10.4561 19.0137 11.6883C19.0137 16.0218 16.4418 16.9702 13.9914 17.254C14.3829 17.6001 14.7407 18.2924 14.7407 19.3446C14.7407 20.8537 14.7272 22.0651 14.7272 22.4389C14.7272 22.7435 14.9229 23.0896 15.4832 22.9789C19.8507 21.4836 22.9964 17.2609 22.9964 12.2836C22.9964 6.04649 18.0754 1 12 1Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.glassdoor.com/Overview/Working-at-DigitalOcean-EI_IE823482.11,23.htm" target="_blank" rel="me nofollow noopener noreferrer" title="Glassdoor" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.62 19.8572H4.29999C4.29999 21.5929 5.67893 23 7.38001 23H16.62C18.321 23 19.7 21.5929 19.7 19.8572V6.95128C19.7 6.9209 19.6881 6.89178 19.6671 6.87031C19.646 6.84884 19.6175 6.83678 19.5877 6.83678H16.7322C16.7024 6.83678 16.6739 6.84884 16.6528 6.87031C16.6317 6.89178 16.6199 6.9209 16.6199 6.95128L16.62 19.8572ZM16.62 1C18.321 1 19.7 2.40708 19.7 4.14288H7.38001V17.0488C7.38001 17.0792 7.36819 17.1083 7.34715 17.1298C7.32611 17.1513 7.29757 17.1634 7.2678 17.1634H4.41228C4.39753 17.1634 4.38292 17.1604 4.36929 17.1547C4.35566 17.1489 4.34327 17.1405 4.33285 17.1298C4.32242 17.1192 4.31415 17.1065 4.30851 17.0926C4.30287 17.0787 4.29998 17.0638 4.29999 17.0487V4.14288C4.29999 2.40718 5.67893 1 7.38001 1H16.62Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.builtinnyc.com/company/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="BuiltInNYC" class="SocialStyles__StyledSocial-sc-cc3469ac-0 khLIEt"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.77419 1C1.79433 1 1 1.79433 1 2.77419V7.03226H3.12903V3.12903H20.871V20.871H3.12903V16.9677H1V21.2258C1 22.2057 1.79433 23 2.77419 23H21.2258C22.2057 23 23 22.2057 23 21.2258V2.77419C23 1.79433 22.2057 1 21.2258 1H2.77419ZM7.74193 5.73814H10.2467V9.74573H15.0057C15.6974 9.74573 16.2581 10.3064 16.2581 10.9981V17.0095C16.2581 17.7012 15.6974 18.2619 15.0057 18.2619H7.74193V5.73814ZM10.2467 12.2505V15.7571H13.7533V12.2505H10.2467Z" fill="currentColor"></path></svg></a></li></ul></div></div></div></div></div><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_do-www-marketing/0e5edb3a/_next/static/chunks/webpack-76827b33696073ea.js?dpl=0e5edb3a" id="_R_" async=""></script><div hidden id="S:0"><!--$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><!--$--><!--/$--><!--/$--></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n"])</script><script>self.__next_f.push([1,"2:I[37702,[\"82700\",\"static/chunks/fd66a6a3-a3e9fb76183e8a2a.js?dpl=0e5edb3a\",\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"56816\",\"static/chunks/56816-4f49e20ad6fe6030.js?dpl=0e5edb3a\",\"35800\",\"static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a\",\"57908\",\"static/chunks/57908-386d9cb9a015959a.js?dpl=0e5edb3a\",\"25294\",\"static/chunks/25294-44a716ed5c4d1d47.js?dpl=0e5edb3a\",\"75533\",\"static/chunks/75533-9beb1dec0bbdbeb3.js?dpl=0e5edb3a\",\"24373\",\"static/chunks/24373-b0c166fb3422320c.js?dpl=0e5edb3a\",\"69082\",\"static/chunks/69082-655b48b5beed86d1.js?dpl=0e5edb3a\",\"67611\",\"static/chunks/67611-8311ddb0051c5ac5.js?dpl=0e5edb3a\",\"40488\",\"static/chunks/40488-1f9f3ded68e601a8.js?dpl=0e5edb3a\",\"83925\",\"static/chunks/83925-154589a79f7e112a.js?dpl=0e5edb3a\",\"97425\",\"static/chunks/97425-2a15914d271cf06b.js?dpl=0e5edb3a\",\"92293\",\"static/chunks/92293-7638b73d6d606cc6.js?dpl=0e5edb3a\",\"79210\",\"static/chunks/79210-5daa1ca5a782441a.js?dpl=0e5edb3a\",\"88522\",\"static/chunks/88522-f5bb2291e13a8a41.js?dpl=0e5edb3a\",\"68732\",\"static/chunks/68732-b6f8b26a91ef2a49.js?dpl=0e5edb3a\",\"52738\",\"static/chunks/52738-e3ae589399197a12.js?dpl=0e5edb3a\",\"23829\",\"static/chunks/23829-8497c20a2cbdd7e0.js?dpl=0e5edb3a\",\"29298\",\"static/chunks/29298-35df7c34dfed14b6.js?dpl=0e5edb3a\",\"36304\",\"static/chunks/36304-58051dce7fed81be.js?dpl=0e5edb3a\",\"86147\",\"static/chunks/86147-befdb06ee2d58442.js?dpl=0e5edb3a\",\"8315\",\"static/chunks/8315-4666033ca171f9c4.js?dpl=0e5edb3a\",\"87057\",\"static/chunks/87057-0f92239044576f7c.js?dpl=0e5edb3a\",\"7177\",\"static/chunks/app/layout-51051bcd683d29e9.js?dpl=0e5edb3a\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"3:I[23246,[\"82700\",\"static/chunks/fd66a6a3-a3e9fb76183e8a2a.js?dpl=0e5edb3a\",\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"56816\",\"static/chunks/56816-4f49e20ad6fe6030.js?dpl=0e5edb3a\",\"35800\",\"static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a\",\"57908\",\"static/chunks/57908-386d9cb9a015959a.js?dpl=0e5edb3a\",\"25294\",\"static/chunks/25294-44a716ed5c4d1d47.js?dpl=0e5edb3a\",\"75533\",\"static/chunks/75533-9beb1dec0bbdbeb3.js?dpl=0e5edb3a\",\"24373\",\"static/chunks/24373-b0c166fb3422320c.js?dpl=0e5edb3a\",\"69082\",\"static/chunks/69082-655b48b5beed86d1.js?dpl=0e5edb3a\",\"67611\",\"static/chunks/67611-8311ddb0051c5ac5.js?dpl=0e5edb3a\",\"40488\",\"static/chunks/40488-1f9f3ded68e601a8.js?dpl=0e5edb3a\",\"83925\",\"static/chunks/83925-154589a79f7e112a.js?dpl=0e5edb3a\",\"97425\",\"static/chunks/97425-2a15914d271cf06b.js?dpl=0e5edb3a\",\"92293\",\"static/chunks/92293-7638b73d6d606cc6.js?dpl=0e5edb3a\",\"79210\",\"static/chunks/79210-5daa1ca5a782441a.js?dpl=0e5edb3a\",\"88522\",\"static/chunks/88522-f5bb2291e13a8a41.js?dpl=0e5edb3a\",\"68732\",\"static/chunks/68732-b6f8b26a91ef2a49.js?dpl=0e5edb3a\",\"52738\",\"static/chunks/52738-e3ae589399197a12.js?dpl=0e5edb3a\",\"23829\",\"static/chunks/23829-8497c20a2cbdd7e0.js?dpl=0e5edb3a\",\"29298\",\"static/chunks/29298-35df7c34dfed14b6.js?dpl=0e5edb3a\",\"36304\",\"static/chunks/36304-58051dce7fed81be.js?dpl=0e5edb3a\",\"86147\",\"static/chunks/86147-befdb06ee2d58442.js?dpl=0e5edb3a\",\"8315\",\"static/chunks/8315-4666033ca171f9c4.js?dpl=0e5edb3a\",\"87057\",\"static/chunks/87057-0f92239044576f7c.js?dpl=0e5edb3a\",\"7177\",\"static/chunks/app/layout-51051bcd683d29e9.js?dpl=0e5edb3a\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"4:I[52901,[],\"\"]\n5:I[51476,[\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"35800\",\"static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a\",\"57908\",\"static/chunks/57908-386d9cb9a015959a.js?dpl=0e5edb3a\",\"23829\",\"static/chunks/23829-8497c20a2cbdd7e0.js?dpl=0e5edb3a\",\"31377\",\"static/chunks/31377-64232bb2a4cb19dd.js?dpl=0e5edb3a\",\"18039\",\"static/chunks/app/error-cd0efab446a17969.js?dpl=0e5edb3a\"],\"default\"]\n6:I[17185,[],\"\"]\n7:I[43718,[\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"35800\",\"static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a\",\"57908\",\"static/chunks/57908-386d9cb9a015959a.js?dpl=0e5edb3a\",\"19109\",\"static/chunks/19109-87b7d1b899a9bad3.js?dpl=0e5edb3a\",\"31377\",\"static/chunks/31377-64232bb2a4cb19dd.js?dpl=0e5edb3a\",\"24345\",\"static/chunks/app/not-found-228596b1e9a3c7b0.js?dpl=0e5edb3a\"],\"default\"]\n8:I[38915,[\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"35800\",\"static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a\",\"57908\",\"static/chunks/57908-386d9cb9a015959a.js?dpl=0e5edb3a\",\"41490\",\"static/chunks/41490-87b7d1b899a9bad3.js?dpl=0e5edb3a\",\"31377\",\"static/chunks/31377-64232bb2a4cb19dd.js?dpl=0e5edb3a\",\"42413\",\"static/chunks/app/unauthorized-cf674d450630664e.js?dpl=0e5edb3a\"],\"default\"]\n9:I[52901,[],\"LoadingBoundaryProvider\"]\na:I[85103,[\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"24373\",\"static/chunks/24373-b0c166fb3422320c.js?dpl=0e5edb3a\",\"43847\",\"static/chunks/43847-6402cb6fdad1fd0f.js?dpl=0e5edb3a\",\"88138\",\"static/chunks/88138-39d78b60a6e0c5bf.js?dpl=0e5edb3a\",\"37264\",\"static/chunks/37264-818907131e57dd98.js?dpl=0e5edb3a\",\"85103\",\"static/chunks/85103-f318d0bc0dd24351.js?dpl=0e5edb3a\",\"7411\",\"static/chunks/7411-c7b2ca143a93975f.js?dpl=0e5edb3a\",\"82552\",\"static/chunks/app/community/tutorials/page-809cc666cd924e3b.js?dpl=0e5edb3a\"],\"default\"]\nb:I[60962,[\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"43847\",\"static/chunks/43847-6402cb6fdad1fd0f.js?dpl=0e5edb3a\",\"98916\",\"static/chunks/98916-abac74e723a9586d.js?dpl=0e5edb3a\",\"20291\",\"static/chunks/app/community/tutorials/%5Bslug%5D/loading-9ff18149ceb63367.js?dpl=0e5edb3a\"],\"default\"]\nd:I[69784,[],\"OutletBoundary\"]\ne:\"$Sreact.suspense\"\n11:I[69784,[],\"ViewportBoundary\"]\n13:I[69784,[],\"MetadataBoundary\"]\n15:I[95370,[\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"56816\",\"static/chunks/56816-4f49e20ad6fe6030.js?dpl=0e5edb3a\",\"35800\",\"static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a\",\"57908\",\"static/chunks/57908-386d9cb9a015959a.js?dpl=0e5edb3a\",\"23829\",\"static/chunks/23829-8497c20a2cbdd7e0.js?dpl=0e5edb3a\",\"29298\",\"static/chunks/29298-35df7c34dfed14b6.js?dpl=0e5edb3a\",\"31377\",\"static/chunks/31377-64232bb2a4cb19dd.js?dpl=0e5edb3a\",\"34219\",\"static/chunks/app/global-error-575ca33c98b0729c.js?dpl=0e5edb3a\"],\"default\"]\n:HL[\"/_do-www-marketing/0e5edb3a/_next/static/media/636a5ac981f94f8b.p.woff2?dpl=0e5edb3a\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_do-www-marketing/0e5edb3a/_next/static/media/bb3ef058b751a6ad-s.p.woff2?dpl=0e5edb3a\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_do-www-marketing/0e5edb3a/_next/static/media/e4af272ccee01ff0-s.p.woff2?dpl=0e5edb3a\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_do-www-marketing/0e5edb3a/_next/static/css/17e47e26cebe8463.css?dpl=0e5edb3a\",\"style\"]\n:HL[\"/_do-www-marketing/0e5edb3a/_next/static/css/6994b812b10824a2.css?dpl=0e5edb3a\",\"style\"]\n:HL[\"https://www.digitalocean.com/api/static-content/v1/design_tokens/css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"community\",\"tutorials\",\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"community\",{\"children\":[\"tutorials\",{\"children\":[[\"slug\",\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\",\"d\",null],{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",4]},\"$undefined\",\"$undefined\",12]},\"$undefined\",\"$undefined\",8]},\"$undefined\",\"$undefined\",24],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_do-www-marketing/0e5edb3a/_next/static/css/17e47e26cebe8463.css?dpl=0e5edb3a\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_do-www-marketing/0e5edb3a/_next/static/css/6994b812b10824a2.css?dpl=0e5edb3a\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"dir\":\"ltr\",\"data-scroll-behavior\":\"smooth\",\"className\":\"__className_a7006e __className_056829 __className_c1e5e1\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"precedence\":\"design-tokens\",\"href\":\"https://www.digitalocean.com/api/static-content/v1/design_tokens/css\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://consent.trustarc.com\"}],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$5\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L7\",null,{}],[]],\"forbidden\":[[\"$\",\"$L8\",null,{\"statusCode\":403}],[]],\"unauthorized\":[[\"$\",\"$L8\",null,{\"statusCode\":401}],[]]}]}]}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$L9\",null,{\"loading\":[[\"$\",\"$La\",\"l\",{}],[],[]],\"children\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}],{\"children\":[[\"$\",\"$L9\",null,{\"loading\":[[\"$\",\"$Lb\",\"l\",{\"hasToc\":true}],[],[]],\"children\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$Lc\",null,[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@f\"}]}]]}],{},null,false,null]},null,false,\"$@10\"]},null,false,\"$@10\"]},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L11\",null,{\"children\":\"$L12\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L13\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L14\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$15\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_do-www-marketing/0e5edb3a/_next/static/css/6994b812b10824a2.css?dpl=0e5edb3a\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_do-www-marketing/0e5edb3a/_next/static/css/17e47e26cebe8463.css?dpl=0e5edb3a\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"16:[]\n10:\"$W16\"\n"])</script><script>self.__next_f.push([1,"12:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, minimum-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#000000\"}]]\n"])</script><script>self.__next_f.push([1,"17:I[3158,[\"30636\",\"static/chunks/376fd3f4-91685ecb862fb990.js?dpl=0e5edb3a\",\"31953\",\"static/chunks/c32bb9d7-4d1ed8e2b7f0d01c.js?dpl=0e5edb3a\",\"31010\",\"static/chunks/31010-261e8e879d049cfd.js?dpl=0e5edb3a\",\"87950\",\"static/chunks/87950-fd4a983242ab92ff.js?dpl=0e5edb3a\",\"56816\",\"static/chunks/56816-4f49e20ad6fe6030.js?dpl=0e5edb3a\",\"35800\",\"static/chunks/35800-4a2b368b495087bc.js?dpl=0e5edb3a\",\"25294\",\"static/chunks/25294-44a716ed5c4d1d47.js?dpl=0e5edb3a\",\"75533\",\"static/chunks/75533-9beb1dec0bbdbeb3.js?dpl=0e5edb3a\",\"24373\",\"static/chunks/24373-b0c166fb3422320c.js?dpl=0e5edb3a\",\"69082\",\"static/chunks/69082-655b48b5beed86d1.js?dpl=0e5edb3a\",\"67611\",\"static/chunks/67611-8311ddb0051c5ac5.js?dpl=0e5edb3a\",\"40488\",\"static/chunks/40488-1f9f3ded68e601a8.js?dpl=0e5edb3a\",\"67338\",\"static/chunks/67338-b412adf18aad1faa.js?dpl=0e5edb3a\",\"98763\",\"static/chunks/98763-a8c7edb0a3cffca5.js?dpl=0e5edb3a\",\"33775\",\"static/chunks/33775-3672ab7360d87d1b.js?dpl=0e5edb3a\",\"43847\",\"static/chunks/43847-6402cb6fdad1fd0f.js?dpl=0e5edb3a\",\"14303\",\"static/chunks/14303-9da0ef47962168d0.js?dpl=0e5edb3a\",\"92780\",\"static/chunks/92780-5b217b7bd311aefe.js?dpl=0e5edb3a\",\"20769\",\"static/chunks/20769-5ef2f7204cb564dc.js?dpl=0e5edb3a\",\"71102\",\"static/chunks/71102-e7098f8bbe02d43e.js?dpl=0e5edb3a\",\"34603\",\"static/chunks/34603-ed78b85af36499d1.js?dpl=0e5edb3a\",\"8315\",\"static/chunks/8315-4666033ca171f9c4.js?dpl=0e5edb3a\",\"37264\",\"static/chunks/37264-818907131e57dd98.js?dpl=0e5edb3a\",\"33960\",\"static/chunks/33960-01825405bd588aa5.js?dpl=0e5edb3a\",\"25024\",\"static/chunks/25024-b7cce08e0223f6f7.js?dpl=0e5edb3a\",\"70289\",\"static/chunks/70289-5203dee71f3dbd71.js?dpl=0e5edb3a\",\"3158\",\"static/chunks/3158-63486babd906cf95.js?dpl=0e5edb3a\",\"63196\",\"static/chunks/app/community/tutorials/%5Bslug%5D/page-02274188d9f8b7ef.js?dpl=0e5edb3a\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"19:I[42721,[],\"IconMark\"]\n18:T4e7e,"])</script><script>self.__next_f.push([1,"### Introduction\n\nHeartbeat is an open-source program that provides cluster infrastructure capabilities — cluster membership and messaging — to client servers. These capabilities are a critical component in a high availability (HA) server infrastructure. In this tutorial, we will demonstrate how to create a 2-node HA server setup by simply using Heartbeat and a [DigitalOcean Reserved IP](https://www.digitalocean.com/community/tutorials/how-to-use-floating-ips-on-digitalocean).\n\nHeartbeat is typically used in conjunction with a cluster resource manager (CRM), such as Pacemaker, to achieve a complete HA setup. If you are looking to create a more robust HA setup, look into using [Corosync and Pacemaker](https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-corosync-pacemaker-and-floating-ips-on-ubuntu-14-04) or [Keepalived](https://www.digitalocean.com/community/tutorials/how-to-set-up-highly-available-web-servers-with-keepalived-and-floating-ips-on-ubuntu-14-04).\n\n## Goal\n\nWhen completed, the HA setup will consist of two Ubuntu 16.04 servers in an active/passive configuration. This will be accomplished by pointing to a Reserved IP, which is how your users will access your services or website, to point to the primary — or active — server unless a failure is detected. In the event that the Heartbeat service detects that the primary server is unavailable, the secondary server will automatically run a script to reassign the Reserved IP to itself via the DigitalOcean API. Thus, subsequent network traffic to the Reserved IP will be directed to your secondary server, which will act as the active server until the primary server becomes available again (at which point, the primary server will reassign the Reserved IP to itself).\n\n![Active/passive Diagram](https://www.digitalocean.com/api/static-content/v1/images?src=https%3A%2F%2Fassets.digitalocean.com%2Farticles%2Fhigh_availability%2Fha-diagram-animated.gif\u0026token=418c5f401b3a915a2732534597c966afa1a8c67fc0219298361070000305881c)\n\n\u003c$\u003e[note]\n**Note:** This tutorial is intended for demonstration purposes and only covers some of the aspects of setting up a reliable HA solution.\nThe main takeaways of this document are the details on how to install active/passive nodes at the gateway level and to tie them up to a Reserved IP.\nTo keep the tutorial simpler, instead of configuring reverse-proxy load balancers on each server, we will configure them to respond with their respective hostname and public IP address.\n\u003c$\u003e\n\nTo achieve this goal, we will follow these steps:\n\n- Create 2 Droplets that will receive traffic\n- Create a Reserved IP and assign it to one of the Droplets\n- Create a DNS A record that points to the Reserved IP (optional)\n- Install Heartbeat on Droplets\n- Configure Heartbeat to run Reserved IP reassignment service\n- Create Reserved IP reassignment service\n- Test failover\n\nWith this goal in mind, we can begin working on setting up our HA setup. \n\n## Prerequisites\n\nIn order to automate the reserved IP reassignment, we must use the DigitalOcean API. This means that you need to generate a Personal Access Token (PAT), which is an API token that can be used to authenticate to your DigitalOcean account, with *read* and *write* access. You can achieve this by following the [How To Generate a Personal Access Token](https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2#how-to-generate-a-personal-access-token) section of the API tutorial. Your PAT will be used in a script that will be added to both servers in your cluster. It is important that you keep it somewhere safe for reference, as it allows full access to your DigitalOcean account.\n\nIn addition to the API, this tutorial utilizes the following DigitalOcean features:\n\n- [Reserved IPs](https://www.digitalocean.com/community/tutorials/how-to-use-floating-ips-on-digitalocean)\n- [Metadata](https://www.digitalocean.com/community/tutorials/an-introduction-to-droplet-metadata)\n- [User Data (Cloud-Config scripts)](https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-config-scripting)\n\nPlease read the linked tutorials if you want to learn more about them.\n\n## Create Droplets\n\nThe first step is to create two Ubuntu Droplets in the same datacenter, which will act as the primary and secondary servers described above. In our example setup, we will name them \"primary\" and \"secondary\" for easy reference. We will install Nginx on both Droplets and replace their index pages with information that uniquely identifies them. This will allow us a simple way to demonstrate that the HA setup is working. For a production setup, your servers should run the web server or load balancer of your choice.\n\nCreate two Ubuntu 16.04 Droplets, **primary** and **secondary**, with this bash script as the user data:\n\n```\n[label Example User Data]\n#!/bin/bash\n\napt-get -y update\napt-get -y install nginx\nexport HOSTNAME=$(curl -s http://169.254.169.254/metadata/v1/hostname)\nexport PUBLIC_IPV4=$(curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/ipv4/address)\necho Droplet: $HOSTNAME, IP Address: $PUBLIC_IPV4 \u003e /var/www/html/index.html\n```\n\nThis will install Nginx and replace the contents of `index.html` with the Droplet's hostname and IP address (by referencing the Metadata service). Accessing either Droplet via its public IP address will show a basic webpage with the Droplet hostname and IP address, which will be useful for testing which Droplet the Reserved IP is pointing to at any given moment.\n\n## Create a Reserved IP\n\nIn the DigitalOcean Control Panel, click **Networking**, in the top menu, then **Reserved IPs** in the sub menu.\n\n![No Reserved IPs](https://www.digitalocean.com/api/static-content/v1/images?src=https%3A%2F%2Fassets.digitalocean.com%2Farticles%2Fheartbeat_1604%2Fassign_floating_ip.png\u0026token=995a9886cee8bef0d2122c0eee9e9e267db929c42915c66ebd4997a82306cebf)\n\nAssign a Reserved IP to your **primary** Droplet, then click the **Assign Reserved IP** button.\n\nAfter the Reserved IP has been assigned, check that you can reach the Droplet that it was assigned to by visiting it in a web browser.\n\n```\nhttp://\u003c^\u003eyour_reserved_ip\u003c^\u003e\n```\n\nYou should see the index page of your primary Droplet.\n\n## Configure DNS (Optional)\n\nIf you want to be able to access your HA setup via a domain name, go ahead and create an **A record** in your DNS that points your domain to your Reserved IP address. If your domain is using DigitalOcean's nameservers, follow [step three](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean#step-three—configure-your-domain) of the How To Set Up a Host Name with DigitalOcean tutorial. Once that propagates, you may access your active server via the domain name.\n\nThe example domain name we'll use is `example.com`. If you don't have a domain name right now, you should use the Reserved IP address instead.\n\n## Install Heartbeat\n\nThe next step is to install Heartbeat on both servers. The simplest way to install Heartbeat is to use apt-get:\n\n```\nsudo apt-get update\nsudo apt-get install heartbeat\n```\n\nHeartbeat is now installed but it needs to be configured before it will do anything.\n\n## Configure Heartbeat\n\nIn order to get our desired cluster up and running, we must create and set up these Heartbeat configuration files identically in both servers’ `/etc/ha.d` directories: \n\n1. **`ha.cf`** — Global configuration of the Heartbeat cluster, including its member nodes\n2. **`authkeys`** — Contains a security key that provides nodes a way to authenticate to the cluster\n3. **`haresources`** — Specifies the services that are managed by the cluster and the node that is the preferred owner of the services. Note that this file is not used in a setup that uses a CRM like Pacemaker\n\nWe will also need to provide a script that will perform the Reserved IP reassignment in the event that the primary Droplet's availability changes.\n\n### Gather Node Information\n\nBefore configuring `ha.cf`, we should look up the names of each node. Heartbeat requires that each node name matches their respective `uname -n` output. \n\nOn **both servers**, run this command to look up the appropriate node names:\n\n```command\nuname -n\n```\n\nNote the output of the command. The example node names are \"primary\" and \"secondary\", which matches what we named the Droplets.\n\nTo determine which nodes are available, we will also need to look up the network interface and IP address that each node will use to communicate with the rest of the cluster. You may use any network interface, as long as each node can reach the other nodes in the cluster. We'll use the public interface of our Droplets, which happens to be `eth0`.\n\nOn **both servers**, use this command to look up the IP address of the `eth0` interface (or look it up in the DigitalOcean Control Panel):\n\n```command\nip addr show eth0\n```\n\n```\n[secondary_label ip addr show eth0 output:]\n2: eth0: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n link/ether 04:01:76:a5:45:01 brd ff:ff:ff:ff:ff:ff\n inet \u003c^\u003e198.51.100.5\u003c^\u003e/24 brd 198.51.100.255 scope global eth0\n valid_lft forever preferred_lft forever\n inet 10.17.0.28/16 scope global eth0\n valid_lft forever preferred_lft forever\n inet6 fe80::601:76ff:fea5:4501/64 scope link\n valid_lft forever preferred_lft forever\n```\n\nNote the IP address of the network interface (highlighted in the example). Be sure to get the IP addresses of both servers.\n\n### Create ha.cf File\n\nOn **both servers**, open `/etc/ha.d/ha.cf` in your favorite editor. We'll use nano:\n\n```command\nsudo nano /etc/ha.d/ha.cf\n```\n\nThe file should be new and empty. We need to add the network interfaces and names of each node in our cluster.\n\nCopy and paste this configuration into the file, then replace the respective node names and IP addresses with the values that we looked up earlier. In this example, **primary**'s IP address is `198.51.100.5` and **secondary**'s IP address is `198.51.100.6`:\n\n```\n[label /etc/ha.d/ha.cf]\nnode \u003c^\u003eprimary\u003c^\u003e\nucast eth0 \u003c^\u003e198.51.100.5\u003c^\u003e\nnode \u003c^\u003esecondary\u003c^\u003e\nucast eth0 \u003c^\u003e198.51.100.6\u003c^\u003e\n```\n\nSave and exit the file. Next, we'll set up the cluster's authorization key.\n\n## Create authkeys File\n\nThe authorization key is used to allow cluster members to join a cluster. We can simply generate a random key for this purpose.\n\nOn the **primary** node, run these commands to generate a suitable authorization key in an environment variable named `AUTH_KEY`:\n\n```\n[environment second]\nif [ -z \"${AUTH_KEY}\" ]; then\n export AUTH_KEY=\"$(command dd if='/dev/urandom' bs=512 count=1 2\u003e'/dev/null' \\\n | command openssl sha1 \\\n | command cut --delimiter=' ' --fields=2)\"\nfi\n```\n\nThen write the `/etc/ha.d/authkeys` file with these commands:\n\n```\n[environment second]\nsudo bash -c \"{\n echo auth1\n echo 1 sha1 $AUTH_KEY\n} \u003e /etc/ha.d/authkeys\"\n```\n\nCheck the contents of the `authkeys` file like this:\n\n```command\n[environment second]\nsudo cat /etc/ha.d/authkeys\n```\n\nIt should look something like this (with a different authorization key):\n\n```\n[label /etc/ha.d/authkeys ]\n[environment second]\nauth1\n1 sha1 \u003c^\u003ed1e6557e2fcb30ff8d4d3ae65b50345fa46a2faa\u003c^\u003e\n```\n\nEnsure that the file is only readable by the root user:\n\n```command\n[environment second]\nsudo chmod 600 /etc/ha.d/authkeys\n```\n\nNow copy the `/etc/ha.d/authkeys` file from your primary node to your secondary node. You can do this manually, or with `scp`.\n\nOn the **secondary** server, be sure to set the permissions of the `authkeys` file:\n\n```command\n[environment third]\nsudo chmod 600 /etc/ha.d/authkeys\n```\n\nAt this point, both servers should have an identical `/etc/ha.d/authkeys` file.\n\n### Create haresources File\n\nThe `haresources` file specifies **preferred hosts** paired with services that the cluster manages. The preferred host is the node that *should* run the associated service(s) if the node is available. If the preferred host **is not** available, i.e. it is not reachable by the cluster, one of the other nodes will take over. In other words, the secondary server will take over if the primary server goes down.\n\nOn **both servers**, open the `haresources` file in your favorite editor. We'll use nano:\n\n```command\nsudo nano /etc/ha.d/haresources\n```\n\nNow add this line to the file, substituting in your primary node's name if it is different:\n\n```\n[label /etc/ha.d/haresources]\n\u003c^\u003eprimary\u003c^\u003e floatip\n```\n\nSave and exit the file. This configures the **primary** server as the preferred host for the `floatip` service, which is currently undefined. Let's set up the `floatip` service next.\n\n## Create Reserved IP Reassignment Service\n\nOur Heartbeat cluster is configured to maintain the `floatip` service, which a node can use to assign the Reserved IP to itself, but we still need to create the service. Before we set up the service itself, however, let's create a script that will assign the Reserved IP, via the DigitalOcean API, to the node that runs it. Then we will create the `floatip` service which will run the Reserved IP reassignment script.\n\n### Create assign-ip Script\n\nFor our example, we'll download a basic Python script that assigns a Reserved IP to a given Droplet ID, using the DigitalOcean API.\n\nOn **both servers**, download the `assign-ip` Python script:\n\n```command\nsudo curl -L -o /usr/local/bin/assign-ip http://do.co/assign-ip\n```\nOn **both servers**, make it executable:\n\n```command\nsudo chmod +x /usr/local/bin/assign-ip\n```\nSince our script is making a request to an API, we’ll need the Python [Requests](https://www.digitalocean.com/community/tutorials/how-to-work-with-web-data-using-requests-and-beautiful-soup-with-python-3) library installed:\n```\nsudo apt-get install python-requests\n```\n\nUse of the `assign-ip` script requires the following details:\n\n- **Reserved IP:** The first argument to the script, the Reserved IP that is being assigned\n- **Droplet ID:** The second argument to the script, the Droplet ID that the Reserved IP should be assigned to\n- **DigitalOcean PAT (API token):** Passed in as the environment variable `DO_TOKEN`, your read/write DigitalOcean PAT\n\nFeel free to review the contents of the script before continuing.\n\nNow we're ready to create the `floatip` service.\n\n### Create `floatip` Service\n\nTo create the `floatip` service, all we need to do is create an init script that invokes the `assign-ip` script that we created earlier, and responds to `start` and `stop` subcommands. This init script will be responsible for looking up the Droplet ID of the server, via the Droplet Metadata service. Also, it will require the Reserved IP that will be reassigned, and the DigitalOcean API token (the Personal Access Token mentioned in the prerequisites section).\n\nOn **both servers**, add open `/etc/init.d/floatip` in an editor:\n\n```command\nsudo nano /etc/init.d/floatip\n```\n\nThen copy and paste in this init script, replacing the highlighted parts with your DigitalOcean API key and the Reserved IP that should be reassigned:\n\n```line_numbers\n[label /etc/init.d/floatip]\n#!/bin/bash\n\nparam=$1\n\nexport DO_TOKEN='\u003c^\u003eyour_DO_API_token\u003c^\u003e'\nIP='\u003c^\u003eyour_reserved_IP_address\u003c^\u003e'\nID=$(curl -s http://169.254.169.254/metadata/v1/id)\n\nif [ \"start\" == \"$param\" ] ; then\n python /usr/local/bin/assign-ip $IP $ID\n exit 0\nelif [ \"stop\" == \"$param\" ] ; then\n exit 0;\nelif [ \"status\" == \"$param\" ] ; then\n exit 0;\nelse\n echo \"no such command $param\"\n exit 1;\nfi\n```\n\nSave and exit the file.\n\nMake the script executable:\n\n```command\nsudo chmod u+x /etc/init.d/floatip\n```\n\nWhen this `floatip` service is started, it will simply call the `assign-ip` Python script and assign the specified Reserved IP to the Droplet that executed the script. This is the script that will be called by the **secondary** server, if the **primary** server fails, to reassign the Reserved IP to itself, . Likewise, the same script will be used by the **primary** server, to reclaim the Reserved IP, once it rejoins the cluster.\n\n## Start Heartbeat\n\nNow that Heartbeat is configured and all the scripts it relies on are set up, we're ready to start the Heartbeat cluster!\n\nOn **both servers**, run this command to start Heartbeat:\n\n```command\nsudo systemctl start heartbeat\n```\nOur HA setup is now complete! Before moving on, let's test that it works as intended.\n\n## Test High Availability\n\nIt's important to test that a high availability setup works, so let's do that now.\n\nCurrently, the Reserved IP is assigned to the **primary** node. Accessing the Reserved IP now, via the IP address or by the domain name that is pointing to it, will simply show the index page of the **primary** server. If you used the example user data script, it will look something like this:\n\n```\n[secondary_label Reserved IP is pointing to primary server]\nDroplet: \u003c^\u003eprimary\u003c^\u003e, IP Address: \u003c^\u003e198.51.100.5\u003c^\u003e\n```\n\nThis indicates that the Reserved IP is, in fact, assigned to the primary Droplet.\n\nNow, let's open a local terminal and use `curl` to access the Reserved IP on a 1-second loop. Use this command to do so, but be sure to replace the URL with your domain or Reserved IP address:\n\n```command\n[environment fourth]\nwhile true; do curl http://\u003c^\u003eexample.com\u003c^\u003e; sleep 1; done\n```\n\nCurrently, this will output the same Droplet name and IP address of the primary server. If we cause the primary server to fail, by powering it off or stopping the Heartbeat service, we will see if the Reserved IP gets reassigned to the secondary server.\n\nLet's reboot the **primary** server now. Do so via the DigitalOcean Control Panel or by running this command on the primary server:\n\n```command\nsudo reboot\n```\n\nAfter a few moments, the primary server should become unavailable. Pay attention to the output of the `curl` loop that is running in the terminal. You should notice output that looks like this:\n\n```\n[secondary_label curl loop output:]\nDroplet: \u003c^\u003eprimary\u003c^\u003e, IP Address: \u003c^\u003e198.51.100.5\u003c^\u003e\n...\ncurl: (7) Failed to connect to \u003c^\u003eexample.com\u003c^\u003e port 80: Connection refused\nDroplet: \u003c^\u003esecondary\u003c^\u003e, IP Address: \u003c^\u003e198.51.100.6\u003c^\u003e\nDroplet: \u003c^\u003esecondary\u003c^\u003e, IP Address: \u003c^\u003e198.51.100.6\u003c^\u003e\n...\n```\n\nThat is, the Reserved IP address should be reassigned to point to the IP address of the **secondary** server. That means that your HA setup is working, as a successful automatic failover has occurred.\n\nYou may or may not see the `Connection refused` error, which can occur if you try and access the Reserved IP between the primary server failure and the Reserved IP reassignment completion. \n\nNow, you may power on your **primary** Droplet, via the DigitalOcean Control Panel. Because Heartbeat is configured with the primary Droplet as the **preferred host** to run the Reserved IP reassignment script, the Reserved IP will automatically point back to the primary server as soon as it becomes available again.\n\n## Conclusion\n\nCongratulations! You now have a basic HA server setup using Heartbeat and a DigitalOcean Reserved IP.\n\nIf you are looking to create a more robust HA setup, look into using [Corosync and Pacemaker](https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-corosync-pacemaker-and-floating-ips-on-ubuntu-14-04) or [Keepalived](https://www.digitalocean.com/community/tutorials/how-to-set-up-highly-available-web-servers-with-keepalived-and-floating-ips-on-ubuntu-14-04).\n\nIn this example, we’ve installed Nginx as a basic load balancer but if you wanted to improve your Heartbeat setup utilizing a reverse-proxy load balancer, you could do so by either configuring [Nginx](https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-web-server-and-reverse-proxy-for-apache-on-one-ubuntu-14-04-droplet) as one, or using HAProxy.\n\nPlease keep in mind that with either alternative you choose to use, you will want to bind your load balancer/reverse-proxy to the **anchor IP address** so that your users can only access your servers via the Reserved IP address (and not via the public IP address of each server).\n\n"])</script><script>self.__next_f.push([1,"c:[\"$\",\"$e\",null,{\"fallback\":null,\"children\":[\"$\",\"$L17\",\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\",{\"data\":{\"slug\":\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\",\"tutorial\":{\"id\":2488,\"original_id\":null,\"slug\":\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\",\"tutorial_type\":\"tutorial\",\"title\":\"How To Create a High Availability Setup with Heartbeat and Reserved IPs on Ubuntu 16.04\",\"description\":\"Heartbeat is an open source program that provides cluster infrastructure capabilities—cluster membership and messaging—to client servers, which is a critical component in a high availability (HA) server infrastructure. Heartbeat is typically used in conjunction with a cluster resource manager (CRM), such as Pacemaker, to achieve a complete HA setup. However, in this tutorial, we will demonstrate how to create a 2-node HA server setup by simply using Heartbeat and a DigitalOcean Reserved IP.\",\"content\":\"$18\",\"language\":\"en\",\"state\":\"published\",\"last_validated_at\":\"2017-11-22T21:40:52.925Z\",\"published_at\":\"2017-11-22T21:41:21.922Z\",\"views\":12,\"follow_up_questions_enabled_at\":null,\"comments_locked_at\":null,\"raw_html_allowed_in_markdown_at\":null,\"featured_at\":null,\"header_url\":\"https://community-cdn-digitalocean-com.global.ssl.fastly.net/uPWQ3PtrCUXHamqCnTC2vs1S\",\"conclusion_cta\":null,\"right_side_nav_cta\":null,\"user_views\":\"12\",\"original\":{},\"authors\":[{\"user_name\":null,\"relation\":\"author\",\"user_id\":373212,\"item_id\":2488,\"item_type\":\"tutorial\",\"created_at\":\"2018-07-11T18:09:09.342Z\",\"updated_at\":\"2020-09-24T18:51:41.464Z\",\"user\":{\"id\":373212,\"username\":\"scanevari\",\"slug\":\"scanevari\",\"first_name\":\"Sebastian\",\"last_name\":\"Canevari\",\"title\":null,\"bio\":\"\",\"website\":\"\",\"twitter_handle\":null,\"github_handle\":null,\"linkedin_url\":null,\"stackoverflow_url\":null,\"show_completed_tutorials_at\":null,\"city\":null,\"country\":null,\"skills\":\"\",\"has_seen_registration_at\":\"2022-08-30T17:06:14.808Z\",\"created_at\":\"2017-11-16T17:02:33.099Z\",\"updated_at\":\"2020-03-04T16:49:03.137Z\",\"gravatar\":\"https://www.gravatar.com/avatar/a47116c0b321b81298ebd230f4bdfb13f93aba919bd3f42c6f0c2af3eb624a3e?default=retro\"}}],\"editors\":[],\"translators\":[],\"series\":[],\"needs_review\":false,\"tags\":[{\"id\":5,\"state\":\"published\",\"slug\":\"ubuntu\",\"name\":\"Ubuntu\",\"description\":\"Ubuntu is a popular Linux distribution open-source operating system that’s operated by Canonical. Canonical supplies support and security updates for every release of Ubuntu and oversees its ongoing development. Ubuntu has multiple editions, including core, server, and desktop, that allow it to run across different types of machines. It can be used on personal computers, servers, supercomputers, in cloud computing, and more.\",\"created_at\":\"2022-01-31T18:04:44.879Z\",\"updated_at\":\"2024-03-21T18:57:36.255Z\",\"admin_use_only_at\":null,\"admin_view_only_at\":null,\"show_in_cms_at\":\"2025-12-15T17:52:22.894Z\",\"type\":\"tag\"},{\"id\":36,\"state\":\"published\",\"slug\":\"networking\",\"name\":\"Networking\",\"description\":\"A basic understanding of networking is important for anyone managing a server. Not only is it essential for getting your services online and running smoothly, it also gives you the insight needed to diagnose problems.\",\"created_at\":\"2022-01-31T18:04:44.879Z\",\"updated_at\":\"2022-01-30T19:05:31.475Z\",\"admin_use_only_at\":null,\"admin_view_only_at\":null,\"show_in_cms_at\":null,\"type\":\"tag\"},{\"id\":28,\"state\":\"published\",\"slug\":\"digitalocean\",\"name\":\"DigitalOcean\",\"description\":\"DigitalOcean is our cloud computing company with the services you need to grow your business or project faster on an affordable cloud you'll love.\",\"created_at\":\"2022-01-31T18:04:44.879Z\",\"updated_at\":\"2022-06-30T22:38:02.317Z\",\"admin_use_only_at\":null,\"admin_view_only_at\":null,\"show_in_cms_at\":null,\"type\":\"tag\"},{\"id\":95,\"state\":\"published\",\"slug\":\"high-availability\",\"name\":\"High Availability\",\"description\":\"High availability describes the quality of a system or component that assures a high level of operational performance for a given period of time. Users look for high availability when thinking about how to decrease downtime and eliminate single points of failure.\",\"created_at\":\"2015-10-15T15:52:14.088Z\",\"updated_at\":\"2022-01-30T19:04:27.311Z\",\"admin_use_only_at\":null,\"admin_view_only_at\":null,\"show_in_cms_at\":null,\"type\":\"tag\"},{\"id\":73,\"state\":\"published\",\"slug\":\"load-balancing\",\"name\":\"Load Balancing\",\"description\":\"Load Balancing involves redistributing a computer’s workload between two or more machines. This allows for a more efficient use of computing resources and prevents any one machine from being overloaded, which is especially important for high-traffic websites.\",\"created_at\":\"2022-01-31T18:04:44.879Z\",\"updated_at\":\"2022-01-30T19:04:35.221Z\",\"admin_use_only_at\":null,\"admin_view_only_at\":null,\"show_in_cms_at\":null,\"type\":\"tag\"},{\"id\":139,\"state\":\"published\",\"slug\":\"solutions\",\"name\":\"Solutions\",\"description\":\"Content highlighting the DO suite of products.\",\"created_at\":\"2018-01-26T16:56:06.689Z\",\"updated_at\":\"2022-01-09T04:20:07.502Z\",\"admin_use_only_at\":null,\"admin_view_only_at\":null,\"show_in_cms_at\":null,\"type\":\"tag\"}],\"teams\":[],\"origins\":[]},\"headers\":[{\"slug\":\"goal\",\"content\":\"Goal\",\"text\":\"Goal\",\"rendered\":\"Goal\",\"level\":2},{\"slug\":\"prerequisites\",\"content\":\"Prerequisites\",\"text\":\"Prerequisites\",\"rendered\":\"Prerequisites\",\"level\":2},{\"slug\":\"create-droplets\",\"content\":\"Create Droplets\",\"text\":\"Create Droplets\",\"rendered\":\"Create Droplets\",\"level\":2},{\"slug\":\"create-a-reserved-ip\",\"content\":\"Create a Reserved IP\",\"text\":\"Create a Reserved IP\",\"rendered\":\"Create a Reserved IP\",\"level\":2},{\"slug\":\"configure-dns-optional\",\"content\":\"Configure DNS (Optional)\",\"text\":\"Configure DNS (Optional)\",\"rendered\":\"Configure DNS (Optional)\",\"level\":2},{\"slug\":\"install-heartbeat\",\"content\":\"Install Heartbeat\",\"text\":\"Install Heartbeat\",\"rendered\":\"Install Heartbeat\",\"level\":2},{\"slug\":\"configure-heartbeat\",\"content\":\"Configure Heartbeat\",\"text\":\"Configure Heartbeat\",\"rendered\":\"Configure Heartbeat\",\"level\":2},{\"slug\":\"create-authkeys-file\",\"content\":\"Create authkeys File\",\"text\":\"Create authkeys File\",\"rendered\":\"Create authkeys File\",\"level\":2},{\"slug\":\"create-reserved-ip-reassignment-service\",\"content\":\"Create Reserved IP Reassignment Service\",\"text\":\"Create Reserved IP Reassignment Service\",\"rendered\":\"Create Reserved IP Reassignment Service\",\"level\":2},{\"slug\":\"start-heartbeat\",\"content\":\"Start Heartbeat\",\"text\":\"Start Heartbeat\",\"rendered\":\"Start Heartbeat\",\"level\":2},{\"slug\":\"test-high-availability\",\"content\":\"Test High Availability\",\"text\":\"Test High Availability\",\"rendered\":\"Test High Availability\",\"level\":2},{\"slug\":\"conclusion\",\"content\":\"Conclusion\",\"text\":\"Conclusion\",\"rendered\":\"Conclusion\",\"level\":2}],\"comments\":[{\"id\":66281,\"type\":\"comment\",\"content\":\"This comment has been deleted\",\"parent_id\":2488,\"parent_type\":\"tutorial\",\"top_level_id\":2488,\"top_level_type\":\"tutorial\",\"user_id\":378171,\"resolved_by_id\":null,\"created_at\":\"2017-12-06T18:23:55.353Z\",\"updated_at\":\"2017-12-06T19:20:32.670Z\",\"state\":\"trashed\",\"comments_locked_at\":null,\"user\":{\"id\":378171,\"username\":\"harris028a93f252a7ddff2cf6\",\"slug\":\"harris028a93f252a7ddff2cf6\",\"first_name\":null,\"last_name\":null,\"title\":null,\"bio\":null,\"website\":null,\"twitter_handle\":null,\"github_handle\":null,\"linkedin_url\":null,\"stackoverflow_url\":null,\"show_completed_tutorials_at\":null,\"city\":null,\"country\":null,\"skills\":null,\"has_seen_registration_at\":\"2022-08-30T17:06:14.808Z\",\"created_at\":\"2017-12-06T18:07:05.535Z\",\"updated_at\":\"2017-12-06T19:21:02.871Z\",\"badges\":[],\"gravatar\":\"https://www.gravatar.com/avatar/a48884a201194db7def5fe172aaea4ba9539d133658303bd2cbf133cbf2d663e?default=retro\"},\"editor\":{},\"resolved_by\":{},\"user_report\":{}},{\"id\":66284,\"type\":\"comment\",\"content\":\"I'm having an issue where the floatingip switch works beautifully the first time the primary node goes down, but doesn't work again after that. It seems like the nodes may not be rejoining the cluster upon restart... any ideas how to fix this?\",\"parent_id\":2488,\"parent_type\":\"tutorial\",\"top_level_id\":2488,\"top_level_type\":\"tutorial\",\"user_id\":378171,\"resolved_by_id\":null,\"created_at\":\"2017-12-06T20:44:14.072Z\",\"updated_at\":\"2020-12-14T09:12:00.875Z\",\"state\":\"published\",\"comments_locked_at\":null,\"user\":{\"id\":378171,\"username\":\"harris028a93f252a7ddff2cf6\",\"slug\":\"harris028a93f252a7ddff2cf6\",\"first_name\":null,\"last_name\":null,\"title\":null,\"bio\":null,\"website\":null,\"twitter_handle\":null,\"github_handle\":null,\"linkedin_url\":null,\"stackoverflow_url\":null,\"show_completed_tutorials_at\":null,\"city\":null,\"country\":null,\"skills\":null,\"has_seen_registration_at\":\"2022-08-30T17:06:14.808Z\",\"created_at\":\"2017-12-06T18:07:05.535Z\",\"updated_at\":\"2017-12-06T19:21:02.871Z\",\"badges\":[],\"gravatar\":\"https://www.gravatar.com/avatar/a48884a201194db7def5fe172aaea4ba9539d133658303bd2cbf133cbf2d663e?default=retro\"},\"editor\":{},\"resolved_by\":{},\"user_report\":{}},{\"id\":67125,\"type\":\"comment\",\"content\":\"Animated gif showing Floating IP switching between the Loadbalancers but the tutorial seems to be covering only the server level. How can we float the IPs between the Loadbalancer based on the corresponding server health ?\",\"parent_id\":2488,\"parent_type\":\"tutorial\",\"top_level_id\":2488,\"top_level_type\":\"tutorial\",\"user_id\":357120,\"resolved_by_id\":null,\"created_at\":\"2018-01-15T07:09:55.467Z\",\"updated_at\":\"2018-01-15T07:09:56.144Z\",\"state\":\"published\",\"comments_locked_at\":null,\"user\":{\"id\":357120,\"username\":\"ispg\",\"slug\":\"ispg\",\"first_name\":\"ISPG\",\"last_name\":\"\",\"title\":null,\"bio\":\"Just another admin\",\"website\":\"\",\"twitter_handle\":null,\"github_handle\":null,\"linkedin_url\":null,\"stackoverflow_url\":null,\"show_completed_tutorials_at\":null,\"city\":null,\"country\":null,\"skills\":\"\",\"has_seen_registration_at\":\"2022-08-30T17:06:14.808Z\",\"created_at\":\"2017-09-27T12:35:30.945Z\",\"updated_at\":\"2017-09-27T12:37:04.860Z\",\"badges\":[],\"gravatar\":\"https://www.gravatar.com/avatar/945353c0707f62fbc2e10e7de51f71df6d80b986b89c1e0f630dd9c5dc1cd807?default=retro\"},\"editor\":{},\"resolved_by\":{},\"user_report\":{}},{\"id\":94241,\"type\":\"comment\",\"content\":\"If you try to do this on anything past Ubuntu 18 you will need to modify the references to all use Python3, or you will have to install Python2.\\r\\n\\r\\n\",\"parent_id\":2488,\"parent_type\":\"tutorial\",\"top_level_id\":2488,\"top_level_type\":\"tutorial\",\"user_id\":1297861,\"resolved_by_id\":null,\"created_at\":\"2020-12-14T09:08:17.961Z\",\"updated_at\":\"2020-12-14T09:08:19.447Z\",\"state\":\"published\",\"comments_locked_at\":null,\"user\":{\"id\":1297861,\"username\":\"MatthewEnderle\",\"slug\":\"matthewenderle\",\"first_name\":null,\"last_name\":null,\"title\":null,\"bio\":\"\",\"website\":\"https://enderle.io\",\"twitter_handle\":null,\"github_handle\":\"MatthewEnderle\",\"linkedin_url\":null,\"stackoverflow_url\":null,\"show_completed_tutorials_at\":null,\"city\":null,\"country\":null,\"skills\":\"\",\"has_seen_registration_at\":\"2022-08-30T17:06:14.808Z\",\"created_at\":\"2020-12-14T09:05:51.514Z\",\"updated_at\":\"2020-12-14T09:06:53.214Z\",\"badges\":[],\"gravatar\":\"https://www.gravatar.com/avatar/7b91b6105671e4dd7476dd834aef2372f75c8efd60aba9d253562326f3027cf7?default=retro\"},\"editor\":{},\"resolved_by\":{},\"user_report\":{}},{\"id\":96236,\"type\":\"comment\",\"content\":\"Is this tutorial still working under Ubuntu 20.04?\",\"parent_id\":2488,\"parent_type\":\"tutorial\",\"top_level_id\":2488,\"top_level_type\":\"tutorial\",\"user_id\":254588,\"resolved_by_id\":null,\"created_at\":\"2021-02-22T09:34:37.977Z\",\"updated_at\":\"2021-02-22T09:34:39.304Z\",\"state\":\"published\",\"comments_locked_at\":null,\"user\":{\"id\":254588,\"username\":\"marketing41acc4\",\"slug\":\"marketing41acc4\",\"first_name\":null,\"last_name\":null,\"title\":null,\"bio\":null,\"website\":null,\"twitter_handle\":null,\"github_handle\":null,\"linkedin_url\":null,\"stackoverflow_url\":null,\"show_completed_tutorials_at\":null,\"city\":null,\"country\":null,\"skills\":null,\"has_seen_registration_at\":\"2022-08-30T17:06:14.808Z\",\"created_at\":\"2016-10-18T05:41:51.709Z\",\"updated_at\":\"2022-12-22T03:56:15.445Z\",\"badges\":[],\"gravatar\":\"https://www.gravatar.com/avatar/e7fab4fccc9fa372a89c1b6156d8dc0e8b3d5db224bb8a497ecf50e940fb36df?default=retro\"},\"editor\":{},\"resolved_by\":{},\"user_report\":{}}],\"commentsRequestParams\":[\"tutorial\",2488,{\"type\":\"comment\",\"page\":0,\"perPage\":10}],\"translations\":[{\"key\":\"en\",\"label\":\"English\",\"value\":\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\"}],\"followUpQuestions\":[],\"questionsRequestParams\":{\"page\":0,\"perPage\":5},\"versions\":[{\"How To Create a High Availability Setup with Heartbeat and Reserved IPs\":[{\"distribution\":\"Ubuntu\",\"distribution_version\":\"14.04\",\"key\":\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-14-04\",\"tutorial_type\":\"tutorial\",\"label\":\"Ubuntu 14.04\",\"value\":1791,\"canonical\":false},{\"distribution\":\"Ubuntu\",\"distribution_version\":\"16.04\",\"key\":\"how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\",\"tutorial_type\":\"tutorial\",\"label\":\"Ubuntu 16.04\",\"value\":2488,\"canonical\":false},{\"key\":\"/community/tutorial-collections/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips\",\"label\":\"See More\",\"value\":\"see-more\"}]}],\"canonicalVersion\":null,\"tutorialToast\":null,\"discordCTA\":[{\"title\":\"Connect on Discord\",\"body\":\"Join the conversation in our Discord to connect with fellow developers\",\"link\":{\"href\":\"https://discord.gg/digitalocean\",\"children\":\"Visit Discord\"}}]},\"featuredTutorials\":[{\"id\":6448,\"original_id\":null,\"slug\":\"s-o-l-i-d-the-first-five-principles-of-object-oriented-design\",\"tutorial_type\":\"conceptual-article\",\"title\":\"SOLID Design Principles Explained: Building Better Software Architecture\",\"last_validated_at\":\"2025-06-12T00:00:00.000Z\",\"header_url\":\"https://doimages.nyc3.cdn.digitaloceanspaces.com/tutorials/object-oriented-design/solid-object-oriented-design.jpg\",\"user_views\":\"475\",\"original\":{},\"primary_tag\":{},\"views\":475,\"authors\":[{\"item_id\":6448,\"relation\":\"author\",\"user\":{\"email\":null}}],\"editors\":[{\"item_id\":6448,\"relation\":\"editor\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/c91039d94d0ab6e82a10aaf08e3c1c341d5744c8533ff6d077ee4a765246d8d3?default=retro\"}},{\"item_id\":6448,\"relation\":\"editor\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/e62feb1c87c91d8867e05899575305a09ddae1b6a064e823abce1fd3182d61ea?default=retro\"}}],\"translators\":[],\"series\":[],\"needs_review\":{},\"tags\":[],\"teams\":[],\"origins\":[]},{\"id\":2109,\"original_id\":null,\"slug\":\"how-to-remove-docker-images-containers-and-volumes\",\"tutorial_type\":\"tutorial\",\"title\":\"How To Remove Docker Images, Containers, and Volumes\",\"last_validated_at\":\"2026-01-29T04:42:55.000Z\",\"header_url\":\"https://doimages.nyc3.cdn.digitaloceanspaces.com/007BlogBanners2024/droplet-docker-1(mustard).png\",\"user_views\":\"494\",\"original\":{},\"primary_tag\":{},\"views\":494,\"authors\":[{\"item_id\":2109,\"relation\":\"author\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/56a1a63779e1c0815ad0d8db85f9355e88957654cc863d598e44712c776dac84?default=retro\"}},{\"item_id\":2109,\"relation\":\"author\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/c91039d94d0ab6e82a10aaf08e3c1c341d5744c8533ff6d077ee4a765246d8d3?default=retro\"}}],\"editors\":[{\"item_id\":2109,\"relation\":\"editor\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/e62feb1c87c91d8867e05899575305a09ddae1b6a064e823abce1fd3182d61ea?default=retro\"}}],\"translators\":[],\"series\":[],\"needs_review\":{},\"tags\":[],\"teams\":[],\"origins\":[]},{\"id\":54,\"original_id\":null,\"slug\":\"how-to-create-a-new-user-and-grant-permissions-in-mysql\",\"tutorial_type\":\"tutorial\",\"title\":\"How to Create a MySQL User and Grant Privileges (Step-by-Step)\",\"last_validated_at\":\"2026-01-23T00:00:00.000Z\",\"header_url\":\"https://community-cdn-digitalocean-com.global.ssl.fastly.net/2NccWh7WcN1dstcGRLxpvLFG\",\"user_views\":\"552\",\"original\":{},\"primary_tag\":{},\"views\":552,\"authors\":[{\"item_id\":54,\"relation\":\"author\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/a56984dab218f3cb0031f0860ba2b18401b79573e4a10f8c6984a69daf4604c6?default=retro\"}}],\"editors\":[{\"item_id\":54,\"relation\":\"editor\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/c91039d94d0ab6e82a10aaf08e3c1c341d5744c8533ff6d077ee4a765246d8d3?default=retro\"}},{\"item_id\":54,\"relation\":\"editor\",\"user\":{\"gravatar\":\"https://www.gravatar.com/avatar/9356eb1fb0a8794fbdae4304edafe6ccb73d1ee2275a4db2f755d6188e48f737?default=retro\"}}],\"translators\":[],\"series\":[],\"needs_review\":{},\"tags\":[],\"teams\":[],\"origins\":[]}]}]}]\n"])</script><script>self.__next_f.push([1,"f:null\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"title\",\"0\",{\"children\":\"How To Create a High Availability Setup with Heartbeat and Reserved IPs on Ubuntu 16.04 | DigitalOcean\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Heartbeat is an open source program that provides cluster infrastructure capabilities—cluster membership and messaging—to client servers, which is a critical… \"}],[\"$\",\"link\",\"2\",{\"rel\":\"canonical\",\"href\":\"https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\"}],[\"$\",\"link\",\"3\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\"}],[\"$\",\"link\",\"4\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"How To Create a High Availability Setup with Heartbeat and Reserved IPs on Ubuntu 16.04 | DigitalOcean\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Heartbeat is an open source program that provides cluster infrastructure capabilities—cluster membership and messaging—to client servers, which is a critical… \"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-heartbeat-and-reserved-ips-on-ubuntu-16-04\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image\",\"content\":\"https://community-cdn-digitalocean-com.global.ssl.fastly.net/uPWQ3PtrCUXHamqCnTC2vs1S\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:title\",\"content\":\"How To Create a High Availability Setup with Heartbeat and Reserved IPs on Ubuntu 16.04 | DigitalOcean\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:description\",\"content\":\"Heartbeat is an open source program that provides cluster infrastructure capabilities—cluster membership and messaging—to client servers, which is a critical… \"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:image\",\"content\":\"https://community-cdn-digitalocean-com.global.ssl.fastly.net/uPWQ3PtrCUXHamqCnTC2vs1S\"}],[\"$\",\"link\",\"14\",{\"rel\":\"icon\",\"href\":\"/_do-www-marketing/0e5edb3a/_next/static/media/favicon.91372345.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"/_do-www-marketing/0e5edb3a/_next/static/media/favicon.00b9c167.ico\",\"type\":\"image/x-icon\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"16\",{\"rel\":\"apple-touch-icon\",\"href\":\"/_do-www-marketing/0e5edb3a/_next/static/media/apple-touch-icon.9537f22a.png\",\"sizes\":\"180x180\"}],[\"$\",\"$L19\",\"17\",{}]]\n"])</script></body></html>