goniszewski / grimoire

Bookmark manager for the wizards πŸ§™
https://grimoire.pro
MIT License
1.75k stars 53 forks source link
bookmarks bookmarks-manager pocketbase self-hosted svellte sveltekit tailwindcss typescript
Grimoire Logo

Grimoire

Bookmark manager for the wizards πŸ§™

GitHub License GitHub Actions Workflow Status GitHub Release Docker Pulls


[!IMPORTANT] This application is undergoing a comprehensive overhaul to simplify its architecture, deliver an enhanced user experience, and have a more efficient development cycle.

Read the Refactoring and streamlining effort for more information.

Glimpse into the magical book of your forbidden knowledge - Grimoire! πŸ“–πŸ’«

Unleash your inner sorcerer and conquer the chaos of bookmarks! With Grimoire, you'll have a bewitching way to store and sort your enchanted links.

But wait, there's more!

Transmute your saved pages into juicy content snippets with our mystical extraction feature. Embrace the magic, tame the clutter, and let Grimoire be your mystical companion in the vast library of the web.

It's time to conjure up some organization! πŸ“šβœ¨

Features

Screenshots

Light Mode Dark Mode
Only unread Show only unread Adding new bookmark Adding new bookmark
User Profile view User Profile view Bookmark details Bookmark details

More screenshots can be found in the screenshots directory.

Installation

Run using Docker Compose (recommended) ### Prerequisites - [Docker](https://docs.docker.com/get-docker/) - [Docker Compose](https://docs.docker.com/compose/install/) ### Steps ```bash # Clone the repository git clone https://github.com/goniszewski/grimoire # Rename the `.env.example` file to `.env` # "mv .env.example .env" on Linux/MacOS, "ren .env.example .env" on Windows # [RECOMMENDED] Update the `.env` to set the initial admin user credentials # (admins are separate from regular users) # Build and run the containers docker compose up ```

[!NOTE] For the recommended setup, only the docker-compose.yml, .env.example files and the pb_migrations/ directory (containing the migration files) are needed.

Run app using Node + Pocketbase using Docker Compose ### Prerequisites - [Docker](https://docs.docker.com/get-docker/) - [Docker Compose](https://docs.docker.com/compose/install/) - [Node.js](https://nodejs.org/en/download/) - [PNPM](https://pnpm.io/installation) ### Steps ```bash # Clone the repository git clone https://github.com/goniszewski/grimoire # Rename the `.env.example` file to `.env` # "mv .env.example .env" on Linux/MacOS, "ren .env.example .env" on Windows # [RECOMMENDED] Update the `.env` to set the initial admin user credentials # (admins are separate from regular users) # Install the dependencies pnpm i # Run the Pocketbase container using Docker Compose and start the app chmod +x ./run-dev.sh && ./run-dev.sh ```
Run app using Node + standalone Pocketbase ### Prerequisites - [Node.js](https://nodejs.org/en/download/) - [PNPM](https://pnpm.io/installation) - [Pocketbase](https://github.com/pocketbase/pocketbase?tab=readme-ov-file#use-as-standalone-app) ### Steps ```bash # Clone the repository git clone https://github.com/goniszewski/grimoire # Rename the `.env.example` file to `.env` # "mv .env.example .env" on Linux/MacOS, "ren .env.example .env" on Windows # [RECOMMENDED] Update the `.env` to set the initial admin user credentials # (admins are separate from regular users) # Move the pocketbase executable to the project root directory and run it ./pocketbase serve # Install the dependencies pnpm i # Build and start the app pnpm build && node -r dotenv/config build # To start the app again, just run `node -r dotenv/config build` ```

[!TIP] Although the above setups are intended for development, they are also suitable for daily use. For a better experience, it is recommended to use a Node.js process manager, such as PM2.

Development

Check out the development guide to learn how to set up the project for development.

Roadmap

We're open to suggestions and feature requests! If you have an idea for a feature, please open an issue or start a discussion.

Contributing

If you want to contribute to the project, please read the contributing guide.

License

This project is licensed under the MIT License.

Credits

Special thanks to: @extractus/article-extractor, DaisyUI, Fuse.js, MetaScraper, PocketBase, sanitize-html, SvelteKit, Svelte Select, Svelte French Toast, Tailwind CSS