aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/rpm/meshbay-hub.spec
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-09 05:19:13 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-09 05:19:13 +0200
commitdeee67755991994742ef144400857dd5f6b8aafa (patch)
tree1daf5196d03046d7c33bc4ec00480ccf66289bc6 /packaging/rpm/meshbay-hub.spec
parent42556800d103ede20b4e97f2d91d20bbc0000c1e (diff)
downloadmeshbay-deee67755991994742ef144400857dd5f6b8aafa.tar.gz
chore: add RPM/DEB packaging artifacts — 5.10
3 packages: python3-meshbay-common (dep), meshbay-hub, meshbay-node. RPM: spec files with pre/post scriptlets (useradd, systemd macros). DEB: DEBIAN/control + postinst for hub, control for node + common. Systemd: hub.service (system, security hardening) + node.service (user template @%i, EnvironmentFile for MESHBAY_UNLOCK_KEY). packaging/README.md: build + install instructions. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'packaging/rpm/meshbay-hub.spec')
-rw-r--r--packaging/rpm/meshbay-hub.spec78
1 files changed, 78 insertions, 0 deletions
diff --git a/packaging/rpm/meshbay-hub.spec b/packaging/rpm/meshbay-hub.spec
new file mode 100644
index 0000000..f68c3bf
--- /dev/null
+++ b/packaging/rpm/meshbay-hub.spec
@@ -0,0 +1,78 @@
+Name: meshbay-hub
+Version: 0.1.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 09 2026 MeshBay Team <team@meshbay.org> - 0.1.0-1
+- Initial package