# MeshBay — Packaging Three distributable packages: | Package | RPM spec | DEB control | Description | |---|---|---|---| | `python3-meshbay-common` | `rpm/python3-meshbay-common.spec` | `deb/python3-meshbay-common/` | Shared crypto + protocol lib | | `meshbay-hub` | `rpm/meshbay-hub.spec` | `deb/meshbay-hub/` | Hub server (FastAPI + PostgreSQL) | | `meshbay-node` | `rpm/meshbay-node.spec` | `deb/meshbay-node/` | Node daemon + local UI | ## Building RPMs (Fedora/RHEL) ```bash # Install build tools sudo dnf install -y rpm-build python3-pip # Build all three packages for pkg in python3-meshbay-common meshbay-hub meshbay-node; do rpmbuild -ba packaging/rpm/${pkg}.spec done ``` ## Building DEBs (Debian/Ubuntu) ```bash # Install build tools sudo apt install -y dpkg-dev debhelper python3-pip # Build common library first (dependency) dpkg-deb --build packaging/deb/python3-meshbay-common dpkg-deb --build packaging/deb/meshbay-hub dpkg-deb --build packaging/deb/meshbay-node # Install sudo dpkg -i python3-meshbay-common_0.2.0_all.deb sudo dpkg -i meshbay-hub_0.2.0_all.deb sudo dpkg -i meshbay-node_0.2.0_all.deb ``` ## Install order Always install `python3-meshbay-common` first (dependency of both hub and node). ## Post-install (hub) ```bash # Generate hub keypair sudo -u meshbay meshbay-hub --generate-keys # Edit config sudo nano /etc/meshbay/hub.toml # Configure Caddy for HTTPS sudo nano /etc/caddy/Caddyfile # Start sudo systemctl enable --now meshbay-hub ``` ## Post-install (node) ```bash # Initialize node (writes example config) meshbay-node init # Edit config nano ~/.config/meshbay/node.toml # Start as user service systemctl --user enable --now meshbay-node ``` ## Firewall (LAN casting) The Electron client runs an HTTP relay on **TCP 19550-19553** to stream decrypted video to Chromecast / Smart TV devices on the local network. Chromecast discovery uses **mDNS (UDP 5353)**. These ports must be open on the machine running the client. ### Fedora / RHEL (firewalld) ```bash sudo firewall-cmd --permanent --add-service=mdns sudo firewall-cmd --permanent --add-port=19550-19553/tcp sudo firewall-cmd --reload ``` ### Ubuntu / Debian (ufw) ```bash sudo ufw allow 5353/udp comment "mDNS - Chromecast discovery" sudo ufw allow 19550:19553/tcp comment "meshbay cast relay" ``` ## Systemd service files | File | Location | |---|---| | `systemd/meshbay-hub.service` | `/usr/lib/systemd/system/meshbay-hub.service` | | `systemd/meshbay-node.service` | `/usr/lib/systemd/user/meshbay-node.service` | The node service is a **user service** (runs as the user's own account, with access to their home directory). The hub is a **system service** (runs as the `meshbay` system account).