Install and maintain the protected Sngine Live Pro server without editing Docker files by hand.

Sngine Live Pro runs a self-hosted live streaming server with Laravel, Docker, Nginx, Redis, MariaDB, Socket.IO, and OvenMediaEngine. The protected installer verifies the live server license, downloads the latest release, prepares the environment, and prints the admin login details.

Protected installer One-click dashboard updates cPanel safe mode RTMP + WebRTC + HLS Sngine addon ready

Requirements

Server Access Root SSH access is required. The installer creates files under `/opt` by default.
Domain Use a subdomain such as `live.example.com` and point its DNS A record to the live server IP.
Docker Docker Engine and the Docker Compose plugin must be installed before automatic setup can run.

Common Docker install command for AlmaLinux, Rocky, RHEL, and many cPanel servers

dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker
docker --version
docker compose version
Hosting panel note: if the customer uses cPanel, aaPanel, Plesk, CyberPanel, or another control panel, keep the panel in control of Apache/Nginx and SSL. The installer detects panels and does not edit panel web-server files automatically.

One-command Live Server Install

Use the live server purchase code from the store. Do not use the Sngine addon purchase code for the server install.

Open the customer server as root. The examples below install the server into `/opt/sngine-live-pro-advanced-live-streaming-system`.
Download the protected installer.
cd /root
curl -fsSL -o /root/live-server-installer.php \
https://sngine-live.fluttercrafters.com/installer/live-server-installer.php.txt
Run the install command.
php /root/live-server-installer.php \
  --purchase-code=YOUR-LIVE-SERVER-PURCHASE-CODE \
  --domain=live.example.com \
  --target=/opt

The installer will verify the license, download the latest server release, generate secure secrets, create the license file, run Docker setup, run Laravel migrations, and print the admin URL and password.

Saved summary: after installation, the same important details are saved in /opt/sngine-live-pro-advanced-live-streaming-system/INSTALLATION-SUMMARY.txt.

cPanel Setup

On cPanel servers, the live server Docker stack listens on the local proxy target http://127.0.0.1:8080. cPanel should proxy the live domain to that target and manage SSL.

Find the cPanel account owner

/scripts/whoowns example.com

Apply the cPanel proxy helper

curl -fsSL -o /root/fix-sngine-live-cpanel.sh \
https://sngine-live.fluttercrafters.com/installer/fix-sngine-live-cpanel.sh

bash /root/fix-sngine-live-cpanel.sh \
  CPANEL_USER \
  live.example.com \
  /opt/sngine-live-pro-advanced-live-streaming-system

Run AutoSSL if the certificate is self-signed or defective

/usr/local/cpanel/bin/autossl_check --user=CPANEL_USER
Expected result: curl -Ik https://live.example.com/admin/login should return HTTP/1.1 200 OK after the proxy and SSL are correct.

After Install

Admin URL Open `https://live.example.com/admin/login` and sign in with the username and password printed by the installer.
RTMP URL Use `rtmp://live.example.com:1935/live` for OBS and RTMP publishing workflows.
Proxy Target For hosting panels, proxy the domain to `http://127.0.0.1:8080`.
Sngine Addon Install the addon separately inside the Sngine website, then point it to the live server URLs.

Quick health checks

cd /opt/sngine-live-pro-advanced-live-streaming-system
docker compose ps
curl -Ik https://live.example.com/admin/login
docker compose exec -T laravel-app php artisan live:license:check --refresh

Future Updates From the Dashboard

The admin dashboard includes a protected update panel. It checks the store for the latest server release, validates the runtime license, and runs the update agent. Customers do not need to upload server files manually.

Open the live server admin. Go to `https://live.example.com/admin/login` and sign in.
Find Live Server Update. The dashboard shows the current version, latest version, update agent state, and whether an update is available.
Click Refresh Status. Use this when the page was already open before a new release was published.
Click Update Now. The update runs through the protected update agent and shows progress while it works.
License protection: updates are allowed only when the live server license is valid and bound to the current installation.

Manual Update Command

Use this when the dashboard cannot be opened, or when support asks the customer to update from SSH.

cd /opt/sngine-live-pro-advanced-live-streaming-system
php scripts/self-update.php
docker compose exec -T laravel-app php artisan optimize:clear
docker compose restart nginx

Safer repair update for old installations

Use this helper when an old version returns `500` on `/admin`, or when the old self-update runner fails.

cd /root
rm -f /root/fix-live-admin-500.sh

curl -fsSL -o /root/fix-live-admin-500.sh \
https://sngine-live.fluttercrafters.com/installer/fix-live-admin-500.sh

bash /root/fix-live-admin-500.sh \
  /opt/sngine-live-pro-advanced-live-streaming-system \
  live.example.com

Successful output should include `Dashboard status: 200`.

Repair Commands

Problem Command When to use
cPanel proxy, SSL, storage, APP_KEY, or license file permissions fix-sngine-live-cpanel.sh Use after installing on cPanel or when the site returns 502/500 from a cPanel domain.
Admin page returns 500 after login fix-live-admin-500.sh Use when `/admin/login` works but `/admin` fails, or when updating an older server build.
Need logs tail storage/logs/laravel*.log Use when a page still returns 500 after repair commands.

Laravel log command

cd /opt/sngine-live-pro-advanced-live-streaming-system
docker compose exec -T laravel-app sh -lc 'tail -n 160 storage/logs/laravel*.log'

Troubleshooting

Symptom Most likely cause Fix
Docker is required before automatic setup can run Docker is not installed or not running. Install Docker, start it, then rerun the installer.
This purchase code is already bound The install was interrupted after license activation, or the customer is moving servers. Retry on the same install path. If the server is being moved, contact support to reset the server installation binding.
Download looks slow Network speed between the customer server and the store is slow. The current package is small. Wait for the progress counter or retry from a better network.
502 Bad Gateway The hosting panel proxy cannot reach Docker Nginx on `127.0.0.1:8080`, or containers are not running. Run `docker compose ps`, then run the cPanel proxy repair helper if using cPanel.
500 Server Error on `/admin/login` Laravel environment, storage, APP_KEY, license file, or dependency setup is incomplete. Run the cPanel repair helper, then check Laravel logs if it continues.
500 Server Error after logging in to `/admin` Old server version or old dashboard settings parser. Run `fix-live-admin-500.sh` to update to the latest server release and clear caches.
SSL says self-signed or defective cPanel has not issued a trusted certificate for the live subdomain yet. Run AutoSSL for the cPanel user after DNS is correct.
vendor/autoload.php missing The update or composer install did not complete. Run the repair update helper or run `docker compose exec -T laravel-app composer install --no-dev --optimize-autoloader` from the project root.

Sngine Addon Setup

The live server and the Sngine addon are separate parts of the product. The live server runs Docker and streaming services. The addon is uploaded inside the customer's Sngine website and connects Sngine to the live server.

Live server domain Example: `https://live.example.com`
Sngine website domain Example: `https://example.com`
Important: install and update the live server from this guide. Install the Sngine addon from the addon guide.