Skip to content

Getting Started

Install the Skyport panel using the automatic installer or a manual setup.

The fastest way to install the panel is with the official installer script. It handles all dependencies, configuration, and service setup interactively.

Terminal window
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:

ServicePurpose
skyport-panelLaravel Octane (Swoole) on port 8000
skyport-queueBackground job processing
skyport-ssrInertia 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.


If you prefer to install everything yourself, follow the steps below.

  • 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

Ubuntu:

Terminal window
sudo apt update
sudo apt install -y software-properties-common curl git unzip nginx
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo 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-intl

Debian:

Terminal window
sudo apt update
sudo apt install -y curl git unzip nginx apt-transport-https gnupg2 ca-certificates lsb-release
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sury-php.gpg
echo "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.list
sudo apt update
sudo 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-intl
Terminal window
# Composer
curl -fsSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Bun
curl -fsSL https://bun.sh/install | bash
sudo ln -sf ~/.bun/bin/bun /usr/local/bin/bun
# Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt install -y nodejs
Terminal window
sudo mkdir -p /var/www/skyport
cd /var/www/skyport
sudo git clone --depth 1 https://github.com/skyportsh/panel.git .
Terminal window
sudo COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
sudo bun install
Terminal window
sudo cp .env.example .env
sudo php artisan key:generate --no-interaction

Edit .env for production:

APP_ENV=production
APP_DEBUG=false
APP_URL=https://panel.example.com
DB_CONNECTION=sqlite
OCTANE_SERVER=swoole
TRUSTED_PROXIES=*
ASSET_URL=https://panel.example.com

For MySQL instead of SQLite, set:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=skyport
DB_USERNAME=skyport
DB_PASSWORD=your-password

For SQLite, create the database file:

Terminal window
sudo touch database/database.sqlite
Terminal window
sudo php artisan migrate --force --no-interaction
sudo php artisan wayfinder:generate --with-form --no-interaction
sudo bun run build:ssr
Terminal window
sudo php artisan user:create --name="Admin" --email="admin@example.com" --password="YourPassword" --admin --no-interaction
Terminal window
sudo chown -R www-data:www-data /var/www/skyport
sudo chmod -R 755 storage bootstrap/cache

For SQLite, also ensure the database directory is writable:

Terminal window
sudo chown www-data:www-data database database/database.sqlite
sudo chmod 775 database
sudo chmod 664 database/database.sqlite

Continue with Webserver Configuration to set up Nginx, then Additional Configuration for systemd services.