[{"data":1,"prerenderedAt":626},["ShallowReactive",2],{"navigation_docs":3,"-introduction-features":218,"-introduction-features-surround":621},[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":15,"body":220,"description":612,"extension":613,"links":614,"meta":615,"navigation":616,"path":16,"seo":617,"stem":17,"__hash__":620},"docs\u002F1.introduction\u002F2.features.md",{"type":221,"value":222,"toc":598},"minimark",[223,227,231,234,239,414,416,420,425,473,477,522,526,540,544,561,569],[224,225,15],"h1",{"id":226},"features",[228,229,230],"p",{},"GO Shortener provides a comprehensive set of features divided into visitor tiers, security mechanisms, and administrative tooling.",[232,233],"hr",{},[235,236,238],"h2",{"id":237},"visitor-tiers-quota-comparison","Visitor Tiers & Quota Comparison",[240,241,242,262],"table",{},[243,244,245],"thead",{},[246,247,248,252,256,259],"tr",{},[249,250,251],"th",{},"Feature",[249,253,255],{"align":254},"center","Anonymous Visitors",[249,257,258],{"align":254},"Registered Users",[249,260,261],{"align":254},"Administrators",[263,264,265,283,299,315,331,346,359,373,388,401],"tbody",{},[246,266,267,274,277,280],{},[268,269,270],"td",{},[271,272,273],"strong",{},"Account Required",[268,275,276],{"align":254},"No",[268,278,279],{"align":254},"Yes",[268,281,282],{"align":254},"Yes (Super Admin \u002F Moderator)",[246,284,285,290,293,296],{},[268,286,287],{},[271,288,289],{},"Link Creation Quota",[268,291,292],{"align":254},"15 links \u002F 24 hours",[268,294,295],{"align":254},"100 links \u002F calendar month",[268,297,298],{"align":254},"Unlimited",[246,300,301,306,309,312],{},[268,302,303],{},[271,304,305],{},"Max Expiration Period",[268,307,308],{"align":254},"7 days",[268,310,311],{"align":254},"Up to 1 year",[268,313,314],{"align":254},"Unlimited \u002F Permanent",[246,316,317,322,325,328],{},[268,318,319],{},[271,320,321],{},"Available Expiration Options",[268,323,324],{"align":254},"1h, 1d, 3d, 7d",[268,326,327],{"align":254},"1h, 1d, 7d, 30d, 3m, 6m, 1y",[268,329,330],{"align":254},"Custom \u002F Permanent",[246,332,333,338,341,344],{},[268,334,335],{},[271,336,337],{},"Personal Dashboard",[268,339,340],{"align":254},"❌",[268,342,343],{"align":254},"✅",[268,345,343],{"align":254},[246,347,348,353,355,357],{},[268,349,350],{},[271,351,352],{},"Link Search & Pagination",[268,354,340],{"align":254},[268,356,343],{"align":254},[268,358,343],{"align":254},[246,360,361,366,368,371],{},[268,362,363],{},[271,364,365],{},"Renew Expired Links",[268,367,340],{"align":254},[268,369,370],{"align":254},"✅ (Preserves Short Code)",[268,372,343],{"align":254},[246,374,375,380,382,385],{},[268,376,377],{},[271,378,379],{},"Permanent Link Request",[268,381,340],{"align":254},[268,383,384],{"align":254},"✅ (Submitted for Review)",[268,386,387],{"align":254},"✅ (Direct Approval)",[246,389,390,395,397,399],{},[268,391,392],{},[271,393,394],{},"Aggregate Click Analytics",[268,396,340],{"align":254},[268,398,343],{"align":254},[268,400,343],{"align":254},[246,402,403,408,410,412],{},[268,404,405],{},[271,406,407],{},"Soft Delete Links",[268,409,340],{"align":254},[268,411,343],{"align":254},[268,413,343],{"align":254},[232,415],{},[235,417,419],{"id":418},"core-capabilities","Core Capabilities",[421,422,424],"h3",{"id":423},"_1-high-performance-link-engine","1. High-Performance Link Engine",[426,427,428,435,461,467],"ul",{},[429,430,431,434],"li",{},[271,432,433],{},"Random Identifiers",": Generates cryptographically secure 6-character random tokens using alphanumeric characters.",[429,436,437,440,441,445,446,449,450,453,454,453,457,460],{},[271,438,439],{},"SSRF & Recursion Shield",": Actively inspects submitted target URLs to prevent server-side request forgery (blocks ",[442,443,444],"code",{},"127.0.0.1",", RFC1918 subnets, cloud metadata ",[442,447,448],{},"169.254.169.254",", self-domain loops, and hazardous protocols like ",[442,451,452],{},"javascript:",", ",[442,455,456],{},"file:",[442,458,459],{},"data:",").",[429,462,463,466],{},[271,464,465],{},"HTTP 302 Redirection",": Rapid non-caching redirects ensuring real-time click counting.",[429,468,469,472],{},[271,470,471],{},"HTTP 410 Gone on Expiry",": When a link expires, it returns a styled 410 Gone page rather than a generic 404, with instructions for the original owner to renew it.",[421,474,476],{"id":475},"_2-authentication-account-management","2. Authentication & Account Management",[426,478,479,489,495,512],{},[429,480,481,484,485,488],{},[271,482,483],{},"Local Credentials",": Strong password hashing using ",[442,486,487],{},"bcrypt"," at computational work cost 12.",[429,490,491,494],{},[271,492,493],{},"Google OAuth Integration",": Native Google sign-in using Firebase Authentication tokens with automatic email linking to avoid account duplication.",[429,496,497,500,501,453,504,507,508,511],{},[271,498,499],{},"Session Security",": Session tokens issued as encrypted cookies configured with ",[442,502,503],{},"HttpOnly",[442,505,506],{},"SameSite=Lax",", and ",[442,509,510],{},"Secure"," attributes.",[429,513,514,517,518,521],{},[271,515,516],{},"Zero Hardcoded Admin",": First user to register automatically claims the ",[442,519,520],{},"super_admin"," role.",[421,523,525],{"id":524},"_3-privacy-first-analytics","3. Privacy-First Analytics",[426,527,528,534],{},[429,529,530,533],{},[271,531,532],{},"Aggregated Telemetry",": Total clicks, daily\u002Fweekly\u002Fmonthly trends, device type (Desktop, Mobile, Tablet), browser distribution, OS distribution, and top referring domains.",[429,535,536,539],{},[271,537,538],{},"Zero Raw IP Storage",": Visitor IP addresses are immediately hashed with SHA-256 and a secret salt before write operations.",[421,541,543],{"id":542},"_4-abuse-prevention-captcha","4. Abuse Prevention & CAPTCHA",[426,545,546,551],{},[429,547,548,550],{},[271,549,101],{},": Drop-in CAPTCHA verification for registration and anonymous link creation. Fully configurable and toggleable via environment variables.",[429,552,553,556,557,560],{},[271,554,555],{},"Public Abuse Reporting",": Visitors can submit abuse, phishing, or malware reports against any short link via ",[442,558,559],{},"\u002Freport",".",[421,562,564,565,568],{"id":563},"_5-administration-control-center-admin","5. Administration Control Center (",[442,566,567],{},"\u002Fadmin",")",[426,570,571,577,583,592],{},[429,572,573,576],{},[271,574,575],{},"System Metrics",": Real-time counter metrics for total links, active users, total clicks, and pending queues.",[429,578,579,582],{},[271,580,581],{},"User Moderation",": Filter users, promote\u002Fdemote roles, apply timed suspensions (30 seconds up to 7 days), or issue permanent bans with automatic bulk deactivation of the user's links.",[429,584,585,588,589,591],{},[271,586,587],{},"Super Admin Immutability",": Built-in guardrails strictly prevent moderators from modifying or banning ",[442,590,520],{}," accounts.",[429,593,594,597],{},[271,595,596],{},"Audit Logging",": Logs authorization failures, admin route access attempts, and authentication anomalies with hashed IP and User-Agent telemetry.",{"title":599,"searchDepth":600,"depth":600,"links":601},"",2,[602,603],{"id":237,"depth":600,"text":238},{"id":418,"depth":600,"text":419,"children":604},[605,607,608,609,610],{"id":423,"depth":606,"text":424},3,{"id":475,"depth":606,"text":476},{"id":524,"depth":606,"text":525},{"id":542,"depth":606,"text":543},{"id":563,"depth":606,"text":611},"5. Administration Control Center (\u002Fadmin)","Complete feature matrix and capabilities of GO Shortener.","md",null,{},{"icon":18},{"title":618,"description":619},"Features - GO Shortener","Detailed breakdown of anonymous, registered, security, and administrative features in GO Shortener.","8AZtUULNH8rbGsLGpir5MibyDPcy-cClkKKiNfLVcjQ",[622,624],{"title":10,"path":11,"stem":12,"description":623,"icon":13,"children":-1},"An overview of GO Shortener, its core philosophy, and design architecture.",{"title":26,"path":27,"stem":28,"description":625,"icon":29,"children":-1},"Install GO Shortener on an Ubuntu VPS or standalone Linux host.",1788462425651]