We offer customization solutions and support ([email protected]) | Visit us on bitbyte3 for complete VOD solutions with apps.
NixStream
Guides

Admin Panel

Using the NixStream admin panel

The admin panel is a React SPA at /panel/*. Upload videos, manage live streams, tweak settings, check analytics. Auth is Laravel Sanctum via POST /api/login.

First login

After install, open APP_URL/panel. Email is ADMIN_EMAIL in .env. Password was printed once by install.sh. Use ./scripts/create-admin.sh if you need a new one.

Change the password from your profile after first login.

Roles and permissions

NixStream uses Spatie Permission for role-based access:

RoleTypical access
AdminFull settings, users, API keys, all content
ManagerContent management and analytics
EditorUpload and manage videos

If you edit permissions in config/acl.php, reset the cache afterward:

php artisan permission:cache-reset

Main sections

Dashboard

Key metrics, encoding stats over time, system health, queue status. Check here that workers are up and encoding isn't falling behind uploads.

Videos

Upload, organize, and manage your VOD library. Videos live in collections (folders). You can attach metadata, generate transcripts, create share links, and view per-video analytics from here.

Live

Create and manage live streams. Each stream gets an RTMP URL and stream key for OBS. You can monitor which streams are active and review recordings after events.

Analytics

System-wide and per-video metrics: views, watch time, encoding throughput, system status. Handy when you're planning capacity or just curious what people watch.

Settings

Most configuration lives here:

  • Encoding: transcoding profiles and resolution ladders
  • Storage: local disk or S3-compatible providers
  • Player: autoplay, watermark, ads, default language
  • Security: domain allowlists, geo rules, security profiles
  • General: API keys, site name, integrations
  • Integrations: Vimeo, Google Drive, Dropbox

Users

Manage team members and assign roles. Admin-only.

API keys

To connect external apps, go to Settings > General and generate a client API key. The plain key is shown once at creation. Copy it right away and store it somewhere safe.

Use the key as a Bearer token for all /api/client/v1/* requests. See the API reference for endpoint details.

Typical daily workflow

Glance at the dashboard for queue health and failed jobs, upload or check processing status, file things into collections with metadata, ship share links or embeds for anything public, keep an eye on live streams if you have events, and skim analytics when you care about views.

Tips

  • If uploads stay in "pending", check that queue workers are running
  • Run ./scripts/verify.sh after config changes to confirm services are healthy
  • Use collections and metadata early so your library stays searchable as it grows
  • Generate separate API keys for different integrations so you can revoke one without affecting others

On this page