Ministra TV Platform (formerly known as Stalker Middleware) is the dominant middleware for STB-based IPTV deployments — MAG boxes, Infomir set-top devices, Aura HD, Formuler, and most hotel/hospitality IPTV systems. If your customers use STBs rather than apps, Ministra is what you need.

// Important
Ministra is a commercial product from Infomir with a different licensing model than Xtream Codes / XUI.ONE. You'll need a paid Ministra license for production use. The free Stalker fork (community-maintained) exists but has known security holes — not recommended for businesses handling customer data.

1. Server requirements

  • OS: Ubuntu 20.04 LTS (Ministra officially supports 18.04 and 20.04)
  • RAM: 8 GB minimum, 16 GB for 1000+ STBs
  • CPU: 4 vCPU, prefer dedicated cores
  • Disk: 100 GB SSD for the panel itself; separate volume for VOD/recordings
  • Bandwidth: 1 Gbps unmetered minimum
  • Database: MySQL 5.7 or MariaDB 10.3+

2. Initial setup

apt update && apt upgrade -y
apt install -y nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring \
  php-xml php-zip memcached php-memcache curl wget unzip git
hostnamectl set-hostname stb.yourdomain.com

3. Database setup

mysql_secure_installation

Then create the Ministra database:

mysql -uroot -p
CREATE DATABASE stalker_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'stalker'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD_HERE';
GRANT ALL PRIVILEGES ON stalker_db.* TO 'stalker'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. Download & extract Ministra

Download from your Infomir account (you must have purchased a license). Extract to /var/www/:

cd /var/www
wget https://your-license-portal/ministra-latest.tar.gz
tar -xzf ministra-latest.tar.gz
mv ministra stalker_portal
chown -R www-data:www-data stalker_portal/

5. Run the installer

cd /var/www/stalker_portal
./install.sh

Provide:

  • Database name, user, password (from step 3)
  • Portal language (default: English; add others later in admin panel)
  • Admin email
  • Server domain or public IP

6. NGINX configuration

Create /etc/nginx/sites-available/ministra:

server {
    listen 80;
    server_name stb.yourdomain.com;
    root /var/www/stalker_portal/server;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_read_timeout 300;
    }

    location /stalker_portal/c {
        alias /var/www/stalker_portal/c;
    }

    location /stalker_portal/misc {
        alias /var/www/stalker_portal/misc;
    }

    client_max_body_size 100M;
}
ln -s /etc/nginx/sites-available/ministra /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

7. First admin login

Visit http://stb.yourdomain.com/stalker_portal/server/admin. Default credentials are admin / 1. Change immediately — leaving these defaults is the #1 cause of compromised STB panels.

8. Adding STB devices (MAC management)

Ministra is MAC-based — each customer's STB is registered by its MAC address (format: 00:1A:79:XX:XX:XX).

Inside admin: Users → Add User. Enter:

  • MAC address (printed on the back of the STB)
  • Tariff plan (which channel package they get)
  • Account expiration date
  • Optional: customer name, phone, address

9. Importing channels

Ministra channel structure: ITV TV Channels → Add. For each channel:

  • Name & logo: Visible to customers
  • Stream URL: Your source feed
  • Genre: News / Sports / Movies / etc.
  • Stream protocol: HLS, MPEG-TS, RTMP, or auto-detect
  • EPG ID: Maps this channel to its XMLTV entry

Bulk import via M3U is available in Tools → Import, but Ministra's M3U parser is strict — validate your playlist with our M3U checker first.

10. Common Ministra issues

  • STB shows "Loading…" forever: 90% of the time, this is the portal URL — STBs need http://your-domain/stalker_portal/c/ with the trailing slash
  • "Authorization failed" on STB: MAC address mismatch (case-sensitive on some firmwares) or expired tariff
  • Channels load but EPG is blank: XMLTV channel ID mapping is wrong; check itv.epg_id matches the <channel id="..."> in your XMLTV
  • Slow portal load on STBs: Enable Memcached (Ministra ships with a config; just install memcached service)
// STB management is hard
If you're managing 100+ STBs and don't want to run middleware yourself, our managed restream service can output directly to your existing Ministra install — keeping your STB customers happy without you maintaining the middleware. Learn more →