xOTTDocumentation
DocumentationVerified against v2.0.1Reviewed 2026-10-20

Install, update and recover

Install on a dedicated Ubuntu server, protect access and update without replacing existing data.

On this page

Current release: v2.0.1 · Release notes

Before you install

  • Use an Ubuntu LTS server with root or sudo access. The distributed Linux binary is x86-64; do not assume an ARM server is supported.
  • Prefer a clean, currently supported Ubuntu LTS installation. Existing packages, third-party repositories and Python versions can affect dependency installation.
  • Plan CPU, memory, disk and bandwidth for your actual workload. A practical starting point is 4 GB RAM and 20 GB disk plus media storage, not a guarantee of stream capacity.
  • For initial direct panel access, allow TCP 5847 only from trusted administrator addresses. Managed HTTPS uses 80/443; an optional separate streaming listener commonly uses 5848.
  • Do not expose PostgreSQL or worker control endpoints publicly without a deliberate network policy.

Install a new main panel

wget -O xott-installer.sh https://xottpanel.com/downloads/xott-installer.sh
less xott-installer.sh
sudo bash xott-installer.sh
  1. Download and review the installer on the intended server.
  2. Choose Fresh install only for a new installation or a deliberate rebuild.
  3. Let dependency, Python environment, database and service setup complete. Keep the installer output in case a step fails.
  4. Record the generated admin password printed at completion. Open http://YOUR_SERVER_IP:5847, sign in and change it.
  5. Activate the panel license when prompted. Configure HTTPS and restricted administrator access before public production use.

Check the first installation

  • Confirm the installed version, license status and server time.
  • Connect one provider or manual input and validate actual playback.
  • Create a subscriber only after a saved channel works.
  • See server networking before changing bindings, domains, TLS or firewall policy.

The installer keeps an existing FFmpeg installation where available, or attempts the distribution package. It does not universally replace FFmpeg with the newest upstream static build. Check the installed version if a media feature is unavailable.

Update an existing installation

  1. Read release notes and schedule a maintenance window; updating can restart processing.
  2. Open Operations → Database, create a backup and keep a copy outside the server. Back up necessary configuration and media separately; a database backup is not a media archive.
  3. Download and run the installer as above, choosing Update. Never choose Fresh install to repair a routine update.
  4. Update the main panel and workers to the same release. Check worker health, placement, saved outputs, events, subscriber playlists and downloads afterwards.
  5. If the browser uses stale assets, reload it after the server update; do not immediately delete accounts or recreate outputs.

If installation or startup fails

sudo systemctl status xott --no-pager
sudo journalctl -u xott -n 100 --no-pager
ffmpeg -version
python3 --version

Keep the first failing command and its error output. A Python virtual-environment error can indicate a missing matching venv package or a non-distribution Python interpreter. Do not remove system Python or change global package sources blindly. Share redacted logs and the Ubuntu version with support.

Recovery and removal

Before restoring, stop new operational changes and make a backup of the current state. Restore a compatible database using the Database page, then verify accounts, access, library and storage references. Keep media volumes available at their original paths.

Release history

The complete historical changelog is now on its own searchable page. Historical entries describe changes at the time; current instructions in these guides take precedence.