Skip to content

Releases: SamuelDonovan/minimost

Latest Dev Build

Latest Dev Build Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jul 03:42

v0.0.3

Choose a tag to compare

@SamuelDonovan SamuelDonovan released this 22 Jun 03:38

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

Choose a tag to compare

@SamuelDonovan SamuelDonovan released this 20 Jun 01:56
- 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

Choose a tag to compare

@SamuelDonovan SamuelDonovan released this 14 Jun 04:48

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.