# Deployment, backup, and recovery ## Release locations | Purpose | Location | |---|---| | Live router application | `192.168.8.1:/www/streaming` | | Router settings | `192.168.8.1:/etc/irl-dashboard/settings.json` | | Public installer archive | `https://streamhelpers.com/irl-dashboard/irl-dashboard.tar.gz` | | Public documentation | `https://streamhelpers.com/irl-dashboard/docs/` | | Local website mirror | `Z:\Developer\StreamHelpers.com\irl-dashboard` | | Development source | `C:\Users\modem\Desktop\Live Streaming\New Streamer\dashboard` | ## Standard release procedure 1. Update source files in `site\pkg\streaming`. 2. Run PHP lint on each changed PHP file. 3. Copy changed application files to `/www/streaming` on the live router and lint the deployed files. 4. Build `site\irl-dashboard.tar.gz` with the contents of `site\pkg\streaming` at the archive root. 5. Copy the archive and public documentation to the local StreamHelpers mirror. 6. Upload the installer archive and public documentation to StreamHelpers. 7. Compare SHA-256 hashes for the local archive, local mirror archive, and hosted archive. The dashboard installer extracts the archive directly into `/www/streaming`, so the archive must not contain an extra parent directory. ## Router update safety The installer can be re-run at any time: ```sh wget -qO- https://streamhelpers.com/irl-dashboard/install.sh | sh ``` It replaces application files and does not overwrite `/etc/irl-dashboard/settings.json`. Back up that settings file before changing or replacing router storage. ## Backup policy For each meaningful release, retain: - The complete local source snapshot. - The public installer archive and its SHA-256 hash. - The static public documentation set. - A copy of the current `site\chat-connect` hosted-relay source, excluding private production configuration. - A short release manifest identifying the snapshot date and included components. Never place production `config.php`, provider secrets, router settings, SSH credentials, or payment credentials in a general-purpose project backup or documentation folder. ## Recovery ### Restore the dashboard application Run the public installer again, or extract the matching retained `irl-dashboard.tar.gz` into `/www/streaming`. Do not replace the protected settings file as part of an application-only restore. ### Restore settings after an intentional backup Restore only a separately protected copy of `/etc/irl-dashboard/settings.json`, then set: ```sh chown nobody:root /etc/irl-dashboard/settings.json chmod 0600 /etc/irl-dashboard/settings.json chmod 0700 /etc/irl-dashboard ``` ### Roll back nginx integration The installer keeps an nginx backup at `/etc/nginx/conf.d/gl.conf.irl-dashboard.orig`. If necessary: ```sh cp /etc/nginx/conf.d/gl.conf.irl-dashboard.orig /etc/nginx/conf.d/gl.conf /etc/init.d/nginx restart ``` ### Verify a recovery - Load `http://ROUTER-IP/streaming/` and authenticate. - Check the relevant dashboard tabs and live controls. - Confirm settings can be read without PHP warnings. - Generate a Chat Overlay and Featured Messages URL and confirm each preview renders. - Check that public installer and documentation hashes match the retained release manifest.