Releases: SamuelDonovan/minimost
Releases · SamuelDonovan/minimost
Release list
Latest Dev Build
v0.0.3
MiniMost v0.0.3 — 2026-06-21
Highlights
- Real-time push via Server-Sent Events. The old HTTP pollers are replaced by a single /events SSE stream, so messages, presence, typing, reactions, and read receipts now arrive over one persistent push connection instead of repeated polling. (Requires running under gthread/async workers.)
- Fedora / Red Hat packaging. MiniMost now ships as an RPM with a bundled systemd service, automated COPR builds, and a %changelog generated from git history — installable across EL8, EL9, and current Fedora from a single setup.cfg metadata source.
Features
- SSE event stream replacing all HTTP pollers (9949adc)
- RPM packaging + automated COPR builds, with EL8/EL9 support via conditional spec (2f4eaa3, 4f9ab24, 7217c34)
- Single-source versioning with bump-my-version — _version.py, setup.cfg, and the spec stay in lockstep (9c53290)
Fixes
- Serve file downloads with a version-agnostic filename kwarg, fixing Flask compatibility (f98589a)
- Prevent unstyled pages on the dev server by inlining CSS (2731e33)
- Stop duplicate file-preview rendering when sending an
- RPM/COPR build fixes: require pyproject-rpm-macros explicitly, read version at shell runtime (acdc47a, 4e4b82e)
Internal / Refactors
- Centralize all writable data paths through paths.data_dir() (11e3f7a)
- Remove the unused HTTP media relay — calls are pure P
- Fix an N+1 query in chat and clean up stale docstrings (3a59283)
- Add ruff + ESLint to pre-commit and CI (01ccab1)
Docs
- Reworked README: quick start, platform comparison tab seat limit and Skype self-host notes), COPR install,RPM/COPR badges
- Documentation aligned with the shared-DB / SSE / WebR
v0.0.2
- feat(pki): anchor TLS certs to a fixed directory and give each CA a unique name
- fix(security): add message length cap and several hardening updates
- fix(dev): prevent intermittent CSS load failures on the dev server
- fix(search): suppress false-positive CodeQL SQL-injection alert
- fix: resolve SonarCloud code smells
- docs: add PyPI package and downloads badges; use fully qualified URLs in README
- docs: add SECURITY.md
v0.0.1
MiniMost v0.0.1 — Initial Release
MiniMost is a lightweight, self-hosted chat platform for private networks. It runs entirely on Python and SQLite — no external database, no root access, no infrastructure. Just Flask and a browser.
Highlights
- 💬 Channels & DMs — configurable public channels, invite-only private channels you can rename and manage, plus one-on-one and group direct messages.
- 🔍 Searchable history — every message is saved and full-text searchable; new users see history from day one.
- ✏️ Rich messaging — quote-replies, edits, deletes, emoji reactions, and inline image attachments (paste, drag-and-drop, or paperclip), all syncing in real time.
- 👀 Presence & @mentions — online status, typing indicators, and @mention/@everyone pings with sound + desktop notifications and read receipts.
- 📞 Voice, video & screen sharing — calls and screen shares from any DM or private channel, growing into group calls with live speaking indicators.
- 🛡️ LAN-first, peer-to-peer media — WebRTC media flows directly between participants and never touches the server; a bundled STUN server means nothing external to configure, even on air-gapped LANs.
- 🔒 Security-minded — PBKDF2 salted/hashed passwords with enforced complexity, read-protected message database, parameterized queries throughout, and account lockout on repeated failed logins.
- 🧹 Self-maintaining — a background thread prunes old messages/attachments by age and trims by size cap; no cron job required.
- 🎨 Personalization — avatars, display-name colors, hideable DM threads, configurable per-session notifications, dark theme, and a touch-friendly responsive layout with Vim-style keyboard shortcuts.
- 🗑️ Account self-deletion & 🔑 admin password reset — soft/hard self-delete with password confirmation, and CLI-generated one-time reset links.
Requirements
- Python 3.6+
- Flask
Installation
pip install minimost
Then run:
minimost
On first run, MiniMost generates a self-signed TLS certificate in pure Python and serves over HTTPS at https://127.0.0.1:5000. Use --host / --port to change the bind address.
Free and MIT licensed — no license keys, no user limits, no hidden enterprise edition. What you read is exactly what you run.