From deee67755991994742ef144400857dd5f6b8aafa Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sun, 9 Aug 2026 05:19:13 +0200 Subject: chore: add RPM/DEB packaging artifacts — 5.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- packaging/rpm/meshbay-hub.spec | 78 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 packaging/rpm/meshbay-hub.spec (limited to 'packaging/rpm/meshbay-hub.spec') 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 - 0.1.0-1 +- Initial package -- cgit v1.2.3