Skip to content
This repository was archived by the owner on Sep 10, 2025. It is now read-only.

Latest commit

Β 

History

History
70 lines (59 loc) Β· 2.47 KB

File metadata and controls

70 lines (59 loc) Β· 2.47 KB

eBookShelf πŸ“š – Personal eBook Hosting Platform

A self-hosted platform for organizing, hosting, and sharing your personal eBook collection. Built with React, TypeScript, and PocketBase, it offers a clean UI, secure authentication, and an intuitive reading experience.

⚠️ Important ⚠️

When redeploying the stack or upgrading image versions you must download the backup file from the Admin Dashboard as your data will be overwritten with defaults!

⚠️ Important ⚠️

Default Admin Login:
πŸ“§ Email: admin@example.com
πŸ”‘ Password: examplepassword

πŸ”Ή Change admin credentials immediately!

  1. Go to http://your-ip:8090/_/
  2. Click the bottom-left icon
  3. Select Manage Super Users
  4. Update the email and password

✨ Features

βœ… Browse by Category – Navigate books easily with a responsive UI
βœ… In-Browser PDF Reader – Read PDFs directly without downloads
βœ… Admin Dashboard – Manage books, categories, and users
βœ… Upload Support – Add PDFs and cover images seamlessly
βœ… Secure Authentication – Admin-only access for management

Tech Stack

πŸ–₯ Frontend: React, TypeScript, Tailwind CSS, Vite
βš™ Backend: Express server with PocketBase
πŸ“‚ Database: PocketBase (embedded database + backend)
πŸ“– PDF Viewer: react-pdf
πŸš€ Routing: React Router
🎨 Icons: Lucide React

Deployment

eBookShelf is lightweight and easy to deploy using Docker.

services:
  pocketbase:
    image: elestio/pocketbase:v0.25.7
    container_name: pocketbase
    restart: unless-stopped
    user: 0:0
    ports:
      - "8090:8090"
    volumes:
      - ebookshelf:/pb_data

  ebookshelf:
    image: chanceium/ebookshelf:latest
    container_name: ebookshelf
    restart: unless-stopped
    ports:
      - "8091:3001"
    environment:
      - NODE_ENV=production

volumes:
  ebookshelf:

Access

Contributing

Contributions and feature suggestions are welcome! Open an issue or PR on GitHub.

Home Dashboard

image info

Admin Dashboard

image info