These guides map an industry's concepts onto the objects the platform has today (bouquets, lines, packages, partner accounts, nodes, the API). They are conceptual mappings, not industry-specific features, and a partner account is a delegated account, not an isolated tenant.
Conceptual mapping
Nothing in the panel is called a show or a supporter. The table says which object plays which role; the chapters below set them up in that order.
| In your industry | On the platform | Where in the panel |
|---|---|---|
| The studio's channel | Live channel: a stream with its sources, EPG and output formats | Streams → add a live stream (source URL or RTMP push) |
| Show library | VOD catalogue: movies and series with seasons and episodes, categories and metadata | Movies and Series, or the VOD ingest job |
| Subscription tier | Bouquet: a named set of channels, films or series that a package grants | Bouquets, from Streams and Movies / Series |
| Supporter access | Line: one access with its package, bouquets, expiry, connection limit and outputs | Lines → add, or activation codes, or the Reseller API |
| Billing period | Expiry date of the line, renewed by a package, a credit or the API | The line's expiry date and the package's duration |
| Affiliate or distributor account | Partner account (reseller): a delegated dashboard with credits, permissions and its own lines | Users → add a reseller; Groups for its permissions |
| Shop or membership integration | Reseller API and webhooks: the operations of the panel from your own system | Reseller API keys and webhooks in the reseller's dashboard |
Prerequisites
What to have before installing.
- A server (Ubuntu 22.04 or 24.04) with a public address or a domain, and enough upstream bandwidth for the audience you expect.
- The finished episodes, the studio's playout or encoder for the channel, and a shop on a platform with a connector, or the ability to call an HTTP API.
- A decision on tiers and on affiliates: what each subscription grants, and who may sell it.
Infrastructure deployment
One server first, nodes as the audience grows.
- Run the installer on the management server and put the panel behind a reverse proxy with TLS; set the trusted proxies so IP rules see the viewer's real address.
- Set the playback base URL to the public address your audience reaches.
- Enrol a node from Servers in a region where many supporters watch; the panel installs it over SSH and routes that region's viewers to it.
- Create a partner account (reseller) for each staff member who runs the catalogue or the supporters, with its own permission group.
Content organisation
Shows as series, tiers as bouquets.
- Create categories per genre, and one series per show with a season per release batch and one episode per video.
- Create a bouquet for the live channel, one for the free or entry content and one for each higher tier.
- Create one package per tier with the billing period as its duration, a trial package for new visitors if you want one, and a price in credits for the affiliates.
- Keep the back catalogue in its own category so it can be moved between tiers without touching the series.
Partner (reseller) configuration
Affiliates and distributors.
- Create a group for affiliates with line permissions only, so they cannot change the catalogue.
- Add each affiliate as a reseller with that group and a balance of credits; its package price is what the studio decides.
- A distributor with sub-affiliates may create sub-resellers under its own account, up to five levels deep.
Supporter access configuration
One line per supporter.
- Install the connector of your shop (WooCommerce, for instance) and enter the Reseller API key and the package that matches each product.
- On subscription the connector calls create_line with the package and a request id; the billing period is the package's duration.
- Set max connections to the number of devices a supporter may use, typically two or three.
- For a giveaway or a launch, generate activation codes in bulk or add lines from Lines → add with a trial package.
Show library
Episodes on demand.
- Upload each episode as a source, or ingest it with the VOD ingest job; fill in the title, the season, the episode number and the TMDB metadata if the show has any.
- Attach each series to the bouquets of the tiers that may watch it.
- Check playback with a test line of each tier before announcing a release.
The studio's channel
A channel around the clock.
- Add a live stream for the studio's playout (RTMP push) and place it in the bouquets of every tier that includes the channel.
- Load the channel's guide as XMLTV so supporters see what is on, and enable catch-up for the shows that are worth replaying.
- Keep the playout running between releases with the studio's own scheduled content; the panel only relays the stream.
Subscription expiry
Access follows the payment.
- A line expires at the end of its package's period; the shop renews it with renew_line when the next payment arrives.
- Subscribe the shop to the webhooks to send a reminder on line.expiring and to downgrade a supporter on line.expired.
- A supporter who cancels is disabled by the shop with disable_line, and the line can be renewed later without a new account.
Integration with the shop
The shop sells; the player plays.
- The connector creates, renews and disables lines in step with orders; any other shop uses the Reseller API and webhooks.
- Affiliates see their own lines in their dashboard, and the Reseller API lets them automate it.
- There is no single sign-on for viewers: supporters sign in to the player with the credentials of their line, which the shop sends them.
Security considerations
Protect the subscription, not only the server.
- Serve the panel and the playback base URL over TLS and set TRUSTED_PROXIES to your reverse proxy.
- Two-factor sign-in for every panel account, and permission groups so affiliates cannot change the catalogue.
- Signed and expiring playback links and a connection limit per line; bind a line to a country if a licence is territorial.
- Encrypted database backups with an off-site copy, and the audit log for every change of lines and catalogue.
Troubleshooting
The usual first checks.
- A new supporter cannot watch after paying: check the shop connector's call in the Reseller API log and the line's expiry date.
- A supporter sees content of a higher tier: check the package of the line and the bouquets it grants.
- The channel stops at the end of a playout cycle: check the encoder's push to the live stream and the stream's probe status.
- An affiliate's sale does not appear: check its credits and that the package it used belongs to its group.