[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fget-started\u002Ffirst-vm":3,"docs:nav":448,"docs:surround:\u002Fdocs\u002Fget-started\u002Ffirst-vm":653},{"id":4,"title":5,"body":6,"description":438,"extension":439,"launchGate":440,"meta":441,"navigation":442,"path":443,"seo":444,"stem":445,"stub":446,"__hash__":447},"docs_en\u002Fdocs\u002F1.get-started\u002F6.first-vm.md","Your first VM",{"type":7,"value":8,"toc":422},"minimark",[9,18,23,26,44,47,51,110,113,118,133,137,151,155,161,165,168,226,229,233,240,244,251,255,261,264,271,275,282,286,381,393,397,418],[10,11,12,13,17],"p",{},"A ",[14,15,16],"strong",{},"machine"," is a virtual machine. It boots from a disk image in your catalogue, with the size you pick, and runs on Cloud Hypervisor. In this guide you create a Linux machine and sign in to it, then a Windows Server machine and open its desktop.",[19,20,22],"h2",{"id":21},"before-you-start","Before you start",[10,24,25],{},"Add your SSH public key, so the machine can let you in:",[27,28,29,41],"ol",{},[30,31,32,33,36,37,40],"li",{},"Open your own page (your name, in the start menu), then ",[14,34,35],{},"SSH keys",". (Right after your first sign-in, Getting started offers the same as ",[14,38,39],{},"Add an SSH key",".)",[30,42,43],{},"Add a key you already have, or let Velrix make a new pair. A new private key is shown once, in that answer, and stored nowhere: save it then.",[10,45,46],{},"A machine takes its keys at its first boot. Adding a key later means a new machine, so add yours first.",[19,48,50],{"id":49},"a-linux-machine","A Linux machine",[27,52,53,64,75,89,98,104],{},[30,54,55,56,59,60,63],{},"Open ",[14,57,58],{},"Machines"," and choose ",[14,61,62],{},"New machine",".",[30,65,66,69,70,74],{},[14,67,68],{},"Name",": ",[71,72,73],"code",{},"build-box",". It is also the machine’s hostname: lowercase letters, digits and dashes.",[30,76,77,80,81,84,85,88],{},[14,78,79],{},"Image",": for example ",[14,82,83],{},"AlmaLinux 10"," or ",[14,86,87],{},"Debian 13",". Your operator decides which images the catalogue offers.",[30,90,91,80,94,97],{},[14,92,93],{},"Size",[71,95,96],{},"c.small"," (1 core, 1 GB).",[30,99,100,103],{},[14,101,102],{},"SSH key",": pick yours.",[30,105,106,107,63],{},"Choose ",[14,108,109],{},"Create machine",[10,111,112],{},"The machine’s page shows it starting, then running, with the server it runs on. Its CPU, memory, network and disk are measured while it runs.",[114,115,117],"h3",{"id":116},"sign-in","Sign in",[119,120,121,127],"ul",{},[30,122,123,126],{},[14,124,125],{},"Console"," opens the machine’s console in a window, from the first line the firmware prints. It works even before the network is up.",[30,128,129,132],{},[14,130,131],{},"SSH"," works from anywhere that reaches your project’s network: the machine has its address there, and lets in the key you picked.",[114,134,136],{"id":135},"stop-start-delete","Stop, start, delete",[10,138,139,142,143,146,147,150],{},[14,140,141],{},"Stop"," and ",[14,144,145],{},"Start"," do what they say. ",[14,148,149],{},"Delete"," removes the machine and its disk, for good.",[19,152,154],{"id":153},"a-windows-server-machine","A Windows Server machine",[10,156,157,158,63],{},"Windows Server runs as a machine like any other. If your operator offers it, the catalogue lists an image such as ",[14,159,160],{},"Windows Server 2022",[114,162,164],{"id":163},"_1-check-the-licence","1. Check the licence",[10,166,167],{},"The create form says how Windows is licensed for that image. There are three ways:",[169,170,171,184],"table",{},[172,173,174],"thead",{},[175,176,177,181],"tr",{},[178,179,180],"th",{},"The form says",[178,182,183],{},"What it means",[185,186,187,199,216],"tbody",{},[175,188,189,196],{},[190,191,192],"td",{},[193,194,195],"em",{},"Bring your own licence",[190,197,198],{},"You activate Windows inside the machine, with your own key.",[175,200,201,206],{},[190,202,203],{},[193,204,205],{},"Activated by your own KMS host",[190,207,208,209,84,212,215],{},"Enter your organisation’s KMS host (",[71,210,211],{},"host",[71,213,214],{},"host:port","; port 1688 when none is given). Windows activates against it at first boot.",[175,217,218,223],{},[190,219,220],{},[193,221,222],{},"Windows licence included, billed monthly",[190,224,225],{},"Your operator licenses Windows for you, and bills it per core.",[10,227,228],{},"Microsoft’s licences are never part of the Velrix licence itself.",[114,230,232],{"id":231},"_2-create-it","2. Create it",[10,234,235,236,239],{},"Create the machine as above. Choose a size with room for Windows, such as ",[71,237,238],{},"g.medium"," (2 cores, 4 GB). Windows takes a few minutes to prepare itself on its first boot.",[114,241,243],{"id":242},"_3-set-the-administrator-password","3. Set the Administrator password",[10,245,246,247,250],{},"The image has no password anyone knows. On the machine’s page, set the ",[14,248,249],{},"Administrator"," password first. Velrix sets it through the guest agent inside the machine.",[114,252,254],{"id":253},"_4-open-its-desktop","4. Open its desktop",[10,256,106,257,260],{},[14,258,259],{},"Remote desktop",". A window of its own opens in your browser and asks for the Administrator password; then Windows’ desktop is there. You can paste text from your own computer into it, and resizing the window resizes the desktop.",[10,262,263],{},"Nothing is exposed to do this. The connection reaches the machine from inside the platform, so its Remote Desktop port can stay closed to everyone. To use your own Remote Desktop client instead, open port 3389 to it in a security group.",[10,265,266,267,270],{},"Every time someone opens a machine’s screen is recorded. The machine’s ",[14,268,269],{},"Access"," tab lists who opened it, when, and whether it opened.",[114,272,274],{"id":273},"_5-check-activation","5. Check activation",[10,276,277,278,281],{},"The machine’s page shows Windows’ ",[14,279,280],{},"Activation",": activated, in its grace period with the days left, or not activated with the reason. For a KMS licence it also shows whether the KMS host answered at first boot.",[19,283,285],{"id":284},"the-same-machine-as-code","The same machine, as code",[287,288,293],"pre",{"className":289,"code":290,"language":291,"meta":292,"style":292},"language-hcl shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","resource \"velrix_machine\" \"build\" {\n  name        = \"build-box\"\n  image_id    = \"almalinux-10\"\n  size_id     = \"c.small\"\n  ssh_key_ids = [velrix_ssh_key.me.id]\n}\n","hcl","",[71,294,295,315,329,341,353,375],{"__ignoreMap":292},[296,297,300,304,308,311],"span",{"class":298,"line":299},"line",1,[296,301,303],{"class":302},"szw1H","resource",[296,305,307],{"class":306},"ssYy9"," \"velrix_machine\"",[296,309,310],{"class":306}," \"build\"",[296,312,314],{"class":313},"s7iLA"," {\n",[296,316,318,321,325],{"class":298,"line":317},2,[296,319,320],{"class":313},"  name",[296,322,324],{"class":323},"sklAV","        =",[296,326,328],{"class":327},"semJd"," \"build-box\"\n",[296,330,332,335,338],{"class":298,"line":331},3,[296,333,334],{"class":313},"  image_id",[296,336,337],{"class":323},"    =",[296,339,340],{"class":327}," \"almalinux-10\"\n",[296,342,344,347,350],{"class":298,"line":343},4,[296,345,346],{"class":313},"  size_id",[296,348,349],{"class":323},"     =",[296,351,352],{"class":327}," \"c.small\"\n",[296,354,356,359,362,365,367,370,372],{"class":298,"line":355},5,[296,357,358],{"class":313},"  ssh_key_ids",[296,360,361],{"class":323}," =",[296,363,364],{"class":313}," [velrix_ssh_key",[296,366,63],{"class":323},[296,368,369],{"class":313},"me",[296,371,63],{"class":323},[296,373,374],{"class":313},"id]\n",[296,376,378],{"class":298,"line":377},6,[296,379,380],{"class":313},"}\n",[10,382,383,384,387,388,63],{},"The OpenTofu and Terraform provider and ",[71,385,386],{},"machines:create"," in the HTTP API are in ",[389,390,392],"a",{"href":391},"\u002Fdocs\u002Freference\u002Fin-your-realm","the API reference in your realm’s Docs window",[19,394,396],{"id":395},"next","Next",[119,398,399,405,411],{},[30,400,401,404],{},[389,402,58],{"href":403},"\u002Fdocs\u002Fguides\u002Fmachines",": sizes, consoles, scripts at first boot",[30,406,407],{},[389,408,410],{"href":409},"\u002Fdocs\u002Fguides\u002Fvolumes","Volumes",[30,412,413,417],{},[389,414,416],{"href":415},"\u002Fdocs\u002Fguides\u002Fkubernetes","Kubernetes"," on your machines",[419,420,421],"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 .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sklAV, html code.shiki .sklAV{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492}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);}",{"title":292,"searchDepth":317,"depth":331,"links":423},[424,425,429,436,437],{"id":21,"depth":317,"text":22},{"id":49,"depth":317,"text":50,"children":426},[427,428],{"id":116,"depth":331,"text":117},{"id":135,"depth":331,"text":136},{"id":153,"depth":317,"text":154,"children":430},[431,432,433,434,435],{"id":163,"depth":331,"text":164},{"id":231,"depth":331,"text":232},{"id":242,"depth":331,"text":243},{"id":253,"depth":331,"text":254},{"id":273,"depth":331,"text":274},{"id":284,"depth":317,"text":285},{"id":395,"depth":317,"text":396},"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.","md",null,{},true,"\u002Fdocs\u002Fget-started\u002Ffirst-vm",{"title":5,"description":438},"docs\u002F1.get-started\u002F6.first-vm",false,"cYRyH-kvCvUDXUc5Z7QIGpEkpHRCjEg6uynDdJgrM_s",[449],{"title":450,"path":451,"stem":452,"children":453,"page":-1},"Docs","\u002Fdocs","docs",[454,458,485,512,540,611,624,646],{"title":455,"path":451,"stem":456,"stub":446,"launchGate":440,"icon":457},"Overview","docs\u002Findex","i-lucide-house",{"title":459,"stub":446,"launchGate":440,"icon":460,"path":461,"stem":462,"children":463,"page":446},"Get started","i-lucide-rocket","\u002Fdocs\u002Fget-started","docs\u002F1.get-started",[464,468,472,476,480,484],{"title":465,"path":466,"stem":467,"stub":446,"launchGate":440},"What Velrix is","\u002Fdocs\u002Fget-started\u002Fwhat-is-velrix","docs\u002F1.get-started\u002F1.what-is-velrix",{"title":469,"path":470,"stem":471,"stub":446,"launchGate":440},"Ways to run Velrix","\u002Fdocs\u002Fget-started\u002Fways-to-run","docs\u002F1.get-started\u002F2.ways-to-run",{"title":473,"path":474,"stem":475,"stub":446,"launchGate":440},"Install from USB","\u002Fdocs\u002Fget-started\u002Finstall","docs\u002F1.get-started\u002F3.install",{"title":477,"path":478,"stem":479,"stub":446,"launchGate":440},"The setup wizard","\u002Fdocs\u002Fget-started\u002Fsetup-wizard","docs\u002F1.get-started\u002F4.setup-wizard",{"title":481,"path":482,"stem":483,"stub":446,"launchGate":440},"Your first app","\u002Fdocs\u002Fget-started\u002Ffirst-app","docs\u002F1.get-started\u002F5.first-app",{"title":5,"path":443,"stem":445,"stub":446,"launchGate":440},{"title":486,"stub":446,"launchGate":440,"icon":487,"path":488,"stem":489,"children":490,"page":446},"Concepts","i-lucide-lightbulb","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",[491,495,499,503,507],{"title":492,"path":493,"stem":494,"stub":442,"launchGate":440},"Realms","\u002Fdocs\u002Fconcepts\u002Frealms","docs\u002F2.concepts\u002F1.realms",{"title":496,"path":497,"stem":498,"stub":442,"launchGate":440},"Instances and hosts","\u002Fdocs\u002Fconcepts\u002Finstances-and-hosts","docs\u002F2.concepts\u002F2.instances-and-hosts",{"title":500,"path":501,"stem":502,"stub":442,"launchGate":440},"Modules and the mesh","\u002Fdocs\u002Fconcepts\u002Fmodules-and-the-mesh","docs\u002F2.concepts\u002F3.modules-and-the-mesh",{"title":504,"path":505,"stem":506,"stub":442,"launchGate":440},"Organisations, projects and permissions","\u002Fdocs\u002Fconcepts\u002Forgs-projects-permissions","docs\u002F2.concepts\u002F4.orgs-projects-permissions",{"title":508,"path":509,"stem":510,"stub":442,"launchGate":511},"Host pools","\u002Fdocs\u002Fconcepts\u002Fhost-pools","docs\u002F2.concepts\u002F5.host-pools","A1",{"title":513,"stub":446,"launchGate":440,"icon":514,"path":515,"stem":516,"children":517,"page":446},"Guides for users","i-lucide-book-open","\u002Fdocs\u002Fguides","docs\u002F3.guides",[518,522,524,526,530,534,538],{"title":519,"path":520,"stem":521,"stub":446,"launchGate":440},"Apps","\u002Fdocs\u002Fguides\u002Fapps","docs\u002F3.guides\u002F1.apps",{"title":58,"path":403,"stem":523,"stub":442,"launchGate":440},"docs\u002F3.guides\u002F2.machines",{"title":410,"path":409,"stem":525,"stub":442,"launchGate":440},"docs\u002F3.guides\u002F3.volumes",{"title":527,"path":528,"stem":529,"stub":446,"launchGate":440},"Stacks","\u002Fdocs\u002Fguides\u002Fstacks","docs\u002F3.guides\u002F4.stacks",{"title":531,"path":532,"stem":533,"stub":442,"launchGate":440},"Terminal and cloud shells","\u002Fdocs\u002Fguides\u002Fterminal","docs\u002F3.guides\u002F5.terminal",{"title":535,"path":536,"stem":537,"stub":446,"launchGate":440},"Registry","\u002Fdocs\u002Fguides\u002Fregistry","docs\u002F3.guides\u002F6.registry",{"title":416,"path":415,"stem":539,"stub":442,"launchGate":440},"docs\u002F3.guides\u002F7.kubernetes",{"title":541,"stub":446,"launchGate":440,"icon":542,"path":543,"stem":544,"children":545,"page":446},"Guides for operators","i-lucide-server-cog","\u002Fdocs\u002Foperators","docs\u002F4.operators",[546,550,554,558,562,566,570,574,578,582,587,591,595,599,603,607],{"title":547,"path":548,"stem":549,"stub":446,"launchGate":440},"Updates and maintenance windows","\u002Fdocs\u002Foperators\u002Fupdates","docs\u002F4.operators\u002F1.updates",{"title":551,"path":552,"stem":553,"stub":446,"launchGate":440},"Migrate: moving VMs from VMware","\u002Fdocs\u002Foperators\u002Fmigrate","docs\u002F4.operators\u002F10.migrate",{"title":555,"path":556,"stem":557,"stub":446,"launchGate":440},"Hardware","\u002Fdocs\u002Foperators\u002Fhardware","docs\u002F4.operators\u002F11.hardware",{"title":559,"path":560,"stem":561,"stub":446,"launchGate":440},"Billing","\u002Fdocs\u002Foperators\u002Fbilling","docs\u002F4.operators\u002F12.billing",{"title":563,"path":564,"stem":565,"stub":446,"launchGate":440},"Policies","\u002Fdocs\u002Foperators\u002Fpolicies","docs\u002F4.operators\u002F13.policies",{"title":567,"path":568,"stem":569,"stub":446,"launchGate":440},"Running the realm","\u002Fdocs\u002Foperators\u002Frealm-ops","docs\u002F4.operators\u002F14.realm-ops",{"title":571,"path":572,"stem":573,"stub":446,"launchGate":440},"Public address and app hostnames","\u002Fdocs\u002Foperators\u002Fpublic-address","docs\u002F4.operators\u002F15.public-address",{"title":575,"path":576,"stem":577,"stub":446,"launchGate":440},"Library","\u002Fdocs\u002Foperators\u002Flibrary","docs\u002F4.operators\u002F16.library",{"title":579,"path":580,"stem":581,"stub":446,"launchGate":440},"Backups","\u002Fdocs\u002Foperators\u002Fbackups","docs\u002F4.operators\u002F2.backups",{"title":583,"path":584,"stem":585,"stub":442,"launchGate":586},"Availability and drain","\u002Fdocs\u002Foperators\u002Favailability","docs\u002F4.operators\u002F3.availability","A1, A2, A3",{"title":588,"path":589,"stem":590,"stub":442,"launchGate":440},"Federation","\u002Fdocs\u002Foperators\u002Ffederation","docs\u002F4.operators\u002F4.federation",{"title":592,"path":593,"stem":594,"stub":442,"launchGate":440},"Licensing","\u002Fdocs\u002Foperators\u002Flicensing","docs\u002F4.operators\u002F5.licensing",{"title":596,"path":597,"stem":598,"stub":442,"launchGate":440},"Branding: look and design","\u002Fdocs\u002Foperators\u002Fbranding","docs\u002F4.operators\u002F6.branding",{"title":600,"path":601,"stem":602,"stub":442,"launchGate":440},"Connectivity","\u002Fdocs\u002Foperators\u002Fconnectivity","docs\u002F4.operators\u002F7.connectivity",{"title":604,"path":605,"stem":606,"stub":442,"launchGate":440},"Logs","\u002Fdocs\u002Foperators\u002Flogs","docs\u002F4.operators\u002F8.logs",{"title":608,"path":609,"stem":610,"stub":446,"launchGate":440},"Directory sync: Entra ID and Okta","\u002Fdocs\u002Foperators\u002Fdirectory-sync","docs\u002F4.operators\u002F9.directory-sync",{"title":612,"stub":446,"launchGate":440,"icon":613,"path":614,"stem":615,"children":616,"page":446},"Reference","i-lucide-library","\u002Fdocs\u002Freference","docs\u002F5.reference",[617,620],{"title":618,"path":391,"stem":619,"stub":446,"launchGate":440},"The API reference in your realm","docs\u002F5.reference\u002F1.in-your-realm",{"title":621,"path":622,"stem":623,"stub":446,"launchGate":440},"The velrix command","\u002Fdocs\u002Freference\u002Fcli","docs\u002F5.reference\u002F2.cli",{"title":625,"stub":446,"launchGate":440,"icon":626,"path":627,"stem":628,"children":629,"page":446},"Security and compliance","i-lucide-shield-check","\u002Fdocs\u002Fsecurity","docs\u002F6.security",[630,634,638,642],{"title":631,"path":632,"stem":633,"stub":442,"launchGate":440},"Post-quantum","\u002Fdocs\u002Fsecurity\u002Fpost-quantum","docs\u002F6.security\u002F1.post-quantum",{"title":635,"path":636,"stem":637,"stub":442,"launchGate":440},"GDPR","\u002Fdocs\u002Fsecurity\u002Fgdpr","docs\u002F6.security\u002F2.gdpr",{"title":639,"path":640,"stem":641,"stub":442,"launchGate":440},"NIS2 support","\u002Fdocs\u002Fsecurity\u002Fnis2","docs\u002F6.security\u002F3.nis2",{"title":643,"path":644,"stem":645,"stub":442,"launchGate":440},"Data residency","\u002Fdocs\u002Fsecurity\u002Fdata-residency","docs\u002F6.security\u002F4.data-residency",{"title":647,"path":648,"stem":649,"children":650,"stub":446,"launchGate":440,"icon":652},"Release notes","\u002Fdocs\u002Frelease-notes","docs\u002F7.release-notes\u002Findex",[651],{"title":647,"path":648,"stem":649,"stub":446,"launchGate":440},"i-lucide-scroll-text",[654,656],{"title":481,"path":482,"stem":483,"description":655,"children":-1},"Deploy a container from an image, watch it start, read its logs, give it a health check and a disk.",{"title":492,"path":493,"stem":494,"description":657,"children":-1},"A realm is one Velrix installation: every server and module that trusts the same realm key, and how realms link to each other."]