8000 GitHub - rodrigoricky/stumpp: A free and open source comics, manga and digital book server with OPDS support (WIP)
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

rodrigoricky/stumpp

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Stump's logo. Description: A young individual sitting on a tree stump reading a book. Inspired by Stump's creator's childhood, where a large amount of his time was spent sitting on a tree stump reading his comic books.
Awesome Self-Hosted Docker Pulls

Stump is a free and open source comics, manga and digital book server with OPDS support, created with Rust, Axum, Prisma and React.

Screenshot of Stump

Table of Contents

🚧 Disclaimer 🚧: Stump is under active development and is an ongoing WIP. Anyone is welcome to try it out, but DO NOT expect a fully featured or bug-free experience. I will likely flatten the migrations immediately prior to the 0.1.0 release, which will break existing Stump databases. If you'd like to contribute and help expedite Stump's first release, please review the developer guide.

Roadmap πŸ—Ί

The following items are the major targets for Stump's first release:

  • πŸ“ƒ Full OPDS + OPDS Page Streaming support
  • πŸ“• EPUB, PDF, and CBZ/CBR support
  • πŸ“š Organize libraries with collections and reading lists
  • πŸ” Role-based access-control with managed user accounts
  • πŸš€ Easy setup and deployment using Docker or bare metal
  • πŸ‘€ Fully responsive, built-in UI with a dark mode
  • πŸƒ Low resource utilization with excellent performance
  • 🧰 Easily consumable and documented REST API, so community tools and scripts can interact with Stump
  • 🌏 Language support (look here)
  • 🌈 And more!

Things you can expect to see after the first release:

  • πŸ–₯️ Cross-platform desktop app (Windows, Mac, Linux)
  • πŸ“– Tachiyomi support
  • πŸ“± In-house mobile app (Android, iOS)
  • πŸ”Ž Versitile full-text search (blocked by prisma#9414)
  • πŸ‘₯ Configurable book clubs (see this issue)

Feel free to reach out if you have anything else you'd like to see!

Getting Started πŸš€

Stump isn't ready for normal usage yet. To give it a spin, it is reccommended to try the nightly Docker image. If you're interested in development, or trying it from source, you can follow the developer guide.

For more information about getting started, check out the guides available on the Stump website.

Developer Guide πŸ’»

Contributions are very welcome! Please review the CONTRIBUTING.md before getting started.

A quick summary of the steps required to get going:

  1. Install pnpm, rust and node.

    • If you're running Windows, you will need Visual C++
    • If you're running macOS on Apple Silicon, you'll need to install Rosetta
  2. Install cargo-watch

  3. Run the setup script:

    ./scripts/system-setup.sh

    This isn't strictly necessary, and is mostly beneficial for Linux users (it installs some system dependencies). Feel free to skip this step if you'd like, and instead just run:

    pnpm run setup

    This will build the React app, generate the Prisma client, and generate the Rust-TypeScript types. To do any of these individually, you can run:

     # build the React app
     moon run web:build
     # generate the Prisma client and Rust-TypeScript types
     moon run codegen:generate
  4. Start one of the apps:

    I use moonrepo for Stump's repository management. A few example commands are:

    # run the webapp + server
    moon run server:dev web:dev
    # run the desktop app + server
    moon run server:start desktop:dev
    # run the docs website
    moon run docs:dev

    This isn't a requirement though! You can also run the apps directly with pnpm:

    # run the webapp + server
    pnpm dev:web
    # run the desktop app + server
    pnpm dev:desktop
    # run the docs website
    pnpm docs dev

    Or just cargo for the server:

    cargo run --package stump_server --bin stump_server

And that's it!

Where to start?

If you aren't sure where to start, I recommend taking a look at open issues. You can also check out the milestones page for a more curated list of issues that need to be addressed.

In general, the following areas are good places to start:

  • Translation, so Stump is accessible to as many people as possible
    • Crowdin is being used for translations
  • Writing comprehensive tests
  • Designing UI elements/sections or improving the existing UI/UX
  • Docker build optimizations, caching, etc
  • CI pipelines, automated releases and release notes, etc
  • And lots more!

Run in Postman

Project Structure πŸ“¦

Stump has a monorepo structure managed by pnpm workspaces and moonrepo:

/apps

  • desktop: A React+Tauri application
  • docs: A NextJS application for the Stump documentation site
  • mobile: A React Native application
  • server: An Axum HTTP server
  • web: A React application

/core

  • core: A Rust crate containing Stump's core functionalities

/crates

  • cli: A CLI library used in the server app
  • codegen: A small rust app that handles all of the code generation for Stump
  • integrations: A rust library containing integrations with other notification services
  • prisma-cli: A small wrapper rust app to run the Prisma CLI

/packages

  • api: All of the API functions used by the client package
  • client: React-query config, hooks, and other client-side utilities
  • components: Shared React components for the web and desktop applications
  • interface: A React component responsible for the main UI layout for the web and desktop applications
  • types: Shared TypeScript types for interfacing with Stump's core and API

Similar Projects πŸ‘―

There are a number of other projects that are similar to Stump, it certainly isn't the first or only digital book media server out there. If Stump isn't for you, or you want to check out similar projects in the rust and/or self hosting spaces, consider checking out these other open source projects:

Acknowledgements πŸ™

  • Komga is a huge inspiration for Stump, an amazing comics/manga media server written in Kotlin.
  • Brendonovich for building prisma client rust, which allows me to use Prisma with Rust. Stump originally used SeaORM, but the DX simply can't compare to Prisma.

About

A free and open source comics, manga and digital book server with OPDS support (WIP)

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 51.7%
  • Rust 46.1%
  • Shell 0.9%
  • JavaScript 0.5%
  • Dockerfile 0.5%
  • Nix 0.1%
  • Other 0.2%
0