MCPSERV.CLUB
Stump

Stump

Self-Hosted

Self‑hosted comics, manga and eBook server

Active(87)
1.6kstars
0views
Updated 19 days ago

Overview

Discover what makes Stump powerful

**Stump** is a self‑hosted digital library for comics, manga and other e‑books that exposes a modern REST API and an OPDS feed. Built entirely in Rust, it leverages the async web framework **Axum** for request handling, **Prisma‑Client‑Rust** as its ORM, and a React SPA for the front end. The stack is intentionally lightweight: Rust guarantees low runtime memory usage and high concurrency, while Axum’s composable middleware makes it straightforward to add authentication, rate‑limiting or logging. Prisma provides a type‑safe query layer over PostgreSQL (or SQLite in dev), allowing developers to reason about database schema changes with confidence.

Media ingestion

OPDS 2.0

REST API

Authentication

Overview

Stump is a self‑hosted digital library for comics, manga and other e‑books that exposes a modern REST API and an OPDS feed. Built entirely in Rust, it leverages the async web framework Axum for request handling, Prisma‑Client‑Rust as its ORM, and a React SPA for the front end. The stack is intentionally lightweight: Rust guarantees low runtime memory usage and high concurrency, while Axum’s composable middleware makes it straightforward to add authentication, rate‑limiting or logging. Prisma provides a type‑safe query layer over PostgreSQL (or SQLite in dev), allowing developers to reason about database schema changes with confidence.

Architecture

The codebase is split into several crates following a domain‑driven design. The core crate contains business logic and reusable modules (e.g., media parsing, OPDS generation). The apps folder holds the server binary (stump-server) and optional CLI tools. React is bundled with Vite and served by Axum’s static file handler, enabling a single‑binary deployment. Communication between the server and UI is purely HTTP/JSON; the client does not interact with Prisma directly, preserving a clean separation of concerns. All data models are generated by Prisma at compile time, so the type‑checker guarantees that API responses match the database schema.

Core Capabilities

  • Media ingestion: Scans a directory tree, extracts metadata from CBZ/CBR, EPUB and PDF files, and stores them in the database. The ingestion pipeline is fully asynchronous and can be triggered via a REST endpoint or a background job.
  • OPDS 2.0: Generates OPDS feeds for collections, reading lists and search results. Endpoints are paginated and support range headers for efficient streaming.
  • REST API: CRUD operations on books, collections, and users. The API is documented with OpenAPI annotations; tools like Swagger UI or Postman can generate client code automatically.
  • Authentication: Supports JWT‑based auth with role‑based access control, making it trivial to integrate with existing identity providers or build a custom login flow.

Deployment & Infrastructure

Stump ships as a pre‑built Docker image (aaronleopold/stump) that pulls in the Rust binary and a Node‑based React build. The image is minimal (≈200 MB) thanks to Rust’s static linking and the absence of a runtime. For bare‑metal deployments, building from source requires only rustc, cargo and a PostgreSQL instance. The application is stateless except for its database, which means horizontal scaling can be achieved by running multiple replicas behind a load balancer. Because the UI is served from the same binary, there are no separate front‑end containers to orchestrate.

Integration & Extensibility

Stump exposes a clean, versioned REST API that can be consumed by any HTTP client. Webhooks are planned for future releases, allowing external services (e.g., a CI pipeline that adds new comics) to react to events such as “book added” or “collection updated.” The plugin system is still in early stages, but the architecture encourages adding middleware or custom routes by extending the core crate. Developers can also fork the React client and replace components with custom UI elements without touching the backend.

Developer Experience

The repository follows a monorepo layout with clear separation of concerns, making it easy to navigate. Documentation is kept up‑to‑date in the docs/ folder, and the README contains a detailed developer guide. The community is active on Discord, where contributors can discuss feature requests or ask for help. Licensing under MIT removes any commercial barriers, allowing developers to embed Stump into proprietary products without additional costs.

Use Cases

  • Personal library server: Run Stump on a NAS to serve comics to multiple devices over LAN or VPN.
  • Small publisher backend: Expose a curated OPDS feed to partner readers while keeping control over distribution.
  • Research projects: Use the ingestion pipeline and search API to build analytics dashboards for reading habits.
  • Educational institutions: Host a digital collection of textbooks and comics with fine‑grained access control for students.

Advantages

Stump’s Rust foundation delivers high performance with low memory footprint, which is ideal for resource‑constrained environments. The combination of Axum and Prisma gives developers a type‑safe, async web stack that scales horizontally with minimal effort. Compared to other self‑hosted e‑book servers, Stump offers native OPDS support out of the box and a modern React UI that can be customized or replaced. The open‑source MIT license, active community, and clear documentation make it a compelling choice for developers who need a reliable, extensible digital library solution without vendor lock‑in.

Open SourceReady to get started?

Join the community and start self-hosting Stump 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
1.6k
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Official
Supported OS
Docker
Author
stumpapp
stumpapp
Last Updated
19 days ago