[{"data":1,"prerenderedAt":830},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":218,"-getting-started-installation-surround":825},[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":26,"body":220,"description":816,"extension":817,"links":818,"meta":819,"navigation":820,"path":27,"seo":821,"stem":28,"__hash__":824},"docs\u002F2.getting-started\u002F1.installation.md",{"type":221,"value":222,"toc":804},"minimark",[223,227,240,243,248,289,291,295,309,345,361,363,367,370,746,748,752,758,793,800],[224,225,26],"h1",{"id":226},"installation",[228,229,230,231,235,236,239],"p",{},"GO Shortener is distributed as a single precompiled binary for Linux systems (",[232,233,234],"code",{},"x86_64"," and ",[232,237,238],{},"aarch64","). No Go compiler, Docker, or Node.js environment is required on the production server.",[241,242],"hr",{},[244,245,247],"h2",{"id":246},"prerequisites","Prerequisites",[249,250,251,263,269,279],"ul",{},[252,253,254,258,259,262],"li",{},[255,256,257],"strong",{},"Operating System",": Ubuntu 22.04 LTS or 24.04 LTS (or any modern Linux distribution with ",[232,260,261],{},"systemd",").",[252,264,265,268],{},[255,266,267],{},"Hardware",": Minimum 512 MB RAM (1 GB recommended), 1 CPU core, 500 MB free disk space.",[252,270,271,274,275,278],{},[255,272,273],{},"Privileges",": Root access or ",[232,276,277],{},"sudo"," privileges.",[252,280,281,284,285,288],{},[255,282,283],{},"Port Availability",": Port ",[232,286,287],{},"3000"," (default) free for local binding.",[241,290],{},[244,292,294],{"id":293},"option-a-automated-one-line-installer-recommended","Option A: Automated One-Line Installer (Recommended)",[228,296,297,298,301,302,305,306,308],{},"Run the official installer script as ",[232,299,300],{},"root",". This script detects your server's CPU architecture, downloads the latest prebuilt release from GitHub, generates a production ",[232,303,304],{},".env"," file, and installs the ",[232,307,261],{}," service.",[310,311,317],"pre",{"className":312,"code":313,"filename":314,"language":315,"meta":316,"style":316},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FItsARCn\u002FGo-shortner\u002Fmain\u002Fscripts\u002Finstall.sh | sudo bash\n","Terminal","bash","",[232,318,319],{"__ignoreMap":316},[320,321,324,328,332,335,339,342],"span",{"class":322,"line":323},"line",1,[320,325,327],{"class":326},"sBMFI","curl",[320,329,331],{"class":330},"sfazB"," -fsSL",[320,333,334],{"class":330}," https:\u002F\u002Fraw.githubusercontent.com\u002FItsARCn\u002FGo-shortner\u002Fmain\u002Fscripts\u002Finstall.sh",[320,336,338],{"class":337},"sMK4o"," |",[320,340,341],{"class":326}," sudo",[320,343,344],{"class":330}," bash\n",[346,347,348,349,352,353,356,357,360],"tip",{},"The installer script sets up ",[232,350,351],{},"\u002Froot\u002FGo-shortner"," with a randomly generated 32-character ",[232,354,355],{},"JWT_SECRET"," and creates the ",[232,358,359],{},"go-shortener.service"," automatically.",[241,362],{},[244,364,366],{"id":365},"option-b-manual-binary-installation","Option B: Manual Binary Installation",[228,368,369],{},"If you prefer to configure the deployment manually, follow these steps:",[371,372,373,378,404,408,419,496,500,507,610,614,620,717,721],"steps",{},[374,375,377],"h3",{"id":376},"_1-create-the-application-directory","1. Create the Application Directory",[310,379,381],{"className":312,"code":380,"filename":314,"language":315,"meta":316,"style":316},"mkdir -p \u002Froot\u002FGo-shortner\u002Fdata\ncd \u002Froot\u002FGo-shortner\n",[232,382,383,394],{"__ignoreMap":316},[320,384,385,388,391],{"class":322,"line":323},[320,386,387],{"class":326},"mkdir",[320,389,390],{"class":330}," -p",[320,392,393],{"class":330}," \u002Froot\u002FGo-shortner\u002Fdata\n",[320,395,397,401],{"class":322,"line":396},2,[320,398,400],{"class":399},"s2Zo4","cd",[320,402,403],{"class":330}," \u002Froot\u002FGo-shortner\n",[374,405,407],{"id":406},"_2-download-the-release-binary","2. Download the Release Binary",[228,409,410,411,418],{},"Visit the ",[412,413,417],"a",{"href":414,"rel":415},"https:\u002F\u002Fgithub.com\u002FItsARCn\u002FGo-shortner\u002Freleases",[416],"nofollow","GitHub Releases"," page and download the executable matching your architecture:",[310,420,422],{"className":312,"code":421,"filename":314,"language":315,"meta":316,"style":316},"# For x86_64 \u002F amd64 servers\ncurl -L -o go-shortener https:\u002F\u002Fgithub.com\u002FItsARCn\u002FGo-shortner\u002Freleases\u002Flatest\u002Fdownload\u002Fgo-shortener-linux-amd64\n\n# For aarch64 \u002F arm64 servers\ncurl -L -o go-shortener https:\u002F\u002Fgithub.com\u002FItsARCn\u002FGo-shortner\u002Freleases\u002Flatest\u002Fdownload\u002Fgo-shortener-linux-arm64\n\n# Grant execute permissions\nchmod +x go-shortener\n",[232,423,424,430,446,453,459,473,478,484],{"__ignoreMap":316},[320,425,426],{"class":322,"line":323},[320,427,429],{"class":428},"sHwdD","# For x86_64 \u002F amd64 servers\n",[320,431,432,434,437,440,443],{"class":322,"line":396},[320,433,327],{"class":326},[320,435,436],{"class":330}," -L",[320,438,439],{"class":330}," -o",[320,441,442],{"class":330}," go-shortener",[320,444,445],{"class":330}," https:\u002F\u002Fgithub.com\u002FItsARCn\u002FGo-shortner\u002Freleases\u002Flatest\u002Fdownload\u002Fgo-shortener-linux-amd64\n",[320,447,449],{"class":322,"line":448},3,[320,450,452],{"emptyLinePlaceholder":451},true,"\n",[320,454,456],{"class":322,"line":455},4,[320,457,458],{"class":428},"# For aarch64 \u002F arm64 servers\n",[320,460,462,464,466,468,470],{"class":322,"line":461},5,[320,463,327],{"class":326},[320,465,436],{"class":330},[320,467,439],{"class":330},[320,469,442],{"class":330},[320,471,472],{"class":330}," https:\u002F\u002Fgithub.com\u002FItsARCn\u002FGo-shortner\u002Freleases\u002Flatest\u002Fdownload\u002Fgo-shortener-linux-arm64\n",[320,474,476],{"class":322,"line":475},6,[320,477,452],{"emptyLinePlaceholder":451},[320,479,481],{"class":322,"line":480},7,[320,482,483],{"class":428},"# Grant execute permissions\n",[320,485,487,490,493],{"class":322,"line":486},8,[320,488,489],{"class":326},"chmod",[320,491,492],{"class":330}," +x",[320,494,495],{"class":330}," go-shortener\n",[374,497,499],{"id":498},"_3-create-the-production-environment-file","3. Create the Production Environment File",[228,501,502,503,506],{},"Create ",[232,504,505],{},"\u002Froot\u002FGo-shortner\u002F.env"," and lock file permissions to prevent unauthorized reads:",[310,508,510],{"className":312,"code":509,"filename":314,"language":315,"meta":316,"style":316},"cat \u003C\u003C 'EOF' > \u002Froot\u002FGo-shortner\u002F.env\nPORT=3000\nHOST=127.0.0.1\nBASE_URL=https:\u002F\u002Fgo.arcn.online\nDB_PATH=\u002Froot\u002FGo-shortner\u002Fdata\u002Fgo.sqlite\nJWT_SECRET=$(openssl rand -hex 32)\nSESSION_DURATION_HOURS=72\nANONYMOUS_DAILY_QUOTA=15\nREGISTERED_MONTHLY_QUOTA=100\nANONYMOUS_MAX_EXPIRATION_DAYS=7\nREGISTERED_MAX_EXPIRATION_DAYS=365\nTURNSTILE_ENABLED=false\nEOF\n\nchmod 600 \u002Froot\u002FGo-shortner\u002F.env\n",[232,511,512,529,534,539,544,549,554,559,564,570,576,582,588,594,599],{"__ignoreMap":316},[320,513,514,517,520,523,526],{"class":322,"line":323},[320,515,516],{"class":326},"cat",[320,518,519],{"class":337}," \u003C\u003C",[320,521,522],{"class":337}," 'EOF'",[320,524,525],{"class":337}," >",[320,527,528],{"class":330}," \u002Froot\u002FGo-shortner\u002F.env\n",[320,530,531],{"class":322,"line":396},[320,532,533],{"class":330},"PORT=3000\n",[320,535,536],{"class":322,"line":448},[320,537,538],{"class":330},"HOST=127.0.0.1\n",[320,540,541],{"class":322,"line":455},[320,542,543],{"class":330},"BASE_URL=https:\u002F\u002Fgo.arcn.online\n",[320,545,546],{"class":322,"line":461},[320,547,548],{"class":330},"DB_PATH=\u002Froot\u002FGo-shortner\u002Fdata\u002Fgo.sqlite\n",[320,550,551],{"class":322,"line":475},[320,552,553],{"class":330},"JWT_SECRET=$(openssl rand -hex 32)\n",[320,555,556],{"class":322,"line":480},[320,557,558],{"class":330},"SESSION_DURATION_HOURS=72\n",[320,560,561],{"class":322,"line":486},[320,562,563],{"class":330},"ANONYMOUS_DAILY_QUOTA=15\n",[320,565,567],{"class":322,"line":566},9,[320,568,569],{"class":330},"REGISTERED_MONTHLY_QUOTA=100\n",[320,571,573],{"class":322,"line":572},10,[320,574,575],{"class":330},"ANONYMOUS_MAX_EXPIRATION_DAYS=7\n",[320,577,579],{"class":322,"line":578},11,[320,580,581],{"class":330},"REGISTERED_MAX_EXPIRATION_DAYS=365\n",[320,583,585],{"class":322,"line":584},12,[320,586,587],{"class":330},"TURNSTILE_ENABLED=false\n",[320,589,591],{"class":322,"line":590},13,[320,592,593],{"class":337},"EOF\n",[320,595,597],{"class":322,"line":596},14,[320,598,452],{"emptyLinePlaceholder":451},[320,600,602,604,608],{"class":322,"line":601},15,[320,603,489],{"class":326},[320,605,607],{"class":606},"sbssI"," 600",[320,609,528],{"class":330},[374,611,613],{"id":612},"_4-create-the-systemd-service-file","4. Create the systemd Service File",[228,615,502,616,619],{},[232,617,618],{},"\u002Fetc\u002Fsystemd\u002Fsystem\u002Fgo-shortener.service",":",[310,621,625],{"className":622,"code":623,"filename":618,"language":624,"meta":316,"style":316},"language-ini shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[Unit]\nDescription=GO Shortener - Minimal High-Performance URL Shortener\nAfter=network.target\n\n[Service]\nType=simple\nUser=root\nWorkingDirectory=\u002Froot\u002FGo-shortner\nExecStart=\u002Froot\u002FGo-shortner\u002Fgo-shortener\nRestart=always\nRestartSec=3\nLimitNOFILE=65535\n\n# Security Hardening\nPrivateTmp=true\n\n[Install]\nWantedBy=multi-user.target\n","ini",[232,626,627,632,637,642,646,651,656,661,666,671,676,681,686,690,695,700,705,711],{"__ignoreMap":316},[320,628,629],{"class":322,"line":323},[320,630,631],{},"[Unit]\n",[320,633,634],{"class":322,"line":396},[320,635,636],{},"Description=GO Shortener - Minimal High-Performance URL Shortener\n",[320,638,639],{"class":322,"line":448},[320,640,641],{},"After=network.target\n",[320,643,644],{"class":322,"line":455},[320,645,452],{"emptyLinePlaceholder":451},[320,647,648],{"class":322,"line":461},[320,649,650],{},"[Service]\n",[320,652,653],{"class":322,"line":475},[320,654,655],{},"Type=simple\n",[320,657,658],{"class":322,"line":480},[320,659,660],{},"User=root\n",[320,662,663],{"class":322,"line":486},[320,664,665],{},"WorkingDirectory=\u002Froot\u002FGo-shortner\n",[320,667,668],{"class":322,"line":566},[320,669,670],{},"ExecStart=\u002Froot\u002FGo-shortner\u002Fgo-shortener\n",[320,672,673],{"class":322,"line":572},[320,674,675],{},"Restart=always\n",[320,677,678],{"class":322,"line":578},[320,679,680],{},"RestartSec=3\n",[320,682,683],{"class":322,"line":584},[320,684,685],{},"LimitNOFILE=65535\n",[320,687,688],{"class":322,"line":590},[320,689,452],{"emptyLinePlaceholder":451},[320,691,692],{"class":322,"line":596},[320,693,694],{},"# Security Hardening\n",[320,696,697],{"class":322,"line":601},[320,698,699],{},"PrivateTmp=true\n",[320,701,703],{"class":322,"line":702},16,[320,704,452],{"emptyLinePlaceholder":451},[320,706,708],{"class":322,"line":707},17,[320,709,710],{},"[Install]\n",[320,712,714],{"class":322,"line":713},18,[320,715,716],{},"WantedBy=multi-user.target\n",[374,718,720],{"id":719},"_5-enable-and-start-the-service","5. Enable and Start the Service",[310,722,724],{"className":312,"code":723,"filename":314,"language":315,"meta":316,"style":316},"systemctl daemon-reload\nsystemctl enable --now go-shortener\n",[232,725,726,734],{"__ignoreMap":316},[320,727,728,731],{"class":322,"line":323},[320,729,730],{"class":326},"systemctl",[320,732,733],{"class":330}," daemon-reload\n",[320,735,736,738,741,744],{"class":322,"line":396},[320,737,730],{"class":326},[320,739,740],{"class":330}," enable",[320,742,743],{"class":330}," --now",[320,745,495],{"class":330},[241,747],{},[244,749,751],{"id":750},"verifying-the-service","Verifying the Service",[228,753,754,755,619],{},"Check that the binary is actively listening on ",[232,756,757],{},"127.0.0.1:3000",[310,759,761],{"className":312,"code":760,"filename":314,"language":315,"meta":316,"style":316},"# Verify systemd service status\nsystemctl status go-shortener\n\n# Test internal health endpoint\ncurl http:\u002F\u002F127.0.0.1:3000\u002Fapi\u002Fhealth\n",[232,762,763,768,777,781,786],{"__ignoreMap":316},[320,764,765],{"class":322,"line":323},[320,766,767],{"class":428},"# Verify systemd service status\n",[320,769,770,772,775],{"class":322,"line":396},[320,771,730],{"class":326},[320,773,774],{"class":330}," status",[320,776,495],{"class":330},[320,778,779],{"class":322,"line":448},[320,780,452],{"emptyLinePlaceholder":451},[320,782,783],{"class":322,"line":455},[320,784,785],{"class":428},"# Test internal health endpoint\n",[320,787,788,790],{"class":322,"line":461},[320,789,327],{"class":326},[320,791,792],{"class":330}," http:\u002F\u002F127.0.0.1:3000\u002Fapi\u002Fhealth\n",[228,794,795,796,799],{},"A healthy response will return ",[232,797,798],{},"{\"status\":\"ok\"}",".",[801,802,803],"style",{},"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 .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 pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":316,"searchDepth":396,"depth":396,"links":805},[806,807,808,815],{"id":246,"depth":396,"text":247},{"id":293,"depth":396,"text":294},{"id":365,"depth":396,"text":366,"children":809},[810,811,812,813,814],{"id":376,"depth":448,"text":377},{"id":406,"depth":448,"text":407},{"id":498,"depth":448,"text":499},{"id":612,"depth":448,"text":613},{"id":719,"depth":448,"text":720},{"id":750,"depth":396,"text":751},"Install GO Shortener on an Ubuntu VPS or standalone Linux host.","md",null,{},{"icon":29},{"title":822,"description":823},"Installation Guide - GO Shortener","Step-by-step instructions for installing GO Shortener using the automated installer or prebuilt standalone binaries.","tu3HP2subgPnavOnkv-vnSAgeYNFvfGLTugrAfW80iM",[826,828],{"title":15,"path":16,"stem":17,"description":827,"icon":18,"children":-1},"Complete feature matrix and capabilities of GO Shortener.",{"title":31,"path":32,"stem":33,"description":829,"icon":34,"children":-1},"Initial configuration and environment settings for GO Shortener.",1788462424545]