[{"data":1,"prerenderedAt":925},["ShallowReactive",2],{"navigation_docs":3,"-reference-configuration":218,"-reference-configuration-surround":920},[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":204,"body":220,"description":911,"extension":912,"links":913,"meta":914,"navigation":915,"path":205,"seo":916,"stem":206,"__hash__":919},"docs\u002F9.reference\u002F1.configuration.md",{"type":221,"value":222,"toc":900},"minimark",[223,227,236,239,244,368,370,374,415,417,421,487,489,493,595,597,601,684,686,690,834,836,840],[224,225,204],"h1",{"id":226},"configuration-reference",[228,229,230,231,235],"p",{},"This page documents every environment variable supported by GO Shortener. All settings should be specified in ",[232,233,234],"code",{},"\u002Froot\u002FGo-shortner\u002F.env",".",[237,238],"hr",{},[240,241,243],"h2",{"id":242},"server-networking","Server & Networking",[245,246,247,269],"table",{},[248,249,250],"thead",{},[251,252,253,257,260,263,266],"tr",{},[254,255,256],"th",{},"Variable",[254,258,259],{},"Type",[254,261,262],{},"Default",[254,264,265],{},"Example Value",[254,267,268],{},"Description",[270,271,272,295,317,340],"tbody",{},[251,273,274,280,283,288,292],{},[275,276,277],"td",{},[232,278,279],{},"PORT",[275,281,282],{},"Integer",[275,284,285],{},[232,286,287],{},"3000",[275,289,290],{},[232,291,287],{},[275,293,294],{},"Local TCP port the HTTP server binds to.",[251,296,297,302,305,310,314],{},[275,298,299],{},[232,300,301],{},"HOST",[275,303,304],{},"String",[275,306,307],{},[232,308,309],{},"127.0.0.1",[275,311,312],{},[232,313,309],{},[275,315,316],{},"Network interface address to listen on.",[251,318,319,324,327,332,337],{},[275,320,321],{},[232,322,323],{},"BASE_URL",[275,325,326],{},"URL",[275,328,329],{},[232,330,331],{},"http:\u002F\u002Flocalhost:3000",[275,333,334],{},[232,335,336],{},"https:\u002F\u002Fgo.arcn.online",[275,338,339],{},"Public canonical base URL used for prefixing short links and OAuth redirects.",[251,341,342,347,349,354,358],{},[275,343,344],{},[232,345,346],{},"APP_ENV",[275,348,304],{},[275,350,351],{},[232,352,353],{},"production",[275,355,356],{},[232,357,353],{},[275,359,360,361,364,365,367],{},"Environment mode (",[232,362,363],{},"development"," or ",[232,366,353],{},").",[237,369],{},[240,371,373],{"id":372},"storage-database","Storage & Database",[245,375,376,390],{},[248,377,378],{},[251,379,380,382,384,386,388],{},[254,381,256],{},[254,383,259],{},[254,385,262],{},[254,387,265],{},[254,389,268],{},[270,391,392],{},[251,393,394,399,402,407,412],{},[275,395,396],{},[232,397,398],{},"DB_PATH",[275,400,401],{},"Path",[275,403,404],{},[232,405,406],{},".\u002Fdata\u002Fgo.sqlite",[275,408,409],{},[232,410,411],{},"\u002Froot\u002FGo-shortner\u002Fdata\u002Fgo.sqlite",[275,413,414],{},"Path to the SQLite database file on disk. Parent directories are created automatically.",[237,416],{},[240,418,420],{"id":419},"security-sessions","Security & Sessions",[245,422,423,437],{},[248,424,425],{},[251,426,427,429,431,433,435],{},[254,428,256],{},[254,430,259],{},[254,432,262],{},[254,434,265],{},[254,436,268],{},[270,438,439,462],{},[251,440,441,446,448,454,459],{},[275,442,443],{},[232,444,445],{},"JWT_SECRET",[275,447,304],{},[275,449,450],{},[451,452,453],"em",{},"(Auto-generated)",[275,455,456],{},[232,457,458],{},"4f9e8a7b6c5d4e3f2a1b0c9d8e7f6a5b",[275,460,461],{},"32+ character random string used for cryptographic session signing.",[251,463,464,469,471,476,480],{},[275,465,466],{},[232,467,468],{},"SESSION_DURATION_HOURS",[275,470,282],{},[275,472,473],{},[232,474,475],{},"72",[275,477,478],{},[232,479,475],{},[275,481,482,483,486],{},"Validity period of the ",[232,484,485],{},"go_session"," cookie in hours.",[237,488],{},[240,490,492],{"id":491},"quotas-lifecycles","Quotas & Lifecycles",[245,494,495,509],{},[248,496,497],{},[251,498,499,501,503,505,507],{},[254,500,256],{},[254,502,259],{},[254,504,262],{},[254,506,265],{},[254,508,268],{},[270,510,511,532,553,574],{},[251,512,513,518,520,525,529],{},[275,514,515],{},[232,516,517],{},"ANONYMOUS_DAILY_QUOTA",[275,519,282],{},[275,521,522],{},[232,523,524],{},"15",[275,526,527],{},[232,528,524],{},[275,530,531],{},"Maximum number of short links an anonymous visitor can create per 24 hours.",[251,533,534,539,541,546,550],{},[275,535,536],{},[232,537,538],{},"REGISTERED_MONTHLY_QUOTA",[275,540,282],{},[275,542,543],{},[232,544,545],{},"100",[275,547,548],{},[232,549,545],{},[275,551,552],{},"Maximum number of short links a standard registered user can create per calendar month.",[251,554,555,560,562,567,571],{},[275,556,557],{},[232,558,559],{},"ANONYMOUS_MAX_EXPIRATION_DAYS",[275,561,282],{},[275,563,564],{},[232,565,566],{},"7",[275,568,569],{},[232,570,566],{},[275,572,573],{},"Ceiling duration (in days) for anonymous short links.",[251,575,576,581,583,588,592],{},[275,577,578],{},[232,579,580],{},"REGISTERED_MAX_EXPIRATION_DAYS",[275,582,282],{},[275,584,585],{},[232,586,587],{},"365",[275,589,590],{},[232,591,587],{},[275,593,594],{},"Ceiling duration (in days) for registered user links.",[237,596],{},[240,598,600],{"id":599},"cloudflare-turnstile-captcha","Cloudflare Turnstile CAPTCHA",[245,602,603,617],{},[248,604,605],{},[251,606,607,609,611,613,615],{},[254,608,256],{},[254,610,259],{},[254,612,262],{},[254,614,265],{},[254,616,268],{},[270,618,619,642,664],{},[251,620,621,626,629,634,639],{},[275,622,623],{},[232,624,625],{},"TURNSTILE_ENABLED",[275,627,628],{},"Boolean",[275,630,631],{},[232,632,633],{},"false",[275,635,636],{},[232,637,638],{},"true",[275,640,641],{},"Toggle Turnstile CAPTCHA verification on forms.",[251,643,644,649,651,656,661],{},[275,645,646],{},[232,647,648],{},"TURNSTILE_SITE_KEY",[275,650,304],{},[275,652,653],{},[232,654,655],{},"\"\"",[275,657,658],{},[232,659,660],{},"0x4AAAAAA...",[275,662,663],{},"Public site key loaded in browser widgets.",[251,665,666,671,673,677,681],{},[275,667,668],{},[232,669,670],{},"TURNSTILE_SECRET_KEY",[275,672,304],{},[275,674,675],{},[232,676,655],{},[275,678,679],{},[232,680,660],{},[275,682,683],{},"Confidential secret key used for server-side verification.",[237,685],{},[240,687,689],{"id":688},"firebase-authentication-google-oauth","Firebase Authentication (Google OAuth)",[245,691,692,706],{},[248,693,694],{},[251,695,696,698,700,702,704],{},[254,697,256],{},[254,699,259],{},[254,701,262],{},[254,703,265],{},[254,705,268],{},[270,707,708,729,750,771,792,813],{},[251,709,710,715,717,721,726],{},[275,711,712],{},[232,713,714],{},"FIREBASE_API_KEY",[275,716,304],{},[275,718,719],{},[232,720,655],{},[275,722,723],{},[232,724,725],{},"AIzaSy...",[275,727,728],{},"Firebase Web App API Key.",[251,730,731,736,738,742,747],{},[275,732,733],{},[232,734,735],{},"FIREBASE_AUTH_DOMAIN",[275,737,304],{},[275,739,740],{},[232,741,655],{},[275,743,744],{},[232,745,746],{},"project.firebaseapp.com",[275,748,749],{},"Firebase Web App Auth Domain.",[251,751,752,757,759,763,768],{},[275,753,754],{},[232,755,756],{},"FIREBASE_PROJECT_ID",[275,758,304],{},[275,760,761],{},[232,762,655],{},[275,764,765],{},[232,766,767],{},"my-project-id",[275,769,770],{},"Firebase Project Identifier.",[251,772,773,778,780,784,789],{},[275,774,775],{},[232,776,777],{},"FIREBASE_STORAGE_BUCKET",[275,779,304],{},[275,781,782],{},[232,783,655],{},[275,785,786],{},[232,787,788],{},"project.firebasestorage.app",[275,790,791],{},"Firebase Storage Bucket.",[251,793,794,799,801,805,810],{},[275,795,796],{},[232,797,798],{},"FIREBASE_MESSAGING_SENDER_ID",[275,800,304],{},[275,802,803],{},[232,804,655],{},[275,806,807],{},[232,808,809],{},"1234567890",[275,811,812],{},"Firebase Cloud Messaging Sender ID.",[251,814,815,820,822,826,831],{},[275,816,817],{},[232,818,819],{},"FIREBASE_APP_ID",[275,821,304],{},[275,823,824],{},[232,825,655],{},[275,827,828],{},[232,829,830],{},"1:123456:web:abcdef",[275,832,833],{},"Firebase Web App Identifier.",[237,835],{},[240,837,839],{"id":838},"development-seed-credentials","Development Seed Credentials",[245,841,842,856],{},[248,843,844],{},[251,845,846,848,850,852,854],{},[254,847,256],{},[254,849,259],{},[254,851,262],{},[254,853,265],{},[254,855,268],{},[270,857,858,879],{},[251,859,860,865,867,871,876],{},[275,861,862],{},[232,863,864],{},"ADMIN_BOOTSTRAP_EMAIL",[275,866,304],{},[275,868,869],{},[232,870,655],{},[275,872,873],{},[232,874,875],{},"admin@example.com",[275,877,878],{},"Seed email used only on fresh installs if no users exist.",[251,880,881,886,888,892,897],{},[275,882,883],{},[232,884,885],{},"ADMIN_BOOTSTRAP_PASSWORD",[275,887,304],{},[275,889,890],{},[232,891,655],{},[275,893,894],{},[232,895,896],{},"ChangeMe123!",[275,898,899],{},"Seed password used only on fresh installs if no users exist.",{"title":901,"searchDepth":902,"depth":902,"links":903},"",2,[904,905,906,907,908,909,910],{"id":242,"depth":902,"text":243},{"id":372,"depth":902,"text":373},{"id":419,"depth":902,"text":420},{"id":491,"depth":902,"text":492},{"id":599,"depth":902,"text":600},{"id":688,"depth":902,"text":689},{"id":838,"depth":902,"text":839},"Complete reference table for all GO Shortener environment variables.","md",null,{},{"icon":207},{"title":917,"description":918},"Configuration Reference - GO Shortener","Comprehensive catalog of environment variables, defaults, and usage notes for GO Shortener.","qdWP5kr14MOKYuxFRq8jLo1l-RfeEOizFpsAJnNI0oY",[921,923],{"title":194,"path":195,"stem":196,"description":922,"icon":197,"children":-1},"Multi-architecture cross-compilation and automated GitHub Actions release pipelines.",{"title":209,"path":210,"stem":211,"description":924,"icon":212,"children":-1},"Complete REST API specification for public, authentication, user, and admin endpoints.",1788462425362]