MCPSERV.CLUB
Miaou

Miaou

Self-Hosted

Self‑hosted multi‑room chat with rich features

Stale(57)
549stars
0views
Updated Nov 10, 2024
Miaou screenshot

Overview

Discover what makes Miaou powerful

Miaou is a fully self‑hosted, multi‑room chat server designed for developers who need a feature‑rich messaging platform without the constraints of SaaS solutions. At its core, Miaou provides real‑time communication through WebSocket (socket.io) while persisting all activity in a PostgreSQL database for auditability and search. Authentication is handled via OAuth2, allowing integration with external providers (GitHub, Google, etc.) or custom LDAP/AD setups. The server exposes a REST‑style API for room management, user administration, and plugin hooks, making it easy to embed into existing infrastructure or extend with custom logic.

Runtime & Language

Data Layer

Authentication

Templating & Frontend

Overview

Miaou is a fully self‑hosted, multi‑room chat server designed for developers who need a feature‑rich messaging platform without the constraints of SaaS solutions. At its core, Miaou provides real‑time communication through WebSocket (socket.io) while persisting all activity in a PostgreSQL database for auditability and search. Authentication is handled via OAuth2, allowing integration with external providers (GitHub, Google, etc.) or custom LDAP/AD setups. The server exposes a REST‑style API for room management, user administration, and plugin hooks, making it easy to embed into existing infrastructure or extend with custom logic.

Technical Stack

  • Runtime & Language: Node.js (JavaScript/TypeScript), leveraging the event‑driven architecture of Express for HTTP endpoints and socket.io for real‑time messaging.
  • Data Layer: PostgreSQL (primary persistence) with Redis as an in‑memory store for session caching and pub/sub coordination across clustered instances.
  • Authentication: OAuth2 via Passport.js, supporting multiple strategies and custom callback endpoints.
  • Templating & Frontend: Pug templates rendered server‑side, with jQuery and SASS/SCSS for dynamic UI components. Rich markdown rendering is powered by hu.js and custom link boxing logic.
  • Media & Video: WebRTC for peer‑to‑peer video calls, with TURN/STUN servers configurable through environment variables.
  • Testing & CI: Travis‑CI integration, Bluebird promises for async flow control, and a comprehensive test suite covering both unit and integration scenarios.

Core Capabilities

  • Persistent, Searchable History: All messages are stored in PostgreSQL and indexed for full‑text search; APIs allow programmatic retrieval of conversation threads.
  • Rich Markdown & Rendering: Supports code blocks, tables, and custom link boxing (e.g., GitHub issue links auto‑rendered with metadata).
  • Private Rooms & Access Control: Fine‑grained ACLs per room, with optional password protection and invitation tokens.
  • Plugins & Extensibility: A modular plugin system lets developers add new message processors, bots, or external integrations. Hooks are exposed for events such as message.post, room.create, and user.join.
  • Webhooks & GitHub Hooks: Built‑in support for receiving and reacting to GitHub events, enabling automated notifications or CI triggers within chat rooms.
  • Notifications & Persistence: Users receive persisted notifications for mentions, private messages, and system events even when offline.

Deployment & Infrastructure

Miaou is designed for containerized deployment. A Docker image (available on Docker Hub) bundles Node, PostgreSQL, and Redis, with optional sidecar containers for TURN/STUN servers. The application can be scaled horizontally by running multiple Node instances behind an Nginx reverse proxy that balances WebSocket connections. Environment variables control all configuration, making it straightforward to integrate with Kubernetes secrets or Docker Compose setups.

Integration & Extensibility

  • REST API: Endpoints for room CRUD, user lookup, and message querying.
  • WebSocket Events: Clients can subscribe to custom events or broadcast messages programmatically.
  • Plugin Development Docs: The plugins/README.md details the API surface for plugin authors, including lifecycle hooks and configuration patterns.
  • Webhook Endpoints: Exposed URLs for third‑party services (e.g., GitHub) to post events; developers can write custom handlers or use existing plugins.

Developer Experience

Configuration is driven entirely by environment variables and a single config.json file, allowing zero‑touch deployment on most platforms. The documentation is organized into concise sections (Installation, Technical Stack, Plugin Development), with inline code examples that avoid clutter. Community support is active on dedicated chat rooms; contributors are encouraged to discuss before coding, ensuring alignment with project goals. The MIT license (with minor exceptions) guarantees freedom to modify and redistribute the code without licensing headaches.

Use Cases

  • Enterprise Internal Chat: Deploy on a private network with LDAP authentication, leveraging the plugin system to integrate with internal ticketing or CI tools.
  • Open‑Source Project Communication: Host a public room with GitHub hook integration to surface issue updates and PR discussions directly in chat.
  • Real‑Time Collaboration Tool: Embed Miaou into a web application to provide instant messaging, video calls, and file sharing for project teams.
  • Educational Platforms: Create private rooms per class or cohort, with persistent history for review and automated grading bots.

Advantages

  • Performance: Node.js event loop combined with Redis pub/sub delivers low‑latency messaging even under high load.
  • Flexibility: Full access to the codebase and plugin API means any feature can be added or replaced without vendor lock‑in.
  • Licensing: MIT license removes commercial restrictions, allowing use in proprietary products.
  • Community & Documentation: Active contributors and clear docs reduce onboarding time for new developers.

Miaou offers a robust, developer‑friendly platform that balances real‑time interactivity with durable storage and extensibility, making it an attractive choice for teams that need a customizable chat solution without external dependencies.

Open SourceReady to get started?

Join the community and start self-hosting Miaou today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
apis-services
License
NOASSERTION
Stars
549
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Supported OS
Linux
Author
Canop
Canop
Last Updated
Nov 10, 2024