aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/README.md
blob: 2e31b7f9aa316d70e177df8694de8758db6b6c76 (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
# 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.1.0_all.deb
sudo dpkg -i meshbay-hub_0.1.0_all.deb
sudo dpkg -i meshbay-node_0.1.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
```

## 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).