MCPSERV.CLUB
HyperKitty

HyperKitty

Self-Hosted

Modern web archiver for mailing lists and forums

Stale(40)
0stars
0views

Overview

Discover what makes HyperKitty powerful

HyperKitty is a **self‑hosted archiving and forum engine** that extends the GNU Mailman 3 ecosystem. Built on **Python 3** and the **Django web framework**, it exposes a REST‑style API, full HTML rendering, and a rich set of client‑side features that let developers embed list archives or repurpose the application as an independent discussion platform. Its core goal is to provide *modern, search‑friendly* archives that can be accessed without the full Mailman stack.

Archive Rendering

REST API

Search & Facets

User Interaction

Overview

HyperKitty is a self‑hosted archiving and forum engine that extends the GNU Mailman 3 ecosystem. Built on Python 3 and the Django web framework, it exposes a REST‑style API, full HTML rendering, and a rich set of client‑side features that let developers embed list archives or repurpose the application as an independent discussion platform. Its core goal is to provide modern, search‑friendly archives that can be accessed without the full Mailman stack.

Technical Stack

LayerTechnology
BackendDjango 4.x, Python 3.10+, Celery for async tasks
DatabasePostgreSQL (default), optional SQLite or MySQL via Django ORM
SearchElasticSearch 7.x (or OpenSearch) for full‑text indexing, with fallback to PostgreSQL tsvector
FrontendDjango templates + Tailwind CSS, Alpine.js for interactivity; optional React front‑end via API
ContainerizationOfficial Docker images, Compose files for quick deployment; supports Kubernetes via Helm charts
TestingPyTest + Django TestRunner, coverage reports

The application ships with a modular architecture: core mail‑archive logic lives in hyperkitty.core, while optional plugins (e.g., authentication backends, S3 attachment storage) are loaded via Django’s app registry. This design allows developers to swap out components or extend functionality without touching the core codebase.

Core Capabilities

  • Archive Rendering – Parses raw Mbox or Maildir sources, normalizes message IDs, and builds threaded views.
  • REST API/api/v1/lists/, /api/v1/messages/ endpoints expose CRUD operations, search, and pagination. OAuth2 support via Django‑OAuth Toolkit.
  • Search & Facets – Powered by ElasticSearch; supports full‑text, date ranges, author filters, and attachment presence.
  • User Interaction – Favoriting, threading, inline reply via AJAX; integrates with Mailman’s subscription workflow.
  • Export – PDF/HTML exports per message or thread, configurable via Celery tasks.

Deployment & Infrastructure

HyperKitty is designed for bare‑metal or cloud environments. The Docker image pulls a pre‑configured Django app, but developers can also run it directly from source. Key deployment considerations:

  • Database – A dedicated PostgreSQL instance is recommended for production; migrations run via python manage.py migrate.
  • Search – ElasticSearch must be reachable; the app exposes a health endpoint to verify connectivity.
  • Background Workers – Celery workers process indexing and export jobs; a Redis broker is required.
  • Scaling – Horizontal scaling of the Django app behind a WSGI server (Gunicorn) is straightforward; ElasticSearch handles query load, while PostgreSQL can be read‑replicated.

Integration & Extensibility

HyperKitty’s plugin system lets developers hook into:

  • Authentication – Support for LDAP, OAuth2, and custom backends.
  • Storage – Attachments can be served from local disk, S3, or other object stores via django-storages.
  • Webhooks – Expose events (new message, new thread) to external services.
  • Custom Views – Override Django templates or write new view classes; the API is fully documented in Swagger UI.

The project encourages community contributions, with a clear contribution guide on GitLab and an active issue tracker. Documentation covers both end‑user usage and developer integration, including code samples (without installation commands) that illustrate how to embed HyperKitty in a larger Django project.

Use Cases

  • Mailing List Archive – Replace or augment Mailman 3’s built‑in archives with a feature‑rich, searchable interface.
  • Forum Replacement – Deploy HyperKitty standalone to host discussion boards with threaded messaging and attachment support.
  • Compliance & Auditing – Store and search historical email data for legal or regulatory purposes, leveraging the robust indexing layer.
  • Educational Platforms – Provide students with a lightweight discussion forum tied to course mailing lists.

Advantages

CriterionHyperKitty
PerformanceElasticSearch indexing gives sub‑second search, even on millions of messages.
FlexibilityDjango’s ORM and plugin system allow rapid customization without rewriting core logic.
LicensingGPL‑3.0 ensures freedom to modify and redistribute, suitable for open‑source projects.
CommunityActive Fedora and Mailman communities provide long‑term support and shared expertise.
DeploymentDocker + Compose simplifies initial setup; Kubernetes manifests enable cloud‑native scaling.

For developers seeking a ready‑to‑deploy mailing list archive that can also serve as a forum, HyperKitty offers a well‑structured Django codebase, powerful search capabilities, and extensibility through plugins and APIs—all backed by an active community and clear documentation.

Open SourceReady to get started?

Join the community and start self-hosting HyperKitty today