MCPSERV.CLUB
memEx

memEx

Self-Hosted

Personal memory management system

Stale(40)
0stars
0views
memEx screenshot

Overview

Discover what makes memEx powerful

memEx is a self‑hosted knowledge‑management platform built on the Elixir ecosystem. At its core, it functions as a web‑based wiki that supports rich text editing, version control of pages, and interlinking via backlinks. From a developer’s standpoint, memEx exposes a clean REST/GraphQL API that allows programmatic CRUD operations on pages, users, and tags. The application is designed to run behind any HTTP reverse proxy, making it straightforward to integrate into existing infrastructure.

Rich Markdown & Wiki Syntax

Versioning & Diff

Backlink Graph

Role‑Based Access Control

Overview

memEx is a self‑hosted knowledge‑management platform built on the Elixir ecosystem. At its core, it functions as a web‑based wiki that supports rich text editing, version control of pages, and interlinking via backlinks. From a developer’s standpoint, memEx exposes a clean REST/GraphQL API that allows programmatic CRUD operations on pages, users, and tags. The application is designed to run behind any HTTP reverse proxy, making it straightforward to integrate into existing infrastructure.

Key Features

  • Rich Markdown & Wiki Syntax – Pages are authored in Markdown with extended syntax for tables, code blocks, and inline math. The rendering engine is powered by the Earmark library, ensuring fast conversion to HTML.
  • Versioning & Diff – Every edit creates a new revision stored in the database. The UI exposes diffs and a history timeline, while the API offers endpoints to fetch specific revisions or compare two versions.
  • Backlink Graph – memEx automatically tracks inbound links, providing a graph view that can be queried via the API. This is useful for dependency analysis or knowledge mapping.
  • Role‑Based Access Control – Fine‑grained permissions (read, write, admin) are enforced at the page level. The API accepts JWTs or session cookies for authentication.

Technical Stack

  • Language & Framework – Elixir 1.17 with Phoenix 1.7, leveraging the OTP concurrency model for handling thousands of simultaneous users.
  • WebSocket Support – Phoenix Channels deliver real‑time collaboration features (e.g., live editing indicators).
  • Database – PostgreSQL is the primary persistence layer. All schema migrations are managed by Ecto, and the application ships a Docker image with a pre‑configured PostgreSQL service.
  • Search – Built‑in full‑text search uses Postgres’ tsvector indexes; for larger deployments, an optional Elasticsearch connector is available via a plugin.
  • Containerization – A Dockerfile and docker‑compose.yml provide a zero‑config setup for local development or production deployment.

Core Capabilities

  • API Endpoints/api/pages, /api/users, /api/tags support standard CRUD, with pagination and filtering. Webhooks can be configured to trigger on page changes.
  • Webhooks & Extensions – External services can subscribe to events (page created, updated, deleted) via HTTP callbacks. The plugin system allows developers to inject custom logic into the request pipeline or add new UI components.
  • CLI – The bundled tea CLI (written in Elixir) offers commands for database migrations, seeding, and health checks, facilitating CI/CD pipelines.

Deployment & Infrastructure

  • Self‑Hosting – memEx can run on any Linux distribution with Docker or as a native release. The binary is statically linked, requiring only the runtime environment and PostgreSQL.
  • Scalability – The stateless Phoenix process model makes horizontal scaling trivial. A load balancer can distribute traffic across multiple replicas; session persistence is handled via encrypted cookies.
  • Observability – Built‑in metrics expose Prometheus endpoints (/metrics). Logging is structured JSON, compatible with ELK or Loki stacks.

Integration & Extensibility

  • Plugin Architecture – Plugins are simple Elixir modules that hook into Phoenix’s Plug pipeline or define new routes. The repository includes example plugins for OAuth2 authentication and custom markdown extensions.
  • Webhooks – External systems can listen to page events, enabling workflows such as automatic documentation generation or CI triggers.
  • Custom Themes – The frontend is built with Tailwind CSS; developers can override styles or supply their own assets via the /assets directory.

Developer Experience

  • Documentation – The README and Wiki provide clear guidance on API usage, plugin development, and deployment. Contributing guidelines are enforced with Credo and Mix format.
  • Community – While the project has modest star count, it follows open‑source best practices: issue tracking, pull request templates, and a code of conduct.
  • Licensing – The application is released under the MIT license, giving developers freedom to modify and redistribute.

Use Cases

  • Internal Documentation Hub – Teams can host a knowledge base that supports versioned pages, backlinks, and role‑based access without relying on third‑party SaaS.
  • Educational Platforms – Instructors can deploy memEx to create course notes, allowing students to view revision history and track dependencies between concepts.
  • Developer Documentation – Projects that need an open‑source, self‑hosted wiki for API docs or architecture diagrams can leverage memEx’s plugin system to integrate with CI/CD pipelines.

Advantages

  • Performance & Concurrency – Elixir’s lightweight processes enable handling of high‑volume traffic with minimal latency.
  • Flexibility – The plugin system and exposed APIs allow deep customization, from authentication to search backends.
  • Open‑Source Control – Self‑hosting eliminates vendor lock‑in and ensures data sovereignty, critical for regulated industries.
  • Zero‑Config Docker – Rapid onboarding is possible with a single docker-compose up, making memEx attractive for dev‑ops teams.

Overall, memEx offers a robust, extensible platform for developers who require an on‑premises knowledge management solution that can grow with their organization’s technical needs.

Open SourceReady to get started?

Join the community and start self-hosting memEx today