Getting Started
Install the Skyport panel using the automatic installer or a manual setup.
Automatic installation (recommended)
Section titled “Automatic installation (recommended)”The fastest way to install the panel is with the official installer script. It handles all dependencies, configuration, and service setup interactively.
bash <(curl -fsSL https://raw.githubusercontent.com/skyportsh/installer/main/install-panel.sh)The installer will ask you to choose:
- Release channel — stable (latest release) or bleeding edge (main branch)
- Web configuration — domain with Let’s Encrypt SSL, or a plain port
- Database — SQLite (simple, zero setup) or MySQL/MariaDB
- Admin account — name, email, and password for the first admin user
Once complete, the installer sets up three systemd services:
| Service | Purpose |
|---|---|
skyport-panel | Laravel Octane (Swoole) on port 8000 |
skyport-queue | Background job processing |
skyport-ssr | Inertia server-side rendering |
It also configures Nginx as a reverse proxy with optional SSL.
After the installer finishes, your panel is live and you can log in immediately.
Manual installation
Section titled “Manual installation”If you prefer to install everything yourself, follow the steps below.
Requirements
Section titled “Requirements”- Ubuntu 22.04/24.04 or Debian 11/12/13
- PHP 8.4 with extensions: cli, curl, mbstring, xml, zip, bcmath, sqlite3, mysql, swoole, gd, intl
- Composer 2
- Bun 1.3+
- Node.js 22+ (for Inertia SSR)
- Nginx
1. Install system packages
Section titled “1. Install system packages”Ubuntu:
sudo apt updatesudo apt install -y software-properties-common curl git unzip nginxsudo add-apt-repository -y ppa:ondrej/phpsudo apt updatesudo apt install -y php8.4-cli php8.4-common php8.4-curl php8.4-mbstring \ php8.4-xml php8.4-zip php8.4-bcmath php8.4-sqlite3 php8.4-mysql \ php8.4-swoole php8.4-readline php8.4-gd php8.4-intlDebian:
sudo apt updatesudo apt install -y curl git unzip nginx apt-transport-https gnupg2 ca-certificates lsb-releasecurl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sury-php.gpgecho "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.listsudo apt updatesudo apt install -y php8.4-cli php8.4-common php8.4-curl php8.4-mbstring \ php8.4-xml php8.4-zip php8.4-bcmath php8.4-sqlite3 php8.4-mysql \ php8.4-swoole php8.4-readline php8.4-gd php8.4-intl2. Install Composer, Bun, and Node.js
Section titled “2. Install Composer, Bun, and Node.js”# Composercurl -fsSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Buncurl -fsSL https://bun.sh/install | bashsudo ln -sf ~/.bun/bin/bun /usr/local/bin/bun
# Node.js 22curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -sudo apt install -y nodejs3. Download the panel
Section titled “3. Download the panel”sudo mkdir -p /var/www/skyportcd /var/www/skyportsudo git clone --depth 1 https://github.com/skyportsh/panel.git .4. Install dependencies
Section titled “4. Install dependencies”sudo COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloadersudo bun install5. Configure the environment
Section titled “5. Configure the environment”sudo cp .env.example .envsudo php artisan key:generate --no-interactionEdit .env for production:
APP_ENV=productionAPP_DEBUG=falseAPP_URL=https://panel.example.com
DB_CONNECTION=sqlite
OCTANE_SERVER=swooleTRUSTED_PROXIES=*ASSET_URL=https://panel.example.comFor MySQL instead of SQLite, set:
DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=skyportDB_USERNAME=skyportDB_PASSWORD=your-passwordFor SQLite, create the database file:
sudo touch database/database.sqlite6. Run migrations and build assets
Section titled “6. Run migrations and build assets”sudo php artisan migrate --force --no-interactionsudo php artisan wayfinder:generate --with-form --no-interactionsudo bun run build:ssr7. Create an admin user
Section titled “7. Create an admin user”sudo php artisan user:create --name="Admin" --email="admin@example.com" --password="YourPassword" --admin --no-interaction8. Set permissions
Section titled “8. Set permissions”sudo chown -R www-data:www-data /var/www/skyportsudo chmod -R 755 storage bootstrap/cacheFor SQLite, also ensure the database directory is writable:
sudo chown www-data:www-data database database/database.sqlitesudo chmod 775 databasesudo chmod 664 database/database.sqlite9. Next steps
Section titled “9. Next steps”Continue with Webserver Configuration to set up Nginx, then Additional Configuration for systemd services.