Additional Configuration
Set up systemd services, environment tuning, and maintenance commands.
Systemd services
Section titled “Systemd services”The panel needs three long-running processes in production:
Octane (application server)
Section titled “Octane (application server)”Create /etc/systemd/system/skyport-panel.service:
[Unit]Description=Skyport Panel (Octane)After=network.target
[Service]User=www-dataGroup=www-dataWorkingDirectory=/var/www/skyportExecStart=/usr/bin/php artisan octane:start --server=swoole --host=127.0.0.1 --port=8000ExecReload=/usr/bin/php artisan octane:reloadRestart=alwaysRestartSec=5
[Install]WantedBy=multi-user.targetQueue worker
Section titled “Queue worker”Create /etc/systemd/system/skyport-queue.service:
[Unit]Description=Skyport Queue WorkerAfter=network.target skyport-panel.service
[Service]User=www-dataGroup=www-dataWorkingDirectory=/var/www/skyportExecStart=/usr/bin/php artisan queue:work --tries=3 --timeout=60Restart=alwaysRestartSec=5
[Install]WantedBy=multi-user.targetInertia SSR
Section titled “Inertia SSR”Create /etc/systemd/system/skyport-ssr.service:
[Unit]Description=Skyport Inertia SSRAfter=network.target
[Service]User=www-dataGroup=www-dataWorkingDirectory=/var/www/skyportExecStart=/usr/bin/php artisan inertia:start-ssrRestart=alwaysRestartSec=5
[Install]WantedBy=multi-user.targetEnable and start all three
Section titled “Enable and start all three”sudo systemctl daemon-reloadsudo systemctl enable --now skyport-panel skyport-queue skyport-ssrEnvironment reference
Section titled “Environment reference”A complete production .env with all important values:
APP_NAME=SkyportAPP_ENV=productionAPP_DEBUG=falseAPP_URL=https://panel.example.com
DB_CONNECTION=sqlite
SESSION_DRIVER=databaseQUEUE_CONNECTION=databaseCACHE_STORE=database
OCTANE_SERVER=swooleTRUSTED_PROXIES=*ASSET_URL=https://panel.example.com
LOG_CHANNEL=stackLOG_LEVEL=infoUsing MySQL instead of SQLite
Section titled “Using MySQL instead of SQLite”DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=skyportDB_USERNAME=skyportDB_PASSWORD=your-passwordUsing Redis for cache/sessions/queues
Section titled “Using Redis for cache/sessions/queues”If you want better performance on high-traffic panels, install Redis and set:
CACHE_STORE=redisSESSION_DRIVER=redisQUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1REDIS_PORT=6379Artisan commands
Section titled “Artisan commands”Create a user
Section titled “Create a user”php artisan user:create --name="Admin" --email="admin@example.com" --password="Password" --admin --no-interactionWithout --no-interaction, the command will prompt for each field interactively.
Configure the environment
Section titled “Configure the environment”php artisan environment:setup --url="https://panel.example.com" --db-connection=sqlite --no-interactionMaintenance mode
Section titled “Maintenance mode”php artisan down # enable maintenance modephp artisan up # disable maintenance modeClear caches
Section titled “Clear caches”php artisan optimize:clearLogging
Section titled “Logging”Service logs:
journalctl -u skyport-panel -fjournalctl -u skyport-queue -fjournalctl -u skyport-ssr -fApplication log:
tail -f /var/www/skyport/storage/logs/laravel.log