summaryrefslogtreecommitdiffstats
path: root/packaging/rpm/meshbay-hub.spec
blob: 68a580c2657e101a81cd09c2c2079fd4b4ce7bb8 (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
Name:           meshbay-hub
Version:        0.3.0
Release:        1%{?dist}
Summary:        MeshBay Hub — identity authority and group registry server
License:        AGPLv3+
URL:            https://meshbay.org
Source0:        %{name}-%{version}.tar.gz

BuildArch:      noarch
BuildRequires:  python3-devel >= 3.12
BuildRequires:  python3-pip
BuildRequires:  python3-hatchling

Requires:       python3 >= 3.12
Requires:       python3-meshbay-common = %{version}
Requires:       python3-fastapi
Requires:       python3-uvicorn
Requires:       python3-sqlalchemy >= 2.0
Requires:       python3-alembic
Requires:       python3-asyncpg
Requires:       python3-pyjwt
Requires:       python3-blake3
Requires:       python3-slowapi
Requires:       postgresql-server

%description
MeshBay Hub provides identity management, group registry,
GEK bundle distribution, and coordination for MeshBay nodes.
Runs as a systemd service behind Caddy (HTTPS).

%prep
%autosetup

%build
%{python3} -m pip wheel --no-deps --wheel-dir dist .

%install
%{python3} -m pip install --root %{buildroot} --no-index --find-links dist meshbay-hub

# systemd service
install -Dm644 packaging/systemd/meshbay-hub.service \
    %{buildroot}%{_unitdir}/meshbay-hub.service

# Config file template
install -Dm644 packaging/conf/hub.toml.example \
    %{buildroot}%{_sysconfdir}/meshbay/hub.toml.example

# Data directory
install -d %{buildroot}%{_sharedstatedir}/meshbay/hub

%pre
getent group meshbay >/dev/null || groupadd -r meshbay
getent passwd meshbay >/dev/null || \
    useradd -r -g meshbay -d %{_sharedstatedir}/meshbay -s /sbin/nologin \
            -c "MeshBay service account" meshbay

%post
%systemd_post meshbay-hub.service

%preun
%systemd_preun meshbay-hub.service

%postun
%systemd_postun_with_restart meshbay-hub.service

%files
%license LICENSE
%doc README.md
%{python3_sitelib}/meshbay_hub/
%{python3_sitelib}/meshbay_hub-*.dist-info/
%{_bindir}/meshbay-hub
%{_unitdir}/meshbay-hub.service
%config(noreplace) %{_sysconfdir}/meshbay/hub.toml.example
%dir %attr(750, meshbay, meshbay) %{_sharedstatedir}/meshbay/hub

%changelog
* Sat Aug 15 2026 MeshBay Team <team@meshbay.org> - 0.3.0-1
- Transfers survive leaving a group; downloads stream to disk in every browser
- Download a folder as a zip, built in the browser (zip64, store-only)
- Group owner can remove a member; editable group description
- Nodes are recorded at the address their signed announcement arrived from
- Deleted accounts stop being counted; the connection log keeps their name

* Fri Aug 14 2026 MeshBay Team <team@meshbay.org> - 0.2.0-1
- Hub no longer stores or publishes user identity keys (H3); schema migration
- Access tokens carry no pk_user claim
- SPA: Argon2id for the keypair bundle, per-node identity, invitation codes

* Sat Aug 09 2026 MeshBay Team <team@meshbay.org> - 0.1.0-1
- Initial package