[{"data":1,"prerenderedAt":664},["ShallowReactive",2],{"navigation_docs":3,"-deployment-cloudflare-tunnel":218,"-deployment-cloudflare-tunnel-surround":659},[4,20,45,75,95,105,140,168,198],{"title":5,"path":6,"stem":7,"children":8,"page":19},"Introduction","\u002Fintroduction","1.introduction",[9,14],{"title":10,"path":11,"stem":12,"icon":13},"What is GO?","\u002Fintroduction\u002Fwhat-is-go","1.introduction\u002F1.what-is-go","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Features","\u002Fintroduction\u002Ffeatures","1.introduction\u002F2.features","i-lucide-sparkles",false,{"title":21,"path":22,"stem":23,"children":24,"page":19},"Getting Started","\u002Fgetting-started","2.getting-started",[25,30,35,40],{"title":26,"path":27,"stem":28,"icon":29},"Installation","\u002Fgetting-started\u002Finstallation","2.getting-started\u002F1.installation","i-lucide-download",{"title":31,"path":32,"stem":33,"icon":34},"Configuration","\u002Fgetting-started\u002Fconfiguration","2.getting-started\u002F2.configuration","i-lucide-settings",{"title":36,"path":37,"stem":38,"icon":39},"First Setup","\u002Fgetting-started\u002Ffirst-setup","2.getting-started\u002F3.first-setup","i-lucide-rocket",{"title":41,"path":42,"stem":43,"icon":44},"Updating","\u002Fgetting-started\u002Fupdating","2.getting-started\u002F4.updating","i-lucide-refresh-cw",{"title":46,"icon":19,"path":47,"stem":48,"children":49,"page":19},"User Guide","\u002Fuser-guide","3.user-guide",[50,55,60,65,70],{"title":51,"path":52,"stem":53,"icon":54},"Creating a Short Link","\u002Fuser-guide\u002Fcreating-a-short-link","3.user-guide\u002F1.creating-a-short-link","i-lucide-link",{"title":56,"path":57,"stem":58,"icon":59},"Expiration","\u002Fuser-guide\u002Fexpiration","3.user-guide\u002F2.expiration","i-lucide-clock",{"title":61,"path":62,"stem":63,"icon":64},"Renewing Links","\u002Fuser-guide\u002Frenewing-links","3.user-guide\u002F3.renewing-links","i-lucide-repeat",{"title":66,"path":67,"stem":68,"icon":69},"Dashboard","\u002Fuser-guide\u002Fdashboard","3.user-guide\u002F4.dashboard","i-lucide-layout-dashboard",{"title":71,"path":72,"stem":73,"icon":74},"Analytics","\u002Fuser-guide\u002Fanalytics","3.user-guide\u002F5.analytics","i-lucide-bar-chart-3",{"title":76,"path":77,"stem":78,"children":79,"page":19},"Authentication","\u002Fauthentication","4.authentication",[80,85,90],{"title":81,"path":82,"stem":83,"icon":84},"Email Login","\u002Fauthentication\u002Femail-login","4.authentication\u002F1.email-login","i-lucide-mail",{"title":86,"path":87,"stem":88,"icon":89},"Google Login","\u002Fauthentication\u002Fgoogle-login","4.authentication\u002F2.google-login","i-lucide-globe",{"title":91,"path":92,"stem":93,"icon":94},"Firebase Setup","\u002Fauthentication\u002Ffirebase-setup","4.authentication\u002F3.firebase-setup","i-simple-icons-firebase",{"title":96,"path":97,"stem":98,"children":99,"page":19},"Captcha","\u002Fcaptcha","5.captcha",[100],{"title":101,"path":102,"stem":103,"icon":104},"Cloudflare Turnstile","\u002Fcaptcha\u002Fcloudflare-turnstile","5.captcha\u002F1.cloudflare-turnstile","i-simple-icons-cloudflare",{"title":106,"path":107,"stem":108,"children":109,"page":19},"Administration","\u002Fadministration","6.administration",[110,115,120,125,130,135],{"title":111,"path":112,"stem":113,"icon":114},"Admin Panel","\u002Fadministration\u002Fadmin-panel","6.administration\u002F1.admin-panel","i-lucide-shield",{"title":116,"path":117,"stem":118,"icon":119},"Users","\u002Fadministration\u002Fusers","6.administration\u002F2.users","i-lucide-users",{"title":121,"path":122,"stem":123,"icon":124},"Links","\u002Fadministration\u002Flinks","6.administration\u002F3.links","i-lucide-link-2",{"title":126,"path":127,"stem":128,"icon":129},"Reports","\u002Fadministration\u002Freports","6.administration\u002F4.reports","i-lucide-flag",{"title":131,"path":132,"stem":133,"icon":134},"Bans & Timeouts","\u002Fadministration\u002Fbans-and-timeouts","6.administration\u002F5.bans-and-timeouts","i-lucide-user-x",{"title":136,"path":137,"stem":138,"icon":139},"Audit Logs","\u002Fadministration\u002Faudit-logs","6.administration\u002F6.audit-logs","i-lucide-scroll",{"title":141,"path":142,"stem":143,"children":144,"page":19},"Deployment","\u002Fdeployment","7.deployment",[145,150,155,160,165],{"title":146,"path":147,"stem":148,"icon":149},"VPS Installation","\u002Fdeployment\u002Fvps-installation","7.deployment\u002F1.vps-installation","i-lucide-server",{"title":151,"path":152,"stem":153,"icon":154},"Environment Variables","\u002Fdeployment\u002Fenvironment-variables","7.deployment\u002F2.environment-variables","i-lucide-sliders",{"title":156,"path":157,"stem":158,"icon":159},"Cloudflare Tunnel","\u002Fdeployment\u002Fcloudflare-tunnel","7.deployment\u002F3.cloudflare-tunnel","i-lucide-network",{"title":161,"path":162,"stem":163,"icon":164},"Systemd","\u002Fdeployment\u002Fsystemd","7.deployment\u002F4.systemd","i-lucide-cpu",{"title":41,"path":166,"stem":167,"icon":44},"\u002Fdeployment\u002Fupdating","7.deployment\u002F5.updating",{"title":169,"path":170,"stem":171,"children":172,"page":19},"Developer","\u002Fdeveloper","8.developer",[173,178,183,188,193],{"title":174,"path":175,"stem":176,"icon":177},"Architecture","\u002Fdeveloper\u002Farchitecture","8.developer\u002F1.architecture","i-lucide-box",{"title":179,"path":180,"stem":181,"icon":182},"API Architecture","\u002Fdeveloper\u002Fapi","8.developer\u002F2.api","i-lucide-code-xml",{"title":184,"path":185,"stem":186,"icon":187},"Database","\u002Fdeveloper\u002Fdatabase","8.developer\u002F3.database","i-lucide-database",{"title":189,"path":190,"stem":191,"icon":192},"Development","\u002Fdeveloper\u002Fdevelopment","8.developer\u002F4.development","i-lucide-terminal",{"title":194,"path":195,"stem":196,"icon":197},"Building Releases","\u002Fdeveloper\u002Fbuilding-releases","8.developer\u002F5.building-releases","i-lucide-package-check",{"title":199,"path":200,"stem":201,"children":202,"page":19},"Reference","\u002Freference","9.reference",[203,208,213],{"title":204,"path":205,"stem":206,"icon":207},"Configuration Reference","\u002Freference\u002Fconfiguration","9.reference\u002F1.configuration","i-lucide-file-cog",{"title":209,"path":210,"stem":211,"icon":212},"API Reference","\u002Freference\u002Fapi-reference","9.reference\u002F2.api-reference","i-lucide-webhook",{"title":214,"path":215,"stem":216,"icon":217},"Changelog","\u002Freference\u002Fchangelog","9.reference\u002F3.changelog","i-lucide-history",{"id":219,"title":156,"body":220,"description":650,"extension":651,"links":652,"meta":653,"navigation":654,"path":157,"seo":655,"stem":158,"__hash__":658},"docs\u002F7.deployment\u002F3.cloudflare-tunnel.md",{"type":221,"value":222,"toc":636},"minimark",[223,227,243,246,251,273,275,279,599,601,605,632],[224,225,156],"h1",{"id":226},"cloudflare-tunnel",[228,229,230,233,234,238,239,242],"p",{},[231,232,156],"strong",{}," (",[235,236,237],"code",{},"cloudflared",") is the recommended method for exposing GO Shortener to the public internet at ",[235,240,241],{},"https:\u002F\u002Fgo.arcn.online",".",[244,245],"hr",{},[247,248,250],"h2",{"id":249},"why-cloudflare-tunnel","Why Cloudflare Tunnel?",[252,253,254,261,267],"ol",{},[255,256,257,260],"li",{},[231,258,259],{},"Zero Open Ports",": The tunnel establishes an outbound-only connection from your VPS to Cloudflare edge nodes. You do not need to open port 80 or 443 on your firewall.",[255,262,263,266],{},[231,264,265],{},"Origin IP Masked",": Direct Denial of Service (DDoS) attacks cannot target your VPS directly because your origin IP is never revealed.",[255,268,269,272],{},[231,270,271],{},"Automatic SSL\u002FTLS",": Cloudflare handles SSL certificate generation, renewal, and HTTPS redirects at the edge.",[244,274],{},[247,276,278],{"id":277},"step-by-step-setup","Step-by-Step Setup",[280,281,282,290,293,360,366,369,384,394,398,401,418,425,429,436,459,465,469,476,553,561,565,571],"steps",{},[283,284,286,287,289],"h3",{"id":285},"_1-install-cloudflared-on-your-vps","1. Install ",[235,288,237],{}," on Your VPS",[228,291,292],{},"Download and install the official Cloudflare package for Ubuntu\u002FDebian:",[294,295,301],"pre",{"className":296,"code":297,"filename":298,"language":299,"meta":300,"style":300},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Download Debian package\ncurl -L --output cloudflared.deb https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcloudflared\u002Freleases\u002Flatest\u002Fdownload\u002Fcloudflared-linux-amd64.deb\n\n# Install package\nsudo dpkg -i cloudflared.deb\n","Terminal","bash","",[235,302,303,312,332,339,345],{"__ignoreMap":300},[304,305,308],"span",{"class":306,"line":307},"line",1,[304,309,311],{"class":310},"sHwdD","# Download Debian package\n",[304,313,315,319,323,326,329],{"class":306,"line":314},2,[304,316,318],{"class":317},"sBMFI","curl",[304,320,322],{"class":321},"sfazB"," -L",[304,324,325],{"class":321}," --output",[304,327,328],{"class":321}," cloudflared.deb",[304,330,331],{"class":321}," https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcloudflared\u002Freleases\u002Flatest\u002Fdownload\u002Fcloudflared-linux-amd64.deb\n",[304,333,335],{"class":306,"line":334},3,[304,336,338],{"emptyLinePlaceholder":337},true,"\n",[304,340,342],{"class":306,"line":341},4,[304,343,344],{"class":310},"# Install package\n",[304,346,348,351,354,357],{"class":306,"line":347},5,[304,349,350],{"class":317},"sudo",[304,352,353],{"class":321}," dpkg",[304,355,356],{"class":321}," -i",[304,358,359],{"class":321}," cloudflared.deb\n",[283,361,363,364],{"id":362},"_2-authenticate-cloudflared","2. Authenticate ",[235,365,237],{},[228,367,368],{},"Authenticate your VPS with your Cloudflare account:",[294,370,372],{"className":296,"code":371,"filename":298,"language":299,"meta":300,"style":300},"cloudflared tunnel login\n",[235,373,374],{"__ignoreMap":300},[304,375,376,378,381],{"class":306,"line":307},[304,377,237],{"class":317},[304,379,380],{"class":321}," tunnel",[304,382,383],{"class":321}," login\n",[228,385,386,387,390,391,242],{},"The CLI will print a login URL. Open this URL in your web browser, select your domain (",[235,388,389],{},"arcn.online","), and authorize the connection. An origin certificate will be written to ",[235,392,393],{},"\u002Froot\u002F.cloudflared\u002Fcert.pem",[283,395,397],{"id":396},"_3-create-the-tunnel","3. Create the Tunnel",[228,399,400],{},"Create a dedicated tunnel for your GO instance:",[294,402,404],{"className":296,"code":403,"filename":298,"language":299,"meta":300,"style":300},"cloudflared tunnel create go-tunnel\n",[235,405,406],{"__ignoreMap":300},[304,407,408,410,412,415],{"class":306,"line":307},[304,409,237],{"class":317},[304,411,380],{"class":321},[304,413,414],{"class":321}," create",[304,416,417],{"class":321}," go-tunnel\n",[228,419,420,421,424],{},"Cloudflare will generate a unique Tunnel UUID and save a credentials JSON file (e.g., ",[235,422,423],{},"\u002Froot\u002F.cloudflared\u002F\u003CTUNNEL_ID>.json",").",[283,426,428],{"id":427},"_4-route-your-dns-hostname","4. Route Your DNS Hostname",[228,430,431,432,435],{},"Point ",[235,433,434],{},"go.arcn.online"," to your tunnel:",[294,437,439],{"className":296,"code":438,"filename":298,"language":299,"meta":300,"style":300},"cloudflared tunnel route dns go-tunnel go.arcn.online\n",[235,440,441],{"__ignoreMap":300},[304,442,443,445,447,450,453,456],{"class":306,"line":307},[304,444,237],{"class":317},[304,446,380],{"class":321},[304,448,449],{"class":321}," route",[304,451,452],{"class":321}," dns",[304,454,455],{"class":321}," go-tunnel",[304,457,458],{"class":321}," go.arcn.online\n",[228,460,461,462,242],{},"This creates a CNAME record in your Cloudflare DNS zone pointing to ",[235,463,464],{},"\u003CTUNNEL_ID>.cfargotunnel.com",[283,466,468],{"id":467},"_5-create-tunnel-configuration-file","5. Create Tunnel Configuration File",[228,470,471,472,475],{},"Create ",[235,473,474],{},"\u002Froot\u002F.cloudflared\u002Fconfig.yml",":",[294,477,481],{"className":478,"code":479,"filename":474,"language":480,"meta":300,"style":300},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","tunnel: \u003CTUNNEL_ID>\ncredentials-file: \u002Froot\u002F.cloudflared\u002F\u003CTUNNEL_ID>.json\n\ningress:\n  - hostname: go.arcn.online\n    service: http:\u002F\u002F127.0.0.1:3000\n  - service: http_status:404\n","yaml",[235,482,483,495,505,509,517,529,540],{"__ignoreMap":300},[304,484,485,489,492],{"class":306,"line":307},[304,486,488],{"class":487},"swJcz","tunnel",[304,490,475],{"class":491},"sMK4o",[304,493,494],{"class":321}," \u003CTUNNEL_ID>\n",[304,496,497,500,502],{"class":306,"line":314},[304,498,499],{"class":487},"credentials-file",[304,501,475],{"class":491},[304,503,504],{"class":321}," \u002Froot\u002F.cloudflared\u002F\u003CTUNNEL_ID>.json\n",[304,506,507],{"class":306,"line":334},[304,508,338],{"emptyLinePlaceholder":337},[304,510,511,514],{"class":306,"line":341},[304,512,513],{"class":487},"ingress",[304,515,516],{"class":491},":\n",[304,518,519,522,525,527],{"class":306,"line":347},[304,520,521],{"class":491},"  -",[304,523,524],{"class":487}," hostname",[304,526,475],{"class":491},[304,528,458],{"class":321},[304,530,532,535,537],{"class":306,"line":531},6,[304,533,534],{"class":487},"    service",[304,536,475],{"class":491},[304,538,539],{"class":321}," http:\u002F\u002F127.0.0.1:3000\n",[304,541,543,545,548,550],{"class":306,"line":542},7,[304,544,521],{"class":491},[304,546,547],{"class":487}," service",[304,549,475],{"class":491},[304,551,552],{"class":321}," http_status:404\n",[554,555,556,557,560],"note",{},"Replace ",[235,558,559],{},"\u003CTUNNEL_ID>"," with your actual Tunnel UUID from Step 3.",[283,562,564],{"id":563},"_6-install-as-a-system-service-start","6. Install as a System Service & Start",[228,566,567,568,570],{},"Install ",[235,569,237],{}," as a native systemd service so it starts on system boot:",[294,572,574],{"className":296,"code":573,"filename":298,"language":299,"meta":300,"style":300},"cloudflared service install\nsystemctl enable --now cloudflared\n",[235,575,576,585],{"__ignoreMap":300},[304,577,578,580,582],{"class":306,"line":307},[304,579,237],{"class":317},[304,581,547],{"class":321},[304,583,584],{"class":321}," install\n",[304,586,587,590,593,596],{"class":306,"line":314},[304,588,589],{"class":317},"systemctl",[304,591,592],{"class":321}," enable",[304,594,595],{"class":321}," --now",[304,597,598],{"class":321}," cloudflared\n",[244,600],{},[247,602,604],{"id":603},"verifying-the-tunnel","Verifying the Tunnel",[252,606,607,624,629],{},[255,608,609,610],{},"Check the tunnel service status:\n",[294,611,613],{"className":296,"code":612,"filename":298,"language":299,"meta":300,"style":300},"systemctl status cloudflared\n",[235,614,615],{"__ignoreMap":300},[304,616,617,619,622],{"class":306,"line":307},[304,618,589],{"class":317},[304,620,621],{"class":321}," status",[304,623,598],{"class":321},[255,625,626,627,242],{},"Open your browser and navigate to ",[235,628,241],{},[255,630,631],{},"You should see the GO Shortener homepage with a secure SSL lock icon.",[633,634,635],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":300,"searchDepth":314,"depth":314,"links":637},[638,639,649],{"id":249,"depth":314,"text":250},{"id":277,"depth":314,"text":278,"children":640},[641,643,645,646,647,648],{"id":285,"depth":334,"text":642},"1. Install cloudflared on Your VPS",{"id":362,"depth":334,"text":644},"2. Authenticate cloudflared",{"id":396,"depth":334,"text":397},{"id":427,"depth":334,"text":428},{"id":467,"depth":334,"text":468},{"id":563,"depth":334,"text":564},{"id":603,"depth":314,"text":604},"Expose GO Shortener securely through go.arcn.online without opening public firewall ports.","md",null,{},{"icon":159},{"title":656,"description":657},"Cloudflare Tunnel Guide - GO Shortener","Step-by-step instructions for exposing GO Shortener to the internet at go.arcn.online using Cloudflare Tunnel.","fBC1aYBVF0YCFyJJhHNams4O2sgccVXm73n7dUjSlAI",[660,662],{"title":151,"path":152,"stem":153,"description":661,"icon":154,"children":-1},"Comprehensive production environment variables and security hardening guidelines.",{"title":161,"path":162,"stem":163,"description":663,"icon":164,"children":-1},"Manage the GO Shortener background service, auto-restarts, and logs using systemd.",1788462428145]