[{"data":1,"prerenderedAt":1407},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":204,"-getting-started-installation-surround":1402},[4,40,69,82,91,116,129,146,167],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30,35],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-rocket",{"title":26,"path":27,"stem":28,"icon":29},"Project Structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure","i-lucide-folder-tree",{"title":31,"path":32,"stem":33,"icon":34},"First Deployment","\u002Fgetting-started\u002Ffirst-deployment","1.getting-started\u002F5.first-deployment","i-lucide-upload-cloud",{"title":36,"path":37,"stem":38,"icon":39},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F6.troubleshooting","i-lucide-wrench",{"title":41,"children":42,"path":67,"stem":68,"page":6},"Platform",[43,47,51,55,59,63],{"title":44,"path":45,"stem":46},"Dashboard","\u002Fplatform\u002Fdashboard","2.platform\u002F1.dashboard",{"title":48,"path":49,"stem":50},"Marketplace","\u002Fplatform\u002Fmarketplace","2.platform\u002F2.marketplace",{"title":52,"path":53,"stem":54},"Monitoring & Metrics","\u002Fplatform\u002Fmonitoring","2.platform\u002F3.monitoring",{"title":56,"path":57,"stem":58},"Projects","\u002Fplatform\u002Fprojects","2.platform\u002F4.projects",{"title":60,"path":61,"stem":62},"Services","\u002Fplatform\u002Fservices","2.platform\u002F5.services",{"title":64,"path":65,"stem":66},"Logs","\u002Fplatform\u002Flogs","2.platform\u002F6.logs","\u002Fplatform","2.platform",{"title":70,"children":71,"path":80,"stem":81,"page":6},"CLI",[72,76],{"title":73,"path":74,"stem":75},"CLI Installation","\u002Fcli\u002Finstallation","3.cli\u002F1.installation",{"title":77,"path":78,"stem":79},"Commands Reference","\u002Fcli\u002Fcommands","3.cli\u002F2.commands","\u002Fcli","3.cli",{"title":83,"children":84,"path":89,"stem":90,"page":6},"TUI",[85],{"title":86,"path":87,"stem":88},"TUI Overview","\u002Ftui\u002Foverview","4.tui\u002F1.overview","\u002Ftui","4.tui",{"title":92,"children":93,"path":114,"stem":115,"page":6},"Docker",[94,98,102,106,110],{"title":95,"path":96,"stem":97},"Docker Containers","\u002Fdocker\u002Fcontainers","5.docker\u002F1.containers",{"title":99,"path":100,"stem":101},"Docker Images","\u002Fdocker\u002Fimages","5.docker\u002F2.images",{"title":103,"path":104,"stem":105},"Docker Compose","\u002Fdocker\u002Fcompose","5.docker\u002F3.compose",{"title":107,"path":108,"stem":109},"Docker Volumes","\u002Fdocker\u002Fvolumes","5.docker\u002F4.volumes",{"title":111,"path":112,"stem":113},"Docker Networks","\u002Fdocker\u002Fnetworks","5.docker\u002F5.networks","\u002Fdocker","5.docker",{"title":117,"children":118,"path":127,"stem":128,"page":6},"PM2",[119,123],{"title":120,"path":121,"stem":122},"Process Management","\u002Fpm2\u002Fprocess-management","6.pm2\u002F1.process-management",{"title":124,"path":125,"stem":126},"Zero-Downtime Deployments","\u002Fpm2\u002Fzero-downtime","6.pm2\u002F2.zero-downtime","\u002Fpm2","6.pm2",{"title":130,"children":131,"path":144,"stem":145,"page":6},"VPS",[132,136,140],{"title":133,"path":134,"stem":135},"VPS Management","\u002Fvps\u002Fssh-management","7.vps\u002F1.ssh-management",{"title":137,"path":138,"stem":139},"SSH Access","\u002Fvps\u002Fssh","7.vps\u002F2.ssh",{"title":141,"path":142,"stem":143},"Firewall","\u002Fvps\u002Ffirewall","7.vps\u002F3.firewall","\u002Fvps","7.vps",{"title":147,"children":148,"path":165,"stem":166,"page":6},"Deployment",[149,153,157,161],{"title":150,"path":151,"stem":152},"Production Setup","\u002Fdeployment\u002Fproduction-setup","8.deployment\u002F1.production-setup",{"title":154,"path":155,"stem":156},"Scaling","\u002Fdeployment\u002Fscaling","8.deployment\u002F2.scaling",{"title":158,"path":159,"stem":160},"GitHub Actions CI\u002FCD","\u002Fdeployment\u002Fgithub-actions","8.deployment\u002F3.github-actions",{"title":162,"path":163,"stem":164},"Security","\u002Fdeployment\u002Fsecurity","8.deployment\u002F4.security","\u002Fdeployment","8.deployment",{"title":168,"children":169,"path":202,"stem":203,"page":6},"Reference",[170,174,178,182,186,190,194,198],{"title":171,"path":172,"stem":173},"Architecture","\u002Freference\u002Farchitecture","9.reference\u002F1.architecture",{"title":175,"path":176,"stem":177},"CLI Reference","\u002Freference\u002Fcli-reference","9.reference\u002F2.cli-reference",{"title":179,"path":180,"stem":181},"Environment Variables","\u002Freference\u002Fenvironment-variables","9.reference\u002F3.environment-variables",{"title":183,"path":184,"stem":185},"API Reference","\u002Freference\u002Fapi-reference","9.reference\u002F4.api-reference",{"title":187,"path":188,"stem":189},"Webhooks","\u002Freference\u002Fwebhooks","9.reference\u002F5.webhooks",{"title":191,"path":192,"stem":193},"Authentication","\u002Freference\u002Fauthentication","9.reference\u002F6.authentication",{"title":195,"path":196,"stem":197},"Configuration","\u002Freference\u002Fconfiguration","9.reference\u002F7.configuration",{"title":199,"path":200,"stem":201},"API Overview","\u002Freference\u002Fapi","9.reference\u002F8.api","\u002Freference","9.reference",{"id":205,"title":16,"body":206,"description":1395,"extension":1396,"links":1397,"meta":1398,"navigation":1399,"path":17,"seo":1400,"stem":18,"__hash__":1401},"docs\u002F1.getting-started\u002F2.installation.md",{"type":207,"value":208,"toc":1366},"minimark",[209,213,218,223,226,360,364,367,420,424,427,570,574,577,622,626,641,645,648,761,765,790,793,797,869,873,880,1030,1033,1049,1053,1057,1060,1109,1113,1141,1145,1148,1163,1166,1177,1184,1188,1192,1195,1260,1264,1267,1290,1294,1297,1349,1352,1362],[210,211,212],"p",{},"SkyPort is available for all major platforms. Choose the installation method that works best for your setup.",[214,215,217],"h2",{"id":216},"linux","Linux",[219,220,222],"h3",{"id":221},"from-release-binary","From Release Binary",[210,224,225],{},"The fastest way to get started on Linux:",[227,228,229,309],"code-group",{},[230,231,237],"pre",{"className":232,"code":233,"filename":234,"language":235,"meta":236,"style":236},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Download the latest release\nwget https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-linux-amd64\nchmod +x skyport-linux-amd64\nsudo mv skyport-linux-amd64 \u002Fusr\u002Flocal\u002Fbin\u002Fskyport\n\n# Verify installation\nskyport --version\n","x86_64","bash","",[238,239,240,249,260,272,287,294,300],"code",{"__ignoreMap":236},[241,242,245],"span",{"class":243,"line":244},"line",1,[241,246,248],{"class":247},"sHwdD","# Download the latest release\n",[241,250,252,256],{"class":243,"line":251},2,[241,253,255],{"class":254},"sBMFI","wget",[241,257,259],{"class":258},"sfazB"," https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-linux-amd64\n",[241,261,263,266,269],{"class":243,"line":262},3,[241,264,265],{"class":254},"chmod",[241,267,268],{"class":258}," +x",[241,270,271],{"class":258}," skyport-linux-amd64\n",[241,273,275,278,281,284],{"class":243,"line":274},4,[241,276,277],{"class":254},"sudo",[241,279,280],{"class":258}," mv",[241,282,283],{"class":258}," skyport-linux-amd64",[241,285,286],{"class":258}," \u002Fusr\u002Flocal\u002Fbin\u002Fskyport\n",[241,288,290],{"class":243,"line":289},5,[241,291,293],{"emptyLinePlaceholder":292},true,"\n",[241,295,297],{"class":243,"line":296},6,[241,298,299],{"class":247},"# Verify installation\n",[241,301,303,306],{"class":243,"line":302},7,[241,304,305],{"class":254},"skyport",[241,307,308],{"class":258}," --version\n",[230,310,313],{"className":232,"code":311,"filename":312,"language":235,"meta":236,"style":236},"# Download the latest release\nwget https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-linux-arm64\nchmod +x skyport-linux-arm64\nsudo mv skyport-linux-arm64 \u002Fusr\u002Flocal\u002Fbin\u002Fskyport\n\n# Verify installation\nskyport --version\n","ARM64",[238,314,315,319,326,335,346,350,354],{"__ignoreMap":236},[241,316,317],{"class":243,"line":244},[241,318,248],{"class":247},[241,320,321,323],{"class":243,"line":251},[241,322,255],{"class":254},[241,324,325],{"class":258}," https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-linux-arm64\n",[241,327,328,330,332],{"class":243,"line":262},[241,329,265],{"class":254},[241,331,268],{"class":258},[241,333,334],{"class":258}," skyport-linux-arm64\n",[241,336,337,339,341,344],{"class":243,"line":274},[241,338,277],{"class":254},[241,340,280],{"class":258},[241,342,343],{"class":258}," skyport-linux-arm64",[241,345,286],{"class":258},[241,347,348],{"class":243,"line":289},[241,349,293],{"emptyLinePlaceholder":292},[241,351,352],{"class":243,"line":296},[241,353,299],{"class":247},[241,355,356,358],{"class":243,"line":302},[241,357,305],{"class":254},[241,359,308],{"class":258},[219,361,363],{"id":362},"from-source","From Source",[210,365,366],{},"Build SkyPort from source:",[230,368,370],{"className":232,"code":369,"language":235,"meta":236,"style":236},"git clone https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort.git\ncd SkyPort\u002Fcli\ngo build -o skyport .\u002Fcmd\u002Fmain.go\nsudo mv skyport \u002Fusr\u002Flocal\u002Fbin\u002F\n",[238,371,372,383,392,409],{"__ignoreMap":236},[241,373,374,377,380],{"class":243,"line":244},[241,375,376],{"class":254},"git",[241,378,379],{"class":258}," clone",[241,381,382],{"class":258}," https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort.git\n",[241,384,385,389],{"class":243,"line":251},[241,386,388],{"class":387},"s2Zo4","cd",[241,390,391],{"class":258}," SkyPort\u002Fcli\n",[241,393,394,397,400,403,406],{"class":243,"line":262},[241,395,396],{"class":254},"go",[241,398,399],{"class":258}," build",[241,401,402],{"class":258}," -o",[241,404,405],{"class":258}," skyport",[241,407,408],{"class":258}," .\u002Fcmd\u002Fmain.go\n",[241,410,411,413,415,417],{"class":243,"line":274},[241,412,277],{"class":254},[241,414,280],{"class":258},[241,416,405],{"class":258},[241,418,419],{"class":258}," \u002Fusr\u002Flocal\u002Fbin\u002F\n",[214,421,423],{"id":422},"windows","Windows",[219,425,222],{"id":426},"from-release-binary-1",[227,428,429,499],{},[230,430,435],{"className":431,"code":432,"filename":433,"language":434,"meta":236,"style":236},"language-powershell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Download the latest release\n$url = \"https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-windows-amd64.exe\"\n$output = \"C:\\Users\\$env:USERNAME\\Downloads\\skyport.exe\"\nInvoke-WebRequest -Uri $url -OutFile $output\n\n# Move to Program Files\nNew-Item -ItemType Directory -Path \"C:\\Program Files\\SkyPort\" -Force\nMove-Item -Path $output -Destination \"C:\\Program Files\\SkyPort\\skyport.exe\" -Force\n\n# Add to PATH (run as Administrator)\n$env:Path += \";C:\\Program Files\\SkyPort\"\n[Environment]::SetEnvironmentVariable(\"Path\", $env:Path, \"Machine\")\n","PowerShell","powershell",[238,436,437,441,446,451,456,460,465,470,476,481,487,493],{"__ignoreMap":236},[241,438,439],{"class":243,"line":244},[241,440,248],{},[241,442,443],{"class":243,"line":251},[241,444,445],{},"$url = \"https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-windows-amd64.exe\"\n",[241,447,448],{"class":243,"line":262},[241,449,450],{},"$output = \"C:\\Users\\$env:USERNAME\\Downloads\\skyport.exe\"\n",[241,452,453],{"class":243,"line":274},[241,454,455],{},"Invoke-WebRequest -Uri $url -OutFile $output\n",[241,457,458],{"class":243,"line":289},[241,459,293],{"emptyLinePlaceholder":292},[241,461,462],{"class":243,"line":296},[241,463,464],{},"# Move to Program Files\n",[241,466,467],{"class":243,"line":302},[241,468,469],{},"New-Item -ItemType Directory -Path \"C:\\Program Files\\SkyPort\" -Force\n",[241,471,473],{"class":243,"line":472},8,[241,474,475],{},"Move-Item -Path $output -Destination \"C:\\Program Files\\SkyPort\\skyport.exe\" -Force\n",[241,477,479],{"class":243,"line":478},9,[241,480,293],{"emptyLinePlaceholder":292},[241,482,484],{"class":243,"line":483},10,[241,485,486],{},"# Add to PATH (run as Administrator)\n",[241,488,490],{"class":243,"line":489},11,[241,491,492],{},"$env:Path += \";C:\\Program Files\\SkyPort\"\n",[241,494,496],{"class":243,"line":495},12,[241,497,498],{},"[Environment]::SetEnvironmentVariable(\"Path\", $env:Path, \"Machine\")\n",[230,500,503],{"className":232,"code":501,"filename":502,"language":235,"meta":236,"style":236},"cd ~\ncurl -L -o skyport.exe https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-windows-amd64.exe\nmkdir -p ~\u002Fbin\nmv skyport.exe ~\u002Fbin\u002F\necho 'export PATH=$PATH:~\u002Fbin' >> ~\u002F.bashrc\n","Git Bash",[238,504,505,512,528,539,549],{"__ignoreMap":236},[241,506,507,509],{"class":243,"line":244},[241,508,388],{"class":387},[241,510,511],{"class":258}," ~\n",[241,513,514,517,520,522,525],{"class":243,"line":251},[241,515,516],{"class":254},"curl",[241,518,519],{"class":258}," -L",[241,521,402],{"class":258},[241,523,524],{"class":258}," skyport.exe",[241,526,527],{"class":258}," https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-windows-amd64.exe\n",[241,529,530,533,536],{"class":243,"line":262},[241,531,532],{"class":254},"mkdir",[241,534,535],{"class":258}," -p",[241,537,538],{"class":258}," ~\u002Fbin\n",[241,540,541,544,546],{"class":243,"line":274},[241,542,543],{"class":254},"mv",[241,545,524],{"class":258},[241,547,548],{"class":258}," ~\u002Fbin\u002F\n",[241,550,551,554,558,561,564,567],{"class":243,"line":289},[241,552,553],{"class":387},"echo",[241,555,557],{"class":556},"sMK4o"," '",[241,559,560],{"class":258},"export PATH=$PATH:~\u002Fbin",[241,562,563],{"class":556},"'",[241,565,566],{"class":556}," >>",[241,568,569],{"class":258}," ~\u002F.bashrc\n",[219,571,573],{"id":572},"add-to-path-manual","Add to PATH (Manual)",[210,575,576],{},"If the automatic PATH update doesn't work:",[578,579,580,588,591,594,597,603,609,619],"ol",{},[581,582,583,584,587],"li",{},"Press ",[238,585,586],{},"Win + X"," and select \"System\"",[581,589,590],{},"Click \"Advanced system settings\"",[581,592,593],{},"Click \"Environment Variables\"",[581,595,596],{},"Under \"System variables\", click \"New\"",[581,598,599,600],{},"Variable name: ",[238,601,602],{},"SKYPORT_HOME",[581,604,605,606],{},"Variable value: ",[238,607,608],{},"C:\\Program Files\\SkyPort",[581,610,611,612,615,616],{},"Edit the ",[238,613,614],{},"Path"," variable and add ",[238,617,618],{},"%SKYPORT_HOME%",[581,620,621],{},"Click OK and restart your terminal",[219,623,625],{"id":624},"verify-installation","Verify Installation",[230,627,629],{"className":431,"code":628,"language":434,"meta":236,"style":236},"skyport --version\nskyport help\n",[238,630,631,636],{"__ignoreMap":236},[241,632,633],{"class":243,"line":244},[241,634,635],{},"skyport --version\n",[241,637,638],{"class":243,"line":251},[241,639,640],{},"skyport help\n",[214,642,644],{"id":643},"macos","macOS",[219,646,222],{"id":647},"from-release-binary-2",[227,649,650,706],{},[230,651,654],{"className":232,"code":652,"filename":653,"language":235,"meta":236,"style":236},"# Download the latest release\ncurl -L -o skyport https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-darwin-amd64\nchmod +x skyport\nsudo mv skyport \u002Fusr\u002Flocal\u002Fbin\u002F\n\n# Verify installation\nskyport --version\n","Intel",[238,655,656,660,673,682,692,696,700],{"__ignoreMap":236},[241,657,658],{"class":243,"line":244},[241,659,248],{"class":247},[241,661,662,664,666,668,670],{"class":243,"line":251},[241,663,516],{"class":254},[241,665,519],{"class":258},[241,667,402],{"class":258},[241,669,405],{"class":258},[241,671,672],{"class":258}," https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-darwin-amd64\n",[241,674,675,677,679],{"class":243,"line":262},[241,676,265],{"class":254},[241,678,268],{"class":258},[241,680,681],{"class":258}," skyport\n",[241,683,684,686,688,690],{"class":243,"line":274},[241,685,277],{"class":254},[241,687,280],{"class":258},[241,689,405],{"class":258},[241,691,419],{"class":258},[241,693,694],{"class":243,"line":289},[241,695,293],{"emptyLinePlaceholder":292},[241,697,698],{"class":243,"line":296},[241,699,299],{"class":247},[241,701,702,704],{"class":243,"line":302},[241,703,305],{"class":254},[241,705,308],{"class":258},[230,707,710],{"className":232,"code":708,"filename":709,"language":235,"meta":236,"style":236},"# Download the latest release\ncurl -L -o skyport https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-darwin-arm64\nchmod +x skyport\nsudo mv skyport \u002Fusr\u002Flocal\u002Fbin\u002F\n\n# Verify installation\nskyport --version\n","Apple Silicon",[238,711,712,716,729,737,747,751,755],{"__ignoreMap":236},[241,713,714],{"class":243,"line":244},[241,715,248],{"class":247},[241,717,718,720,722,724,726],{"class":243,"line":251},[241,719,516],{"class":254},[241,721,519],{"class":258},[241,723,402],{"class":258},[241,725,405],{"class":258},[241,727,728],{"class":258}," https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-darwin-arm64\n",[241,730,731,733,735],{"class":243,"line":262},[241,732,265],{"class":254},[241,734,268],{"class":258},[241,736,681],{"class":258},[241,738,739,741,743,745],{"class":243,"line":274},[241,740,277],{"class":254},[241,742,280],{"class":258},[241,744,405],{"class":258},[241,746,419],{"class":258},[241,748,749],{"class":243,"line":289},[241,750,293],{"emptyLinePlaceholder":292},[241,752,753],{"class":243,"line":296},[241,754,299],{"class":247},[241,756,757,759],{"class":243,"line":302},[241,758,305],{"class":254},[241,760,308],{"class":258},[219,762,764],{"id":763},"using-homebrew","Using Homebrew",[230,766,768],{"className":232,"code":767,"language":235,"meta":236,"style":236},"brew tap Nil369\u002Fskyport\nbrew install skyport\n",[238,769,770,781],{"__ignoreMap":236},[241,771,772,775,778],{"class":243,"line":244},[241,773,774],{"class":254},"brew",[241,776,777],{"class":258}," tap",[241,779,780],{"class":258}," Nil369\u002Fskyport\n",[241,782,783,785,788],{"class":243,"line":251},[241,784,774],{"class":254},[241,786,787],{"class":258}," install",[241,789,681],{"class":258},[214,791,92],{"id":792},"docker",[219,794,796],{"id":795},"run-skyport-in-docker","Run SkyPort in Docker",[230,798,800],{"className":232,"code":799,"language":235,"meta":236,"style":236},"docker run -d \\\n  --name skyport \\\n  --restart unless-stopped \\\n  -p 8080:8080 \\\n  -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock \\\n  -v skyport-data:\u002Froot\u002F.skyport \\\n  nil369\u002Fskyport:latest\n",[238,801,802,816,825,835,845,855,864],{"__ignoreMap":236},[241,803,804,806,809,812],{"class":243,"line":244},[241,805,792],{"class":254},[241,807,808],{"class":258}," run",[241,810,811],{"class":258}," -d",[241,813,815],{"class":814},"sTEyZ"," \\\n",[241,817,818,821,823],{"class":243,"line":251},[241,819,820],{"class":258},"  --name",[241,822,405],{"class":258},[241,824,815],{"class":814},[241,826,827,830,833],{"class":243,"line":262},[241,828,829],{"class":258},"  --restart",[241,831,832],{"class":258}," unless-stopped",[241,834,815],{"class":814},[241,836,837,840,843],{"class":243,"line":274},[241,838,839],{"class":258},"  -p",[241,841,842],{"class":258}," 8080:8080",[241,844,815],{"class":814},[241,846,847,850,853],{"class":243,"line":289},[241,848,849],{"class":258},"  -v",[241,851,852],{"class":258}," \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock",[241,854,815],{"class":814},[241,856,857,859,862],{"class":243,"line":296},[241,858,849],{"class":258},[241,860,861],{"class":258}," skyport-data:\u002Froot\u002F.skyport",[241,863,815],{"class":814},[241,865,866],{"class":243,"line":302},[241,867,868],{"class":258},"  nil369\u002Fskyport:latest\n",[219,870,872],{"id":871},"using-docker-compose","Using Docker Compose",[210,874,875,876,879],{},"Create a ",[238,877,878],{},"docker-compose.yml",":",[230,881,885],{"className":882,"code":883,"language":884,"meta":236,"style":236},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","version: '3.8'\n\nservices:\n  skyport:\n    image: nil369\u002Fskyport:latest\n    container_name: skyport\n    restart: unless-stopped\n    ports:\n      - \"8080:8080\"\n    volumes:\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n      - skyport-data:\u002Froot\u002F.skyport\n    environment:\n      - SKYPORT_PORT=8080\n\nvolumes:\n  skyport-data:\n","yaml",[238,886,887,903,907,915,922,932,941,951,958,972,979,986,993,1001,1009,1014,1022],{"__ignoreMap":236},[241,888,889,893,895,897,900],{"class":243,"line":244},[241,890,892],{"class":891},"swJcz","version",[241,894,879],{"class":556},[241,896,557],{"class":556},[241,898,899],{"class":258},"3.8",[241,901,902],{"class":556},"'\n",[241,904,905],{"class":243,"line":251},[241,906,293],{"emptyLinePlaceholder":292},[241,908,909,912],{"class":243,"line":262},[241,910,911],{"class":891},"services",[241,913,914],{"class":556},":\n",[241,916,917,920],{"class":243,"line":274},[241,918,919],{"class":891},"  skyport",[241,921,914],{"class":556},[241,923,924,927,929],{"class":243,"line":289},[241,925,926],{"class":891},"    image",[241,928,879],{"class":556},[241,930,931],{"class":258}," nil369\u002Fskyport:latest\n",[241,933,934,937,939],{"class":243,"line":296},[241,935,936],{"class":891},"    container_name",[241,938,879],{"class":556},[241,940,681],{"class":258},[241,942,943,946,948],{"class":243,"line":302},[241,944,945],{"class":891},"    restart",[241,947,879],{"class":556},[241,949,950],{"class":258}," unless-stopped\n",[241,952,953,956],{"class":243,"line":472},[241,954,955],{"class":891},"    ports",[241,957,914],{"class":556},[241,959,960,963,966,969],{"class":243,"line":478},[241,961,962],{"class":556},"      -",[241,964,965],{"class":556}," \"",[241,967,968],{"class":258},"8080:8080",[241,970,971],{"class":556},"\"\n",[241,973,974,977],{"class":243,"line":483},[241,975,976],{"class":891},"    volumes",[241,978,914],{"class":556},[241,980,981,983],{"class":243,"line":489},[241,982,962],{"class":556},[241,984,985],{"class":258}," \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n",[241,987,988,990],{"class":243,"line":495},[241,989,962],{"class":556},[241,991,992],{"class":258}," skyport-data:\u002Froot\u002F.skyport\n",[241,994,996,999],{"class":243,"line":995},13,[241,997,998],{"class":891},"    environment",[241,1000,914],{"class":556},[241,1002,1004,1006],{"class":243,"line":1003},14,[241,1005,962],{"class":556},[241,1007,1008],{"class":258}," SKYPORT_PORT=8080\n",[241,1010,1012],{"class":243,"line":1011},15,[241,1013,293],{"emptyLinePlaceholder":292},[241,1015,1017,1020],{"class":243,"line":1016},16,[241,1018,1019],{"class":891},"volumes",[241,1021,914],{"class":556},[241,1023,1025,1028],{"class":243,"line":1024},17,[241,1026,1027],{"class":891},"  skyport-data",[241,1029,914],{"class":556},[210,1031,1032],{},"Then run:",[230,1034,1036],{"className":232,"code":1035,"language":235,"meta":236,"style":236},"docker-compose up -d\n",[238,1037,1038],{"__ignoreMap":236},[241,1039,1040,1043,1046],{"class":243,"line":244},[241,1041,1042],{"class":254},"docker-compose",[241,1044,1045],{"class":258}," up",[241,1047,1048],{"class":258}," -d\n",[214,1050,1052],{"id":1051},"windows-subsystem-for-linux-wsl","Windows Subsystem for Linux (WSL)",[219,1054,1056],{"id":1055},"install-on-wsl2","Install on WSL2",[210,1058,1059],{},"If you're using Windows Subsystem for Linux 2, follow the Linux installation instructions:",[230,1061,1063],{"className":232,"code":1062,"language":235,"meta":236,"style":236},"# Inside WSL2 terminal\nwget https:\u002F\u002Fgithub.com\u002FNil369\u002FSkyPort\u002Freleases\u002Flatest\u002Fdownload\u002Fskyport-linux-amd64\nchmod +x skyport-linux-amd64\nsudo mv skyport-linux-amd64 \u002Fusr\u002Flocal\u002Fbin\u002Fskyport\n\n# Verify\nskyport --version\n",[238,1064,1065,1070,1076,1084,1094,1098,1103],{"__ignoreMap":236},[241,1066,1067],{"class":243,"line":244},[241,1068,1069],{"class":247},"# Inside WSL2 terminal\n",[241,1071,1072,1074],{"class":243,"line":251},[241,1073,255],{"class":254},[241,1075,259],{"class":258},[241,1077,1078,1080,1082],{"class":243,"line":262},[241,1079,265],{"class":254},[241,1081,268],{"class":258},[241,1083,271],{"class":258},[241,1085,1086,1088,1090,1092],{"class":243,"line":274},[241,1087,277],{"class":254},[241,1089,280],{"class":258},[241,1091,283],{"class":258},[241,1093,286],{"class":258},[241,1095,1096],{"class":243,"line":289},[241,1097,293],{"emptyLinePlaceholder":292},[241,1099,1100],{"class":243,"line":296},[241,1101,1102],{"class":247},"# Verify\n",[241,1104,1105,1107],{"class":243,"line":302},[241,1106,305],{"class":254},[241,1108,308],{"class":258},[214,1110,1112],{"id":1111},"system-requirements","System Requirements",[1114,1115,1116,1123,1129,1135],"ul",{},[581,1117,1118,1122],{},[1119,1120,1121],"strong",{},"CPU",": 1 core minimum (2+ recommended)",[581,1124,1125,1128],{},[1119,1126,1127],{},"RAM",": 512MB minimum (2GB+ recommended)",[581,1130,1131,1134],{},[1119,1132,1133],{},"Storage",": 1GB minimum",[581,1136,1137,1140],{},[1119,1138,1139],{},"Network",": Internet access for marketplace and updates",[214,1142,1144],{"id":1143},"first-run","First Run",[210,1146,1147],{},"After installation, start the SkyPort server:",[230,1149,1151],{"className":232,"code":1150,"language":235,"meta":236,"style":236},"skyport start webui\n",[238,1152,1153],{"__ignoreMap":236},[241,1154,1155,1157,1160],{"class":243,"line":244},[241,1156,305],{"class":254},[241,1158,1159],{"class":258}," start",[241,1161,1162],{"class":258}," webui\n",[210,1164,1165],{},"This will:",[1114,1167,1168,1171,1174],{},[581,1169,1170],{},"Start the API server (default port 8080)",[581,1172,1173],{},"Launch the web dashboard",[581,1175,1176],{},"Initialize the configuration directory",[210,1178,1179,1180,1183],{},"Visit ",[238,1181,1182],{},"http:\u002F\u002Flocalhost:8080"," in your browser.",[214,1185,1187],{"id":1186},"troubleshooting-installation","Troubleshooting Installation",[219,1189,1191],{"id":1190},"command-not-found","Command not found",[210,1193,1194],{},"Make sure the installation directory is in your PATH:",[230,1196,1198],{"className":232,"code":1197,"language":235,"meta":236,"style":236},"# Check PATH\necho $PATH\n\n# Verify SkyPort is installed\nwhich skyport\n\n# If not found, add to PATH\nexport PATH=\"\u002Fusr\u002Flocal\u002Fbin:$PATH\"\n",[238,1199,1200,1205,1212,1216,1221,1228,1232,1237],{"__ignoreMap":236},[241,1201,1202],{"class":243,"line":244},[241,1203,1204],{"class":247},"# Check PATH\n",[241,1206,1207,1209],{"class":243,"line":251},[241,1208,553],{"class":387},[241,1210,1211],{"class":814}," $PATH\n",[241,1213,1214],{"class":243,"line":262},[241,1215,293],{"emptyLinePlaceholder":292},[241,1217,1218],{"class":243,"line":274},[241,1219,1220],{"class":247},"# Verify SkyPort is installed\n",[241,1222,1223,1226],{"class":243,"line":289},[241,1224,1225],{"class":387},"which",[241,1227,681],{"class":258},[241,1229,1230],{"class":243,"line":296},[241,1231,293],{"emptyLinePlaceholder":292},[241,1233,1234],{"class":243,"line":302},[241,1235,1236],{"class":247},"# If not found, add to PATH\n",[241,1238,1239,1243,1246,1249,1252,1255,1258],{"class":243,"line":472},[241,1240,1242],{"class":1241},"spNyl","export",[241,1244,1245],{"class":814}," PATH",[241,1247,1248],{"class":556},"=",[241,1250,1251],{"class":556},"\"",[241,1253,1254],{"class":258},"\u002Fusr\u002Flocal\u002Fbin:",[241,1256,1257],{"class":814},"$PATH",[241,1259,971],{"class":556},[219,1261,1263],{"id":1262},"permission-denied","Permission Denied",[210,1265,1266],{},"Make sure the binary has execute permissions:",[230,1268,1270],{"className":232,"code":1269,"language":235,"meta":236,"style":236},"chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fskyport\nls -la \u002Fusr\u002Flocal\u002Fbin\u002Fskyport\n",[238,1271,1272,1280],{"__ignoreMap":236},[241,1273,1274,1276,1278],{"class":243,"line":244},[241,1275,265],{"class":254},[241,1277,268],{"class":258},[241,1279,286],{"class":258},[241,1281,1282,1285,1288],{"class":243,"line":251},[241,1283,1284],{"class":254},"ls",[241,1286,1287],{"class":258}," -la",[241,1289,286],{"class":258},[219,1291,1293],{"id":1292},"docker-socket-access","Docker Socket Access",[210,1295,1296],{},"If running in Docker and can't access the Docker socket:",[230,1298,1300],{"className":232,"code":1299,"language":235,"meta":236,"style":236},"# Check socket permissions\nls -la \u002Fvar\u002Frun\u002Fdocker.sock\n\n# Add user to docker group (Linux)\nsudo usermod -aG docker $USER\nnewgrp docker\n",[238,1301,1302,1307,1316,1320,1325,1341],{"__ignoreMap":236},[241,1303,1304],{"class":243,"line":244},[241,1305,1306],{"class":247},"# Check socket permissions\n",[241,1308,1309,1311,1313],{"class":243,"line":251},[241,1310,1284],{"class":254},[241,1312,1287],{"class":258},[241,1314,1315],{"class":258}," \u002Fvar\u002Frun\u002Fdocker.sock\n",[241,1317,1318],{"class":243,"line":262},[241,1319,293],{"emptyLinePlaceholder":292},[241,1321,1322],{"class":243,"line":274},[241,1323,1324],{"class":247},"# Add user to docker group (Linux)\n",[241,1326,1327,1329,1332,1335,1338],{"class":243,"line":289},[241,1328,277],{"class":254},[241,1330,1331],{"class":258}," usermod",[241,1333,1334],{"class":258}," -aG",[241,1336,1337],{"class":258}," docker",[241,1339,1340],{"class":814}," $USER\n",[241,1342,1343,1346],{"class":243,"line":296},[241,1344,1345],{"class":254},"newgrp",[241,1347,1348],{"class":258}," docker\n",[1350,1351],"hr",{},[210,1353,1354,1357,1358],{},[1119,1355,1356],{},"Next",": ",[1359,1360,1361],"a",{"href":22},"Quick Start Guide",[1363,1364,1365],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":236,"searchDepth":251,"depth":251,"links":1367},[1368,1372,1377,1381,1385,1388,1389,1390],{"id":216,"depth":251,"text":217,"children":1369},[1370,1371],{"id":221,"depth":262,"text":222},{"id":362,"depth":262,"text":363},{"id":422,"depth":251,"text":423,"children":1373},[1374,1375,1376],{"id":426,"depth":262,"text":222},{"id":572,"depth":262,"text":573},{"id":624,"depth":262,"text":625},{"id":643,"depth":251,"text":644,"children":1378},[1379,1380],{"id":647,"depth":262,"text":222},{"id":763,"depth":262,"text":764},{"id":792,"depth":251,"text":92,"children":1382},[1383,1384],{"id":795,"depth":262,"text":796},{"id":871,"depth":262,"text":872},{"id":1051,"depth":251,"text":1052,"children":1386},[1387],{"id":1055,"depth":262,"text":1056},{"id":1111,"depth":251,"text":1112},{"id":1143,"depth":251,"text":1144},{"id":1186,"depth":251,"text":1187,"children":1391},[1392,1393,1394],{"id":1190,"depth":262,"text":1191},{"id":1262,"depth":262,"text":1263},{"id":1292,"depth":262,"text":1293},"Install SkyPort on your platform - Linux, Windows, macOS, Docker, or WSL","md",null,{},{"icon":19},{"title":16,"description":1395},"x9WdnCBSQG3Vf53_mmKxdlbU-vh6v4Qzz0JaIk0EXBQ",[1403,1405],{"title":11,"path":12,"stem":13,"description":1404,"icon":14,"children":-1},"Learn what SkyPort is and why it's the perfect self-hosted infrastructure platform",{"title":21,"path":22,"stem":23,"description":1406,"icon":24,"children":-1},"Get SkyPort running in 5 minutes",1778858459265]