MCPSERV.CLUB
Precis

Precis

Self-Hosted

AI‑powered RSS reader with instant notifications

Stale(53)
77stars
0views
Updated Dec 15, 2024
Precis screenshot 1
1 / 5

Overview

Discover what makes Precis powerful

Precis is a self‑hosted, extensibility‑oriented RSS reader built as a FastAPI monolith. It aggregates feeds, runs optional LLM‑based summarization, and pushes updates through multiple notification backends. The application is deliberately lightweight yet modular, enabling developers to swap out core components—such as the LLM provider or storage engine—without touching the main codebase. Its architecture is designed for quick deployment (via Docker‑Compose) and easy customization through environment variables, making it a solid choice for teams that need a programmable feed pipeline.

Modular LLM integration

Flexible content retrieval

Multi‑channel notifications

Hybrid storage

Overview

Precis is a self‑hosted, extensibility‑oriented RSS reader built as a FastAPI monolith. It aggregates feeds, runs optional LLM‑based summarization, and pushes updates through multiple notification backends. The application is deliberately lightweight yet modular, enabling developers to swap out core components—such as the LLM provider or storage engine—without touching the main codebase. Its architecture is designed for quick deployment (via Docker‑Compose) and easy customization through environment variables, making it a solid choice for teams that need a programmable feed pipeline.

Key Features

  • Modular LLM integration – supports Ollama, OpenAI, and a no‑op null handler; developers can plug in new providers by implementing the defined interface.
  • Flexible content retrieval – built on requests for simple HTTP fetching and playwright for headless browser scraping, allowing complex site interaction when needed.
  • Multi‑channel notifications – matrix, Slack, Jira, ntfy, and a null handler; each channel implements the same interface so adding a new notifier is straightforward.
  • Hybrid storage – defaults to tinydb but offers a hybrid handler that stores metadata in LMDB and raw content as pickled files, keeping the DB lean while preserving full article bodies.
  • Theme support – Tailwind CSS + DaisyUI pages can be themed, enabling a consistent UI across deployments.

Technical Stack

  • Backend: Python 3.11, FastAPI for the API layer, Jinja2 templates for static pages.
  • Frontend: Purely static HTML served by FastAPI, styled with Tailwind CSS and DaisyUI; interactivity is minimal but can be expanded.
  • Storage: Embedded DBs (tinydb, lmdb) with optional hybrid mode; the design abstracts CRUD operations into a handler interface.
  • Notifications & LLMs: Each subsystem follows a common protocol; handlers expose simple send or summarize methods, making them interchangeable.
  • Containerization: A single Docker image is built via a Dockerfile; Docker‑Compose orchestrates the app and optional services like a local OpenAI/LLM provider.

Core Capabilities

  • Feed ingestion API – endpoints to add, update, and delete RSS feeds; developers can hook into these for automated feed discovery.
  • Summarization pipeline – configurable per‑feed or global, exposing a REST endpoint that returns the LLM’s output.
  • Notification hooks – webhooks for external services; each notification handler can be configured via environment variables.
  • Extensibility hooks – implement a new storage handler by defining the StorageHandler interface; similarly for LLMs and notifiers.

Deployment & Infrastructure

Precis is designed to run in a containerized environment, but can also be executed directly on any host with Python 3.11+.

  • Self‑hosting: A single docker compose up brings the application online; volumes expose CONFIG_DIR, DATA_DIR, and a storage mount for persistence.
  • Scalability: While the current monolith is single‑process, FastAPI’s async nature allows horizontal scaling behind a reverse proxy (e.g., Nginx). The embedded DBs are file‑based, so scaling reads is trivial; writes can be sharded by running multiple instances with separate data directories.
  • Resource footprint: Lightweight Python dependencies and a single container make Precis suitable for edge deployments or low‑resource servers.

Integration & Extensibility

  • Plugin system: The application’s architecture exposes clear interfaces; developers can drop new modules into the handlers/ package and register them via environment variables.
  • Webhooks: External services can POST to the summarization or notification endpoints, enabling CI/CD pipelines or custom dashboards.
  • Customization: Themes are CSS‑only; swapping a DaisyUI theme requires changing a single variable in the static assets.

Developer Experience

  • Configuration: All knobs are exposed as environment variables; the docker-compose.yml file demonstrates a sane default set.
  • Documentation: The README provides a concise architecture diagram, environment variable list, and example Docker‑Compose usage.
  • Community: While the project is small, its open‑source license and clear modularity invite contributions; issues can be triaged via the GitHub repo.

Use Cases

  1. Internal Knowledge Base – Companies can run Precis to aggregate industry feeds, summarize them with an LLM, and push daily digests to Slack or Jira.
  2. Research Automation – Academics can auto‑fetch conference RSS feeds, run summarization, and store results in a lightweight DB for quick reference.
  3. Edge‑Aware Notification System – Deploy Precis on a local server to receive real‑time updates from niche blogs and push them to Matrix rooms for remote teams.

Advantages

  • Performance: FastAPI’s async I/O and the hybrid storage keep latency low even with many feeds.
  • Flexibility: The handler interfaces let developers swap LLMs or notifiers without code changes.
  • Licensing: MIT‑licensed, allowing unrestricted commercial use and modification.
  • Self‑contained: No external database required; the embedded DBs simplify deployment for small teams.

In summary, Precis offers a developer‑friendly platform to build programmable feed pipelines, combine AI summarization, and deliver

Open SourceReady to get started?

Join the community and start self-hosting Precis today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
77
Technical Specs
Pricing
Open Source
Database
SQLite
Docker
Community
Supported OS
LinuxDocker
Author
leozqin
leozqin
Last Updated
Dec 15, 2024