# Generic MovieBox Addon installation ## Requirements Ubuntu 24.04 (or compatible Linux), Python 3.10+, systemd, Apache 2.4, sudo/root access, and outbound DNS/HTTPS access to metadata/provider/media services. No pip, npm or Rust dependencies are needed. A domain and working HTTPS Apache site are required before running the installer. Point your own domain to the server and configure its certificate and vhosts through your usual hosting process. The example addon.example.com is a placeholder: replace it and the vhost filenames below with your actual values. Use a separate deployment with port 8766 and /moviebox/ available. Do not install this generic package on top of a different live addon without a migration plan. ## Upload and install over SSH Upload the entire MovieBox-Addon-Generic folder to /root/MovieBox-Addon-Generic using SFTP. Keep it outside your public website directory. ```sh cd /root/MovieBox-Addon-Generic sha256sum -c SHA256SUMS python3 -m unittest discover -s . -p 'test_*.py' -v sudo python3 install.py \ --domain addon.example.com \ --ssl-vhost /etc/apache2/sites-available/addon-le-ssl.conf \ --http-vhost /etc/apache2/sites-available/addon.conf ``` The HTTPS vhost must contain exactly one VirtualHost. The optional HTTP vhost argument configures token-path log exclusions there too. Existing access-log conditions may require manual review; the installer stops rather than silently replacing an incompatible condition. The installer runs Apache and package checks, generates a fresh random access token, creates the dedicated account/service/config, and verifies the HTTPS manifest. An existing generic installation keeps its token on reinstall. No domain, certificate or hosting purchase is performed by the installer. It modifies the selected Apache vhosts and installs a proxy include; review those paths before running it. Root-only rollback snapshots and restore-map.json are retained under /root/moviebox-addon-backups/. Failure restores tracked prior files/configuration, but is not a full system rollback (for example, a newly created service account or enabled Apache modules may remain). ## Retrieve the manifest The installer saves the new private manifest URL in /root/moviebox-addon-link.txt without printing the token. Retrieve it securely via SFTP. Its form is: https://addon.example.com/moviebox/YOUR_PRIVATE_TOKEN/manifest.json Register that URL as a source addon in your compatible panel/client. For catalog browsing, register the same URL under metadata/catalog addons where your panel provides a separate registration. Do not create duplicate source registrations. The token grants shared addon access, not individual subscriber authentication. Keep it, /etc/moviebox-addon/service.env and /var/lib/moviebox-addon/ private. Source packages must not include generated tokens, signed media URLs, cookies, logs or database files. ## Operations ```sh systemctl status moviebox-addon --no-pager systemctl restart moviebox-addon systemctl stop moviebox-addon systemctl start moviebox-addon journalctl -u moviebox-addon -f ``` Ctrl+C stops following logs; it does not stop the service. To stop the addon and disable startup: systemctl disable --now moviebox-addon. To restore startup: systemctl enable --now moviebox-addon. Other website services remain separate. ```sh top free -h systemctl show moviebox-addon -p MemoryCurrent -p CPUUsageNSec ``` Press q to exit top. free and systemctl return immediately. The default service limits are 256 MB RAM, 50% of one CPU and eight request workers. MOVIEBOX_RATE_PER_IP defaults to 240 requests/minute; a panel that makes all requests centrally shares one IP bucket. These limits govern the addon backend, not customer video throughput. ## Checks after installation ```sh cd /root/MovieBox-Addon-Generic python3 verify_deployed.py --link-file /root/moviebox-addon-link.txt --output /root/moviebox-check.json python3 verify_quality.py --link-file /root/moviebox-addon-link.txt --output /root/moviebox-quality-check.json ``` These checks make real upstream requests. They verify metadata, source responses and bounded media initialization, not sustained playback on every device. Test movies, series, seeking and audio on your own client before broad use. Allow for panel/client source caching when refreshing labels.