blob: 13b8fbf9e8a4c81441b8287acb87771f0938638e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# 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).
|