{"id":20844187,"url":"https://github.com/alessandrojean/tankobon","last_synced_at":"2025-05-09T01:47:48.006Z","repository":{"id":155726133,"uuid":"609405137","full_name":"alessandrojean/tankobon","owner":"alessandrojean","description":"[WIP] Self-hosted physical book collection manager.","archived":false,"fork":false,"pushed_at":"2024-01-04T23:54:58.000Z","size":9104,"stargazers_count":33,"open_issues_count":16,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-09T01:47:40.486Z","etag":null,"topics":["api","book-collection","book-manager","books","comics","kotlin","manga","self-hosted","spring-boot","tailwindcss","vuejs"],"latest_commit_sha":null,"homepage":"https://alessandrojean.github.io/tankobon/","language":"Vue","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/alessandrojean.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"alessandrojean","ko_fi":"alessandrojean"}},"created_at":"2023-03-04T04:22:24.000Z","updated_at":"2025-03-25T07:49:59.000Z","dependencies_parsed_at":"2024-01-05T01:20:34.716Z","dependency_job_id":null,"html_url":"https://github.com/alessandrojean/tankobon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alessandrojean%2Ftankobon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alessandrojean%2Ftankobon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alessandrojean%2Ftankobon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alessandrojean%2Ftankobon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alessandrojean","download_url":"https://codeload.github.com/alessandrojean/tankobon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253176440,"owners_count":21866142,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api","book-collection","book-manager","books","comics","kotlin","manga","self-hosted","spring-boot","tailwindcss","vuejs"],"created_at":"2024-11-18T02:08:49.404Z","updated_at":"2025-05-09T01:47:47.988Z","avatar_url":"https://github.com/alessandrojean.png","language":"Vue","funding_links":["https://github.com/sponsors/alessandrojean","https://ko-fi.com/alessandrojean"],"categories":[],"sub_categories":[],"readme":"# Tankobon\n\nTankobon is a free and open source physical book collection manager,\ncreated with [Kotlin], [Spring Boot] and [Vue.js].\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture style=\"width: 90%\"\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./.github/images/book-demo-img-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./.github/images/book-demo-img-light.png\"\u003e\n    \u003cimg alt=\"Screenshot of Tankobon\" src=\"./.github/images/book-demo-img-dark.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003e **Warning**\n\u003e Tankobon is under active development and is an ongoing **WIP**.\n\u003e Anyone is welcome to try it out, but do not expect a fully featured,\n\u003e bug-free experience. Some features will be missing and/or broken.\n\u003e It's not recommended to be used in production yet. Stay tuned\n\u003e for any news and future stable releases.\n\n[Kotlin]: https://kotlinlang.org/\n[Spring Boot]: https://spring.io/\n[Vue.js]: https://vuejs.org/\n\n## Features\n\nThe following items are the major features aimed to be added to\nTankobon on the initial releases.\n\n- Generic book support, including manga and comics;\n- Import books by ISBN from Open Library, Google Books™ and others;\n- Publishers, people, stores, groups and other related entities;\n- Multiple users, shared libraries and administration tools;\n- Cover search by ISBN, code or book title;\n- Book readings history tracking;\n- Search with advanced query syntax;\n- Upload custom covers and pictures;\n- Monthly statistics of expense.\n\nThe project is open to suggestions and ideas, so feel free\nto reach out if you have anything you'd like to see.\n\n## Download\n\nGet the tool from our [releases page] or through [Docker].\n\n[releases page]: https://github.com/alessandrojean/tankobon\n[Docker]: #running-through-docker\n\n## Getting started\n\nTankobon isn't ready for normal usage yet. For now, you can follow the\n[Contributing] section to build from source and run locally or try a\nnightly Docker image build.\n\n[Contributing]: #contributing\n\n### Running through Docker\n\nThe nightly images are available in [Docker Hub] and [GitHub Packages].\nYou can run manually by using the `docker` command or by using [Docker Compose].\n\n\u003cdetails\u003e\n  \u003csummary\u003eCommand-line instructions\u003c/summary\u003e\n\n  1. Pull the Docker image.\n\n     ```console\n     $ docker pull alessandrojean/tankobon:nightly\n     ```\n\n     If you want to use the image from [GitHub Packages], use the command below instead.\n\n     ```console\n     $ docker pull ghcr.io/alessandrojean/tankobon:nightly\n     ```\n  2. Start a Docker container in detached mode.\n\n     ```\n     $ docker run -d \\\n         -p 25565:8080 \\\n         -v /path/to/user_home/.tankobon:/root/.tankobon \\\n         alessandrojean/tankobon:nightly\n     ```\n  3. Open http://localhost:25565 on a browser and proceed with the claim setup\n     to create the first administrator user.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eDocker Compose instructions\u003c/summary\u003e\n\n  1. Create a `docker-compose.yml` file.\n\n     ```yaml\n     version: '3.9'\n     services:\n       tankobon:\n         # To use the GitHub Packages image, use the line below instead.\n         # image: ghcr.io/alessandrojean/tankobon:nightly\n         image: alessandrojean/tankobon:nightly\n         ports:\n           # Tankobon will be available at port 25565.\n           - '25565:8080'\n         volumes:\n           # The app files will be available outside the container.\n           - /path/to/user_home/.tankobon:/root/.tankobon\n     ```\n  2. Start a Docker container in detached mode.\n\n     ```console\n     $ docker-compose up -d\n     ```\n  3. Open http://localhost:25565 on a browser and proceed with the claim setup\n     to create the first administrator user.\n\u003c/details\u003e\n\n[Docker Hub]: https://hub.docker.com/r/alessandrojean/tankobon\n[GitHub Packages]: https://github.com/alessandrojean/tankobon/pkgs/container/tankobon\n[Docker Compose]: https://docs.docker.com/compose/\n\n## Contributing\n\nContributions are very **welcome**! Please review the [CONTRIBUTING.md]\nguide before getting started.\n\n\u003cdetails\u003e\n  \u003csummary\u003eDevelopment instructions\u003c/summary\u003e\n\n  1. Install [pnpm], [Node.js] and [JDK 17].\n  2. Run the server:\n\n    ```console\n    $ ./gradlew bootRun --args='--spring.profiles.active=dev,localdb'\n    ```\n  3. Run the client:\n\n    ```console\n    $ pnpm dev\n    ```\n\n  And that's it! Open [http://localhost:8081](http://localhost:8081) in a browser\n  and follow the claim setup at the first time to create the administrator user.\n\n  If you use IntelliJ Idea, you can use some run configurations provided with\n  the project that will make easier to run the application within specific\n  contexts such as `localdb`, `noclaim` and `dev`.\n\u003c/details\u003e\n\n[pnpm]: https://pnpm.io/\n[Node.js]: https://nodejs.org/\n[JDK 17]: https://openjdk.org/projects/jdk/17/\n[CONTRIBUTING.md]: CONTRIBUTING.md\n\n## Documentation\n\nCheck the documentation at the website (to be written).\n\n### API\n\nFor the API there is a OpenAPI V3 documentation included with the server.\nIt can be accessed through `/docs/swagger-ui.html` or `/docs/redoc.html`\nfor a graphical experience, or through `/docs/openapi-v3` or\n`/docs/openapi-v3.yaml` to get the Tankobon OpenAPI V3 specification\nin a raw format.\n\n## Project structure\n\nTankobon has a monorepo structure.\n\n### `/server`\n\nThe core Spring Boot backend that powers up Tankobon.\n\n### `/client`\n\nThe standard Vue.js web client that consumes the API.\n\n## Acknowledgements\n\n[Komga] project structure is the main inspiration for the Tankobon\ncode structure. Although it's a self-hosted tool with a different\npurpose, it's definetely worth taking a look into it.\n\n[Komga]: https://github.com/gotson/komga/\n\n## License\n\n\u003e You can check out the full license [here](LICENSE).\n\nThis repository is licensed under the terms of the **MIT** license.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falessandrojean%2Ftankobon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falessandrojean%2Ftankobon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falessandrojean%2Ftankobon/lists"}