{"id":17358177,"url":"https://github.com/dadadel/ebooks","last_synced_at":"2025-09-14T15:40:29.592Z","repository":{"id":82047048,"uuid":"13523302","full_name":"dadadel/ebooks","owner":"dadadel","description":"A basic ebooks web application to browse your collection. Search, filter by letter, get book's informations, download it","archived":false,"fork":false,"pushed_at":"2022-05-09T18:16:22.000Z","size":23,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-15T00:37:26.149Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dadadel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-10-12T14:47:17.000Z","updated_at":"2024-11-29T13:34:40.000Z","dependencies_parsed_at":"2023-06-02T14:45:12.171Z","dependency_job_id":null,"html_url":"https://github.com/dadadel/ebooks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dadadel/ebooks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadadel%2Febooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadadel%2Febooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadadel%2Febooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadadel%2Febooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dadadel","download_url":"https://codeload.github.com/dadadel/ebooks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dadadel%2Febooks/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268876792,"owners_count":24322107,"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","status":"online","status_checked_at":"2025-08-05T02:00:12.334Z","response_time":2576,"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":[],"created_at":"2024-10-15T19:04:40.375Z","updated_at":"2025-08-05T10:18:40.229Z","avatar_url":"https://github.com/dadadel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"ebooks\n======\n\nThis is a very basic python WSGI web application to browse an ebook collection. \nAccepted formats are PDF and EPUB but you can easily add others.\n\nIt allows searching, filtering by letter, getting book's informations (author, description), and downloading.\nThe application is contained in a single python file. It is not really pythonist as it is made of basic functions and no class.\nBut my objective was to have a dirty basic program quickly working. And it does what it is supposed to.\nI would like to enhance it when I will have time.\n\n\nBefore starting:\n---------------\n\nThe python epub module is used so you must install it first:\n\n    sudo pip install epub\n\nYou must set your ebooks directory to the variable books_path in the ebook.py code.\nThen you need a python WSGI server to run the application.\nI'm serving the application using gunicorn via nginx. You can easily use any other alternative (e.g.: apache2 + mod_python).\n\n\n\nTo run it with Nginx and gunicorn:\n---------------------------------\n\nFirst you should install Nginx and gunicorn:\n\n    sudo apt-get install nginx gunicorn\n\nThen configure Nginx to enable a socket connection to gunicorn:\n\nopen file /etc/nginx/sites-enabled/default and add:\n\n    server {\n    ...\n    \n        location /ebooks/ {\n                proxy_pass http://unix:/tmp/gunicorn.sock;\n        }\n        \n    ...\n    }\n\n\nGo to the path containing your script ebooks.py and run gunicorn:\n\n    gunicorn -b unix:/tmp/gunicorn.sock --workers=2 ebooks:application\n\nBrowse your ebooks collection with a web browser:\n\ne.g.:\n\n    links2 http://127.0.0.1/ebooks\n\n(of course you can use Epiphany, Firefox, Chromium or any other browser of your choice.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdadadel%2Febooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdadadel%2Febooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdadadel%2Febooks/lists"}