{"id":20469926,"url":"https://github.com/rooyca/milibre-personal-library","last_synced_at":"2026-05-05T08:35:54.019Z","repository":{"id":160779365,"uuid":"625756180","full_name":"Rooyca/milibre-personal-library","owner":"Rooyca","description":"MiLibre - A simple command line tool to manage your book library.","archived":false,"fork":false,"pushed_at":"2023-05-08T21:51:04.000Z","size":4035,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-03T12:37:15.571Z","etag":null,"topics":["books","docker-image","library","library-management-system","library-project","mongodb"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rooyca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-10T03:09:39.000Z","updated_at":"2023-04-10T03:17:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b54d721-13ba-4ce5-974c-ce128825989b","html_url":"https://github.com/Rooyca/milibre-personal-library","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rooyca/milibre-personal-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rooyca%2Fmilibre-personal-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rooyca%2Fmilibre-personal-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rooyca%2Fmilibre-personal-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rooyca%2Fmilibre-personal-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rooyca","download_url":"https://codeload.github.com/Rooyca/milibre-personal-library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rooyca%2Fmilibre-personal-library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32642273,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"online","status_checked_at":"2026-05-05T02:00:06.033Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["books","docker-image","library","library-management-system","library-project","mongodb"],"created_at":"2024-11-15T14:10:55.688Z","updated_at":"2026-05-05T08:35:53.972Z","avatar_url":"https://github.com/Rooyca.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MiLibre-cli\n\nWelcome to `Mi-Libre` - a CLI app designed for book lovers!\n\nWith Mi-Libre, you can have a personal library accessible from anywhere*. You can store all your books in the cloud and access them at any time. The metadata of each book is stored in MongoDB, which guarantees high availability and scalability. This means that Mi-Libre can handle large amounts of data without issues.\n\nMi-Libre also allows you to add tags to each book to facilitate the search and organization of your virtual library.\n\n![GIF](gif_example.gif)\n\n## Table of Contents\n\n- [Installation](#installation)\n\t- [Docker](#docker)\n\t- [Manual](#manual)\n\t\t- [Requirements](#requirements)\n\t\t- [Install dependencies](#install-dependencies)\n\t\t- [Configure MongoDB](#configure-mongodb)\n\t\t- [Run the Application](#run-the-application)\n- [Usage](#Usage)\n\t- [Adding a Book](#adding-a-book)\n\t- [Showing a Book](#showing-a-book)\n\t- [Updating a Book](#updating-a-book)\n\t- [Deleting a Book](#deleting-a-book)\n\t- [Addign a list of Books](#addign-a-list-of-books)\n\t- [Searching Books](#searching-books)\n- [FAQ](#FAQ)\n\t- [What if I don't want to upload my books to the cloud?](#what-if-i-dont-want-to-upload-my-books-to-the-cloud)\n\n- [Info](#info)\n\n\n# Installation\n\n## Docker \n\n- To run the script in Docker, use the following command:\n\n```bash\ndocker run -v $(pwd)/.env:/code/app/.env -v ./Books/:/code/app/Books --network host -it --rm milibre:alphine -h\n```\n\nReplace `$(pwd)/.env` with the path to your `.env` file, and `./Books/` with your books folder.\nThe `-h` flag is optional, it will display the help message. You can use any other flag to run the script.\n\n\u003e Your `.env` file should look like [this](.env.example).\n\n\n## Manual\n\n\n### Requirements\n\n- Python 3.6+\n- MongoDB 4.2+\n- BackBlaze account (optional)\n- MongoDB Atlas account (optional)\n\n### Install dependencies\n\n1. Clone this repository:\n\n```bash\ngit clone https://github.com/Rooyca/milibre-personal-library\n```\n\n2. Install the required packages:\n\n```bash\npip install -r requirements.txt\n```\n\n### Configure MongoDB (optional)\n\n1. Run MongoDB with Docker:\n\n```bash\ndocker run -d -p 27017:27017 --name mongodb mongo\n```\n\n2. Edit the connection string format to the database in the `milibre.py` file.\n\n### Run the Application\n\n```bash\npython milibre.py -h\n```\n\n# Usage\n\n\u003cdetails\u003e\n\t\u003csummary\u003eClick to show usage (--help)\u003c/summary\u003e\n\n\n\tusage: milibre.py [-h] -m {add,auth,show,list,search,delete,update} [-t TITLE] [-a AUTHOR] [-n NUMBER] [-s STATUS]\n\t                  [-i ID] [-f FILE] [-md MAX_DOCS] [-sb SORT_BY] [-sq SEARCH_QUERY]\n\n\tMiLibre - A simple command line tool to manage your book library.\n\n\toptions:\n\t  -h, --help            show this help message and exit\n\t  -m {add,auth,show,list,search,delete,update}, --mode {add,auth,show,list,search,delete,update}\n\t                        Mode (add, auth, update, delete, list, search, show)\n\t  -t TITLE, --title TITLE\n\t                        Book title\n\t  -a AUTHOR, --author AUTHOR\n\t                        Book author\n\t  -n NUMBER, --number NUMBER\n\t                        Number of results to display (default: 1)\n\t  -s STATUS, --status STATUS\n\t                        Status of the book (default: unread)\n\t  -i ID, --id ID        Book ID\n\t  -f FILE, --file FILE  File with book data. File format: title, author, status\n\t  -md MAX_DOCS, --max_docs MAX_DOCS\n\t                        Number of documents to display\n\t  -sb SORT_BY, --sort_by SORT_BY\n\t                        Sort documents by this field in this order [A: Ascending, D: Descending]. (default: _id A)\n\t  -sq SEARCH_QUERY, --search_query SEARCH_QUERY\n\t                        Search query, example: \"title:Karamasov\"\n\n\u003c/details\u003e\n\n\n\n## Adding a Book\n\nTo add a book to your library, use the following command:\n\n```bash\npython milibre.py -m add -t \"Book Title\" -a \"Author Name\" -s \"unread\" -f \"path/to/file\"\n```\n\nThis command will upload the file to BackBlaze and store the book metadata in the MongoDB database.\n\n## Showing a Book\n\nTo show a book, use the following command:\n\n```bash\npython milibre.py -m show -i \u003cbook_id\u003e\n```\n\nThis command will display the metadata for the specified book.\n\n## Updating a Book\n\nTo update a book's metadata, use the following command:\n\n```bash\npython milibre.py -m update -i \u003cbook_id\u003e\n```\n\nThis command will update all the fields for the specified book.\n\n\n## Deleting a Book\n\nTo delete a book from your library, use the following command:\n\n```bash\npython milibre.py -m delete -i \u003cbook_id\u003e\n```\n\nThis command will delete the specified book from your library.\n\n## Addign a list of Books\n\nTo add a list of books to your library, use the following command:\n\n```bash\npython milibre.py -m list -l \"path/to/file_list\"\n```\n\nThis command will add the books specified in the file list.\n\n## Searching Books\n\nTo search for a book in your library, use the following command:\n\n```bash\npython milibre.py -m search -sq \"title:Book Title\"\n```\n\nThis command will display a list of books that match the search query.\n\n# FAQ\n\n### What if I don't want to upload my books to the cloud?\n\nYou can still use Mi-Libre to manage your book metadata and access it from your mobile device or computer.\n\n# Info\n\n- The first time you upload a file to BackBlaze, you need to authenticate using the following command:\n\n```bash\npython milibre.py -m auth\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frooyca%2Fmilibre-personal-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frooyca%2Fmilibre-personal-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frooyca%2Fmilibre-personal-library/lists"}