[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fget-started\u002Ffirst-app":3,"docs:nav":546,"docs:surround:\u002Fdocs\u002Fget-started\u002Ffirst-app":748},{"id":4,"title":5,"body":6,"description":536,"extension":537,"launchGate":538,"meta":539,"navigation":540,"path":541,"seo":542,"stem":543,"stub":544,"__hash__":545},"docs_en\u002Fdocs\u002F1.get-started\u002F5.first-app.md","Your first app",{"type":7,"value":8,"toc":524},"minimark",[9,18,21,26,38,42,49,120,125,132,145,149,171,174,195,199,222,226,233,248,278,287,294,298,304,330,334,341,354,358,367,371,379,433,436,496,500,520],[10,11,12,13,17],"p",{},"An ",[14,15,16],"strong",{},"app"," is a container that Velrix keeps running for you. You give it an image and a size; Velrix places it on the server with the most room, starts it, and starts it again if it stops. In this guide you deploy a small web server and look around.",[10,19,20],{},"You need an account on a Velrix installation with permission to run apps: your own, or an organisation’s where your role allows it.",[22,23,25],"h2",{"id":24},"_1-open-apps","1. Open Apps",[10,27,28,29,32,33,37],{},"Sign in, then open ",[14,30,31],{},"Apps"," from the start menu or the desktop. An installation with no apps yet says ",[34,35,36],"em",{},"No apps yet",".",[22,39,41],{"id":40},"_2-deploy-an-app","2. Deploy an app",[10,43,44,45,48],{},"Choose ",[14,46,47],{},"New app",". The form has a few tabs; for a first app, only the first one matters.",[50,51,52,63,87,113],"ol",{},[53,54,55,58,59,37],"li",{},[14,56,57],{},"Name",": ",[60,61,62],"code",{},"web",[53,64,65,68,69,79,82,83,86],{},[14,66,67],{},"Image",": a full reference, with its registry. For example:",[70,71,77],"pre",{"className":72,"code":74,"language":75,"meta":76},[73],"language-text","docker.io\u002Flibrary\u002Fnginx:1.27\n","text","",[60,78,74],{"__ignoreMap":76},[80,81],"br",{},"A short name such as ",[60,84,85],{},"nginx"," is refused: Velrix always pulls from the registry you name.",[53,88,89,92,93,96,97,100,101,104,105,108,109,112],{},[14,90,91],{},"Size",": pick one from your catalogue, such as ",[60,94,95],{},"g.nano",". Sizes are your operator’s: each has a family (",[60,98,99],{},"g"," general, ",[60,102,103],{},"c"," compute, ",[60,106,107],{},"m"," memory) and a name. ",[14,110,111],{},"Custom"," lets you give your own memory and CPU, in cores.",[53,114,115,116,119],{},"Leave ",[14,117,118],{},"Command"," empty to run the image’s own command.",[10,121,44,122,37],{},[14,123,124],{},"Deploy",[10,126,127,128,131],{},"When you work in an organisation that has projects, a ",[14,129,130],{},"Project"," tab lets you put the app in one. Apps in the same project share a private network.",[10,133,134,137,138,141,142,144],{},[14,135,136],{},"Or start from a blueprint."," ",[14,139,140],{},"Library"," in the start menu holds ready-made apps (nginx, PostgreSQL, Gitea and more) with a pinned image and a sensible size. Choose ",[14,143,124],{}," on one, and the same form opens filled in.",[22,146,148],{"id":147},"_3-watch-it-start","3. Watch it start",[10,150,151,152,154,155,158,159,162,163,166,167,170],{},"The form closes, and the app is listed in ",[14,153,31],{},": open it there. Its status goes from ",[14,156,157],{},"Starting"," to ",[14,160,161],{},"Running",", with the server it runs on. The ",[14,164,165],{},"Deployments"," tab shows the deploy as its first revision. The ",[14,168,169],{},"Overview"," tab shows its CPU and memory in use against what its size gives it, measured every ten seconds.",[10,172,173],{},"If something is wrong, the page says so in words:",[175,176,177,183,189],"ul",{},[53,178,179,182],{},[14,180,181],{},"No host",": no server has room for this size right now. Pick a smaller size, or ask your operator.",[53,184,185,188],{},[14,186,187],{},"It could not be started",": the server could not make it. Check the image name, and that the server can pull it.",[53,190,191,194],{},[14,192,193],{},"Crashing",": it stops right after it starts. The page shows the last exit code, and Velrix tries again, each time a little later, up to every five minutes.",[22,196,198],{"id":197},"_4-read-its-logs-open-a-terminal","4. Read its logs, open a terminal",[175,200,201,216],{},[53,202,203,206,207,210,211,215],{},[14,204,205],{},"Logs"," shows what the app wrote, followed live, with search and download. Type ",[60,208,209],{},"@level:error"," to see only errors (",[212,213,31],"a",{"href":214},"\u002Fdocs\u002Fguides\u002Fapps#logs"," has the rest).",[53,217,218,221],{},[14,219,220],{},"Open a terminal"," gives you a shell inside the running container, in a window of its own.",[22,223,225],{"id":224},"_5-tell-running-from-working","5. Tell running from working",[10,227,228,229,232],{},"Running is not the same as working. A ",[14,230,231],{},"health check"," is a command Velrix runs inside the container on a timer; exit code 0 means healthy.",[10,234,235,236,239,240,243,244,247],{},"On the ",[14,237,238],{},"Settings"," tab, in ",[14,241,242],{},"Health",", choose ",[14,245,246],{},"Add a check",", and for this web server enter:",[70,249,253],{"className":250,"code":251,"language":252,"meta":76,"style":76},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","wget -q -O \u002Fdev\u002Fnull http:\u002F\u002F127.0.0.1\u002F\n","bash",[60,254,255],{"__ignoreMap":76},[256,257,260,264,268,271,275],"span",{"class":258,"line":259},"line",1,[256,261,263],{"class":262},"szw1H","wget",[256,265,267],{"class":266},"ssYy9"," -q",[256,269,270],{"class":266}," -O",[256,272,274],{"class":273},"semJd"," \u002Fdev\u002Fnull",[256,276,277],{"class":273}," http:\u002F\u002F127.0.0.1\u002F\n",[10,279,280,281,284,285,37],{},"Then set how often it runs, how many failures in a row mark it ",[14,282,283],{},"Unhealthy",", and whether Velrix restarts it then. The image must contain the tool the command calls: here ",[60,286,263],{},[10,288,289,290,293],{},"With a check, a working app reads ",[14,291,292],{},"Healthy",", with a beating heart on its card. New revisions are checked too: one that fails its check never replaces the copy that works.",[22,295,297],{"id":296},"_6-give-it-a-disk","6. Give it a disk",[10,299,300,301,37],{},"An app’s own files go when it is deleted. Data that must stay goes on a ",[14,302,303],{},"volume",[50,305,306,313],{},[53,307,308,309,312],{},"Open ",[14,310,311],{},"Volumes"," and make a volume, with a name and a size. Velrix enforces the size.",[53,314,315,316,318,319,322,323,326,327,37],{},"Back on the app, open the ",[14,317,311],{}," tab, choose the volume and a ",[14,320,321],{},"Mount path"," inside the app, such as ",[60,324,325],{},"\u002Fusr\u002Fshare\u002Fnginx\u002Fhtml",", and choose ",[14,328,329],{},"Attach",[22,331,333],{"id":332},"_7-variables-and-secrets","7. Variables and secrets",[10,335,336,337,340],{},"The ",[14,338,339],{},"Variables"," tab holds the variables the app starts with. Seal the ones that are secrets: a sealed value is encrypted, never shown again, and only the container sees it.",[10,342,343,344,346,347,350,351,37],{},"Changes are staged: nothing restarts until you choose ",[14,345,124],{}," on the bar that says ",[14,348,349],{},"Apply 1 change",". Then they run as one revision, rolled out without downtime. References to other apps, shared variables and generated secrets are in ",[212,352,31],{"href":353},"\u002Fdocs\u002Fguides\u002Fapps#variables",[22,355,357],{"id":356},"clean-up","Clean up",[10,359,360,363,364,366],{},[14,361,362],{},"Delete",", at the end of the app’s ",[14,365,238],{},", removes the container for good. Its volumes stay, detached, with what is on them.",[22,368,370],{"id":369},"the-same-app-as-code","The same app, as code",[10,372,373,374,378],{},"Everything above is also an API call. With an API key (the ",[212,375,377],{"href":376},"\u002Fdocs\u002Freference\u002Fin-your-realm","API reference"," is in your realm’s Docs window):",[70,380,382],{"className":250,"code":381,"language":252,"meta":76,"style":76},"curl https:\u002F\u002Fvelrix.example.com\u002Fv1\u002Fcompute\u002Fapp.create \\\n  -H \"Authorization: Bearer $VELRIX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"web\", \"image\": \"docker.io\u002Flibrary\u002Fnginx:1.27\", \"size\": \"g.nano\"}'\n",[60,383,384,396,414,424],{"__ignoreMap":76},[256,385,386,389,392],{"class":258,"line":259},[256,387,388],{"class":262},"curl",[256,390,391],{"class":273}," https:\u002F\u002Fvelrix.example.com\u002Fv1\u002Fcompute\u002Fapp.create",[256,393,395],{"class":394},"sklAV"," \\\n",[256,397,399,402,405,409,412],{"class":258,"line":398},2,[256,400,401],{"class":266},"  -H",[256,403,404],{"class":273}," \"Authorization: Bearer ",[256,406,408],{"class":407},"s7iLA","$VELRIX_API_KEY",[256,410,411],{"class":273},"\"",[256,413,395],{"class":394},[256,415,417,419,422],{"class":258,"line":416},3,[256,418,401],{"class":266},[256,420,421],{"class":273}," \"Content-Type: application\u002Fjson\"",[256,423,395],{"class":394},[256,425,427,430],{"class":258,"line":426},4,[256,428,429],{"class":266},"  -d",[256,431,432],{"class":273}," '{\"name\": \"web\", \"image\": \"docker.io\u002Flibrary\u002Fnginx:1.27\", \"size\": \"g.nano\"}'\n",[10,434,435],{},"Or with the OpenTofu and Terraform provider, documented in your realm’s Docs window:",[70,437,441],{"className":438,"code":439,"language":440,"meta":76,"style":76},"language-hcl shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","resource \"velrix_app\" \"web\" {\n  name       = \"web\"\n  image      = \"docker.io\u002Flibrary\u002Fnginx:1.27\"\n  memory_mib = 128\n}\n","hcl",[60,442,443,457,468,479,490],{"__ignoreMap":76},[256,444,445,448,451,454],{"class":258,"line":259},[256,446,447],{"class":262},"resource",[256,449,450],{"class":266}," \"velrix_app\"",[256,452,453],{"class":266}," \"web\"",[256,455,456],{"class":407}," {\n",[256,458,459,462,465],{"class":258,"line":398},[256,460,461],{"class":407},"  name",[256,463,464],{"class":394},"       =",[256,466,467],{"class":273}," \"web\"\n",[256,469,470,473,476],{"class":258,"line":416},[256,471,472],{"class":407},"  image",[256,474,475],{"class":394},"      =",[256,477,478],{"class":273}," \"docker.io\u002Flibrary\u002Fnginx:1.27\"\n",[256,480,481,484,487],{"class":258,"line":426},[256,482,483],{"class":407},"  memory_mib",[256,485,486],{"class":394}," =",[256,488,489],{"class":266}," 128\n",[256,491,493],{"class":258,"line":492},5,[256,494,495],{"class":407},"}\n",[22,497,499],{"id":498},"next","Next",[175,501,502,508,514],{},[53,503,504],{},[212,505,507],{"href":506},"\u002Fdocs\u002Fguides\u002Fapps","Apps: deployments, variables, settings and logs",[53,509,510],{},[212,511,513],{"href":512},"\u002Fdocs\u002Fget-started\u002Ffirst-vm","Your first VM",[53,515,516],{},[212,517,519],{"href":518},"\u002Fdocs\u002Fguides\u002Fstacks","Stacks: OpenTofu with approvals",[521,522,523],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sklAV, html code.shiki .sklAV{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}",{"title":76,"searchDepth":398,"depth":416,"links":525},[526,527,528,529,530,531,532,533,534,535],{"id":24,"depth":398,"text":25},{"id":40,"depth":398,"text":41},{"id":147,"depth":398,"text":148},{"id":197,"depth":398,"text":198},{"id":224,"depth":398,"text":225},{"id":296,"depth":398,"text":297},{"id":332,"depth":398,"text":333},{"id":356,"depth":398,"text":357},{"id":369,"depth":398,"text":370},{"id":498,"depth":398,"text":499},"Deploy a container from an image, watch it start, read its logs, give it a health check and a disk.","md",null,{},true,"\u002Fdocs\u002Fget-started\u002Ffirst-app",{"title":5,"description":536},"docs\u002F1.get-started\u002F5.first-app",false,"Inio_T1gHVfT5TlmpgkKByY3QTCYwKpqTY9SPCMsVuc",[547],{"title":548,"path":549,"stem":550,"children":551,"page":-1},"Docs","\u002Fdocs","docs",[552,555,580,607,637,706,719,741],{"title":169,"path":549,"stem":553,"stub":544,"launchGate":538,"icon":554},"docs\u002Findex","i-lucide-house",{"title":556,"stub":544,"launchGate":538,"icon":557,"path":558,"stem":559,"children":560,"page":544},"Get started","i-lucide-rocket","\u002Fdocs\u002Fget-started","docs\u002F1.get-started",[561,565,569,573,577,578],{"title":562,"path":563,"stem":564,"stub":544,"launchGate":538},"What Velrix is","\u002Fdocs\u002Fget-started\u002Fwhat-is-velrix","docs\u002F1.get-started\u002F1.what-is-velrix",{"title":566,"path":567,"stem":568,"stub":544,"launchGate":538},"Ways to run Velrix","\u002Fdocs\u002Fget-started\u002Fways-to-run","docs\u002F1.get-started\u002F2.ways-to-run",{"title":570,"path":571,"stem":572,"stub":544,"launchGate":538},"Install from USB","\u002Fdocs\u002Fget-started\u002Finstall","docs\u002F1.get-started\u002F3.install",{"title":574,"path":575,"stem":576,"stub":544,"launchGate":538},"The setup wizard","\u002Fdocs\u002Fget-started\u002Fsetup-wizard","docs\u002F1.get-started\u002F4.setup-wizard",{"title":5,"path":541,"stem":543,"stub":544,"launchGate":538},{"title":513,"path":512,"stem":579,"stub":544,"launchGate":538},"docs\u002F1.get-started\u002F6.first-vm",{"title":581,"stub":544,"launchGate":538,"icon":582,"path":583,"stem":584,"children":585,"page":544},"Concepts","i-lucide-lightbulb","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",[586,590,594,598,602],{"title":587,"path":588,"stem":589,"stub":540,"launchGate":538},"Realms","\u002Fdocs\u002Fconcepts\u002Frealms","docs\u002F2.concepts\u002F1.realms",{"title":591,"path":592,"stem":593,"stub":540,"launchGate":538},"Instances and hosts","\u002Fdocs\u002Fconcepts\u002Finstances-and-hosts","docs\u002F2.concepts\u002F2.instances-and-hosts",{"title":595,"path":596,"stem":597,"stub":540,"launchGate":538},"Modules and the mesh","\u002Fdocs\u002Fconcepts\u002Fmodules-and-the-mesh","docs\u002F2.concepts\u002F3.modules-and-the-mesh",{"title":599,"path":600,"stem":601,"stub":540,"launchGate":538},"Organisations, projects and permissions","\u002Fdocs\u002Fconcepts\u002Forgs-projects-permissions","docs\u002F2.concepts\u002F4.orgs-projects-permissions",{"title":603,"path":604,"stem":605,"stub":540,"launchGate":606},"Host pools","\u002Fdocs\u002Fconcepts\u002Fhost-pools","docs\u002F2.concepts\u002F5.host-pools","A1",{"title":608,"stub":544,"launchGate":538,"icon":609,"path":610,"stem":611,"children":612,"page":544},"Guides for users","i-lucide-book-open","\u002Fdocs\u002Fguides","docs\u002F3.guides",[613,615,619,622,625,629,633],{"title":31,"path":506,"stem":614,"stub":544,"launchGate":538},"docs\u002F3.guides\u002F1.apps",{"title":616,"path":617,"stem":618,"stub":540,"launchGate":538},"Machines","\u002Fdocs\u002Fguides\u002Fmachines","docs\u002F3.guides\u002F2.machines",{"title":311,"path":620,"stem":621,"stub":540,"launchGate":538},"\u002Fdocs\u002Fguides\u002Fvolumes","docs\u002F3.guides\u002F3.volumes",{"title":623,"path":518,"stem":624,"stub":544,"launchGate":538},"Stacks","docs\u002F3.guides\u002F4.stacks",{"title":626,"path":627,"stem":628,"stub":540,"launchGate":538},"Terminal and cloud shells","\u002Fdocs\u002Fguides\u002Fterminal","docs\u002F3.guides\u002F5.terminal",{"title":630,"path":631,"stem":632,"stub":544,"launchGate":538},"Registry","\u002Fdocs\u002Fguides\u002Fregistry","docs\u002F3.guides\u002F6.registry",{"title":634,"path":635,"stem":636,"stub":540,"launchGate":538},"Kubernetes","\u002Fdocs\u002Fguides\u002Fkubernetes","docs\u002F3.guides\u002F7.kubernetes",{"title":638,"stub":544,"launchGate":538,"icon":639,"path":640,"stem":641,"children":642,"page":544},"Guides for operators","i-lucide-server-cog","\u002Fdocs\u002Foperators","docs\u002F4.operators",[643,647,651,655,659,663,667,671,674,678,683,687,691,695,699,702],{"title":644,"path":645,"stem":646,"stub":544,"launchGate":538},"Updates and maintenance windows","\u002Fdocs\u002Foperators\u002Fupdates","docs\u002F4.operators\u002F1.updates",{"title":648,"path":649,"stem":650,"stub":544,"launchGate":538},"Migrate: moving VMs from VMware","\u002Fdocs\u002Foperators\u002Fmigrate","docs\u002F4.operators\u002F10.migrate",{"title":652,"path":653,"stem":654,"stub":544,"launchGate":538},"Hardware","\u002Fdocs\u002Foperators\u002Fhardware","docs\u002F4.operators\u002F11.hardware",{"title":656,"path":657,"stem":658,"stub":544,"launchGate":538},"Billing","\u002Fdocs\u002Foperators\u002Fbilling","docs\u002F4.operators\u002F12.billing",{"title":660,"path":661,"stem":662,"stub":544,"launchGate":538},"Policies","\u002Fdocs\u002Foperators\u002Fpolicies","docs\u002F4.operators\u002F13.policies",{"title":664,"path":665,"stem":666,"stub":544,"launchGate":538},"Running the realm","\u002Fdocs\u002Foperators\u002Frealm-ops","docs\u002F4.operators\u002F14.realm-ops",{"title":668,"path":669,"stem":670,"stub":544,"launchGate":538},"Public address and app hostnames","\u002Fdocs\u002Foperators\u002Fpublic-address","docs\u002F4.operators\u002F15.public-address",{"title":140,"path":672,"stem":673,"stub":544,"launchGate":538},"\u002Fdocs\u002Foperators\u002Flibrary","docs\u002F4.operators\u002F16.library",{"title":675,"path":676,"stem":677,"stub":544,"launchGate":538},"Backups","\u002Fdocs\u002Foperators\u002Fbackups","docs\u002F4.operators\u002F2.backups",{"title":679,"path":680,"stem":681,"stub":540,"launchGate":682},"Availability and drain","\u002Fdocs\u002Foperators\u002Favailability","docs\u002F4.operators\u002F3.availability","A1, A2, A3",{"title":684,"path":685,"stem":686,"stub":540,"launchGate":538},"Federation","\u002Fdocs\u002Foperators\u002Ffederation","docs\u002F4.operators\u002F4.federation",{"title":688,"path":689,"stem":690,"stub":540,"launchGate":538},"Licensing","\u002Fdocs\u002Foperators\u002Flicensing","docs\u002F4.operators\u002F5.licensing",{"title":692,"path":693,"stem":694,"stub":540,"launchGate":538},"Branding: look and design","\u002Fdocs\u002Foperators\u002Fbranding","docs\u002F4.operators\u002F6.branding",{"title":696,"path":697,"stem":698,"stub":540,"launchGate":538},"Connectivity","\u002Fdocs\u002Foperators\u002Fconnectivity","docs\u002F4.operators\u002F7.connectivity",{"title":205,"path":700,"stem":701,"stub":540,"launchGate":538},"\u002Fdocs\u002Foperators\u002Flogs","docs\u002F4.operators\u002F8.logs",{"title":703,"path":704,"stem":705,"stub":544,"launchGate":538},"Directory sync: Entra ID and Okta","\u002Fdocs\u002Foperators\u002Fdirectory-sync","docs\u002F4.operators\u002F9.directory-sync",{"title":707,"stub":544,"launchGate":538,"icon":708,"path":709,"stem":710,"children":711,"page":544},"Reference","i-lucide-library","\u002Fdocs\u002Freference","docs\u002F5.reference",[712,715],{"title":713,"path":376,"stem":714,"stub":544,"launchGate":538},"The API reference in your realm","docs\u002F5.reference\u002F1.in-your-realm",{"title":716,"path":717,"stem":718,"stub":544,"launchGate":538},"The velrix command","\u002Fdocs\u002Freference\u002Fcli","docs\u002F5.reference\u002F2.cli",{"title":720,"stub":544,"launchGate":538,"icon":721,"path":722,"stem":723,"children":724,"page":544},"Security and compliance","i-lucide-shield-check","\u002Fdocs\u002Fsecurity","docs\u002F6.security",[725,729,733,737],{"title":726,"path":727,"stem":728,"stub":540,"launchGate":538},"Post-quantum","\u002Fdocs\u002Fsecurity\u002Fpost-quantum","docs\u002F6.security\u002F1.post-quantum",{"title":730,"path":731,"stem":732,"stub":540,"launchGate":538},"GDPR","\u002Fdocs\u002Fsecurity\u002Fgdpr","docs\u002F6.security\u002F2.gdpr",{"title":734,"path":735,"stem":736,"stub":540,"launchGate":538},"NIS2 support","\u002Fdocs\u002Fsecurity\u002Fnis2","docs\u002F6.security\u002F3.nis2",{"title":738,"path":739,"stem":740,"stub":540,"launchGate":538},"Data residency","\u002Fdocs\u002Fsecurity\u002Fdata-residency","docs\u002F6.security\u002F4.data-residency",{"title":742,"path":743,"stem":744,"children":745,"stub":544,"launchGate":538,"icon":747},"Release notes","\u002Fdocs\u002Frelease-notes","docs\u002F7.release-notes\u002Findex",[746],{"title":742,"path":743,"stem":744,"stub":544,"launchGate":538},"i-lucide-scroll-text",[749,751],{"title":574,"path":575,"stem":576,"description":750,"children":-1},"Claim your new installation with its setup token, become its first operator, and set the few things it needs before anyone else signs in.",{"title":513,"path":512,"stem":579,"description":752,"children":-1},"Create a Linux or Windows Server virtual machine from the catalogue, sign in with your SSH key, and open its desktop in a browser window."]