"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[22],{445:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});vart=r(5893),o=r(1151);consti={sidebar_position:40,sidebar_label:"Linux VPS"},s="Self-Hosting Guide for Linux",l={id:"guides/self-hosting/self_hosting_guide",title:"Self-Hosting Guide for Linux",description:"Walkthrough Video",source:"@site/../docs/guides/self-hosting/self_hosting_guide.md",sourceDirName:"guides/self-hosting",slug:"/guides/self-hosting/self_hosting_guide",permalink:"/docs/guides/self-hosting/self_hosting_guide",draft:!1,unlisted:!1,editUrl:"https://github.com/openziti/zrok/blob/main/docs/../docs/guides/self-hosting/self_hosting_guide.md",tags:[],version:"current",sidebarPosition:40,frontMatter:{sidebar_position:40,sidebar_label:"Linux VPS"},sidebar:"tutorialSidebar",previous:{title:"Self Hosting",permalink:"/docs/category/self-hosting"},next:{title:"Nginx TLS",permalink:"/docs/guides/self-hosting/nginx_tls_guide"}},c={},d=[{value:"Walkthrough Video",id:"walkthrough-video",level:2},{value:"Before you Begin",id:"before-you-begin",level:2},{value:"OpenZiti Quickstart",id:"openziti-quickstart",level:2},{value:"Install zrok",id:"install-zrok",level:2},{value:"Configure the Controller",id:"configure-the-controller",level:2},{value:"Environment Variables",id:"environment-variables",level:2},{value:"Bootstrap OpenZiti for zrok",id:"bootstrap-openziti-for-zrok",level:2},{value:"Run zrok Controller",id:"run-zrok-controller",level:2},{value:"Create zrok Frontend",id:"create-zrok-frontend",level:2},{value:"Configure the Public Frontend",id:"configure-the-public-frontend",level:2},{value:"Start Public Frontend",id:"start-public-frontend",level:2},{value:"Invite Yourself",id:"invite-yourself",level:2},{value:"Enable Your Shell",id:"enable-your-shell",level:2}];functiona(e){constn={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"self-hosting-guide-for-linux",children:"Self-Hosting Guide for Linux"}),"\n",(0,t.jsx)(n.h2,{id:"walkthrough-video",children:"Walkthrough Video"}),"\n",(0,t.jsx)("iframe",{width:"100%",height:"315",src:"https://www.youtube.com/embed/870A5dke_u4",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:!0}),"\n",(0,t.jsx)(n.h2,{id:"before-you-begin",children:"Before you Begin"}),"\n",(0,t.jsx)(n.p,{children:"This will get you up and running with a self-hosted instance of zrok. I'll assume you have the following:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"a Linux server with a public IP"}),"\n",(0,t.jsxs)(n.li,{children:["a wildcard DNS record like ",(0,t.jsx)(n.code,{children:"*.zrok.quigley.com"})," that resolves to the server IP"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"openziti-quickstart",children:"OpenZiti Quickstart"}),"\n",(0,t.jsx)(n.p,{children:"The first step is to log in to your Linux server and run the OpenZiti quickstart. This will install a Ziti controller and Ziti router as systemd services."}),"\n",(0,t.jsx)(n.p,{children:'I specifically used the "Host OpenZiti Anywhere" variant because it provides a public controller. We\'ll need that to use zrok with multiple devices across different networks.'}),"\n",(0,t.jsxs)(n.p,{children:["Keep track of the generated admin password when running the ",(0,t.jsx)(n.code,{children:"expressInstall"})," script. The script will prompt you like this:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"Do you want to keep the generated admin password 'XO0xHp75uuyeireO2xmmVlK91T7B9fpD'? (Y/n)\n"})}),"\n",(0,t.jsxs)(n.p,{children:["You'll need that generated password (",(0,t.jsx)(n.code,{children:"XO0xHp75uuyeireO2xmmVlK91T7B9fpD"}),") when building your ",(0,t.jsx)(n.code,{children:"zrok"})," controller configuration."]}),"\n",(0,t.jsxs)(n.p,{children:["BE