mirror of
https://github.com/openziti/zrok.git
synced 2025-01-23 22:38:40 +01:00
1 line
12 KiB
JavaScript
1 line
12 KiB
JavaScript
|
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4920],{8127:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>d,contentTitle:()=>t,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var n=r(5893),s=r(1151);const i={title:"Personalized Frontend",sidebar_label:"Personalized Frontend",sidebar_position:19},t=void 0,a={id:"guides/self-hosting/personalized-frontend",title:"Personalized Frontend",description:"This guide describes an approach that enables a zrok user to use a hosted, shared instance (zrok.io) and configure their own personalized frontend, which enables custom DNS and TLS for their shares.",source:"@site/../docs/guides/self-hosting/personalized-frontend.md",sourceDirName:"guides/self-hosting",slug:"/guides/self-hosting/personalized-frontend",permalink:"/docs/guides/self-hosting/personalized-frontend",draft:!1,unlisted:!1,editUrl:"https://github.com/openziti/zrok/blob/main/docs/../docs/guides/self-hosting/personalized-frontend.md",tags:[],version:"current",sidebarPosition:19,frontMatter:{title:"Personalized Frontend",sidebar_label:"Personalized Frontend",sidebar_position:19},sidebar:"tutorialSidebar",previous:{title:"Interstitial Pages",permalink:"/docs/guides/self-hosting/interstitial-page"},next:{title:"Docker",permalink:"/docs/guides/self-hosting/docker"}},d={},c=[{value:"Overview",id:"overview",level:2},{value:"Privacy",id:"privacy",level:2}];function h(e){const o={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",img:"img",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:"This guide describes an approach that enables a zrok user to use a hosted, shared instance (zrok.io) and configure their own personalized frontend, which enables custom DNS and TLS for their shares."}),"\n",(0,n.jsx)(o.p,{children:"In order to accomplish this, the user will need to provide their own minimal VPS instance, or container hosting. The size and capacity of these resources will be entirely dependent on the workload that they will be used to service. But generally, for most modest workloads, the most inexpensive VPS option will suffice."}),"\n",(0,n.jsx)(o.p,{children:"This approach gives you complete control over the way that your shares are exposed publicly. This approach works for HTTPS shares, and also for TCP and UDP ports, allowing you to put all of these things onto the public internet, while maintaining strong security for your protected resources."}),"\n",(0,n.jsxs)(o.p,{children:["This guide isn't a detailed ",(0,n.jsx)(o.em,{children:"how to"})," with specific steps to follow. This is more of a description of the overall concept. You'll want to figure out your own specific steps to implement this style of deployment in your own environment."]}),"\n",(0,n.jsx)(o.h2,{id:"overview",children:"Overview"}),"\n",(0,n.jsxs)(o.p,{children:["Let's imagine a hypothetical scenario where you've got 3 different resources shared using zrok. We'll refer to these as ",(0,n.jsx)(o.code,{children:"A"}),", ",(0,n.jsx)(o.code,{children:"B"}),", and ",(0,n.jsx)(o.code,{children:"C"}),". Both ",(0,n.jsx)(o.code,{children:"A"})," and ",(0,n.jsx)(o.code,{children:"B"})," are shares using the ",(0,n.jsx)(o.code,{children:"proxy"})," backend mode, which are used to share private HTTPS resources. Share ",(0,n.jsx)(o.code,{children:"C"})," uses the ",(0,n.jsx)(o.code,{children:"tcpTunnel"})," backend to expose a listening port from a private server (like a game server, or a message queue)."]}),"\n",(0,n.jsx)(o.p,{children:"We're using the shared zrok instance at zrok.io to provide our secure sharing infrastructure."}),"\n",(0,n.jsx)(o.p,{children:"Our deployment will end up looking like this:"}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{alt:"personalized-frontend-1",src:r(4320).Z+"",width:"716",height:"357"})}),"\n",(0,n.jsxs)(o.p,{children:["We're using ",(0,n.jsx)(o.code,{children:"zrok reserve"})," to create the ",(0,n.jsx)(o.code,{children:"A"}),", ",(0,n.jsx)(o.code,{children:"B"}),", and ",(0,n.jsx)(o.code,{children:"C"})," shares as reserved shares (u
|