{"id":23629612,"url":"https://github.com/leozqin/local-library","last_synced_at":"2026-04-12T02:33:37.534Z","repository":{"id":269909477,"uuid":"907924732","full_name":"leozqin/local-library","owner":"leozqin","description":"A dead-simple read-only filesystem based ePub library","archived":false,"fork":false,"pushed_at":"2025-01-09T00:47:51.000Z","size":1561,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T01:52:25.596Z","etag":null,"topics":["astrojs","docker","docker-com","ebooks","epub","fastapi","python","self-hosted","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/leozqin/local-library","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/leozqin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-12-24T16:02:26.000Z","updated_at":"2025-01-09T00:47:32.000Z","dependencies_parsed_at":"2024-12-27T05:30:18.027Z","dependency_job_id":null,"html_url":"https://github.com/leozqin/local-library","commit_stats":null,"previous_names":["leozqin/local-library"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leozqin%2Flocal-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leozqin%2Flocal-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leozqin%2Flocal-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leozqin%2Flocal-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leozqin","download_url":"https://codeload.github.com/leozqin/local-library/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239546818,"owners_count":19657031,"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":["astrojs","docker","docker-com","ebooks","epub","fastapi","python","self-hosted","typescript"],"created_at":"2024-12-28T01:16:16.235Z","updated_at":"2025-11-08T03:30:29.053Z","avatar_url":"https://github.com/leozqin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Local Library\nLocal Library is a simple read-only ebook library that indexes your `epub` ebooks against a read-only file system and provides a nice UI to browse and download them. For some more color on the intent and architecture of this application, [see this blog post](https://www.leozqin.me/posts/local-library/).\n\n![a screenshot of the main (and only) page of local-library](assets/library.png)\n\n# Running\n## Dev\nFirst set the `API_BASE_URL` environment variable to `http://localhost:8000`, either in your profile file, one-off, or using something like `direnv`.\n\nTo start the API server, in the repository root, create a fresh Python 3.12 virtual environment. Then, install the `requirements.txt` in that venv. Then, run `fastapi dev` to start the API server.\n\nTo start the web interface, first install nodejs 22. Then, navigate to `web` and run `npm install`. Finally, run `npm run dev` to start the web interface on port 4321.\n\nTo run both the API and web interface at the same time, you'll need to create separate terminal sessions, of course.\n\nIf you're using nix, you can install pre-reqs by doing `nix-shell -p nodejs_22 python312`.\n\n## Docker\nModify [the Compose stack](docker-compose.yml) to your heart's content, and then run `docker compose up` to start the app.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleozqin%2Flocal-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleozqin%2Flocal-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleozqin%2Flocal-library/lists"}