diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md index d11d4c6..c367cd4 100644 --- a/.github/SUPPORT.md +++ b/.github/SUPPORT.md @@ -83,3 +83,4 @@ Please contact us using any of the options below for support. Please be prepared ### Live Support Options * Discord: [https://discord.gg/H9TbNJS](https://discord.gg/H9TbNJS) * IRC: [irc.freenode.net/pyShelf](irc://freenode.net/pyshelf) +* Matrix.org: [#irc_#pyshelf:pyshelf.com](https://app.element.io/#/room/#irc_#pyshelf:pyshelf.com) diff --git a/README.md b/README.md index 3cfe4fe..5fd2587 100755 --- a/README.md +++ b/README.md @@ -7,26 +7,34 @@ ![pyShelf 0.6.0 newui](https://github.com/th3r00t/pyShelf/raw/development/src/interface/static/img/pyShelf_frontend_0_2_0.png) -### You dont need a X server to host a website, or your Movie & Tv collection, so why should you need one to host ebooks? -Other solutiions require you to have access to an X server to at the very least generate your book database, pyShelf doesnt.We aim to provide a fully featured ebook server with minimal requirements, and no reliance on X whatsoever. +### You dont need an X server to host a website, or your Movie & Tv collection, so why should you need one to host ebooks? + +_Other solutiions require you to have access to an X server to at the very least generate your book database, pyShelf doesnt.We aim to provide a fully featured ebook server with minimal requirements, and no reliance on X whatsoever._ + +Follow or influence development @

+ Discord + | IRC + | Matrix.org +

-Follow or influence development @

Discord | IRC freenode.net @ #pyshelf

## Current Features -* Custom Installer works only on Arch Based Distros + * Recursive Scanning * Fast database access -* Django based frontend +* [Django](https://www.djangoproject.com/) based frontend * Basic seaching via a SearchVector of author, title, & file_name fields. * Ebook Downloading * Collections ## Currently Supported Formats + * epub * mobi - ## 0.6.0 Patch Notes. + # New Features + * .mobi Yep mobis are now a thing! * Result set ordering * You can now choose to order your results: @@ -49,28 +57,31 @@ Follow or influence development @

pyShelf Installation Video ## Further Installation & Support Information + * [SUPPORT.md](https://github.com/th3r00t/pyShelf/blob/development/.github/SUPPORT.md) ### Pre-req Dependencies -* gcc -- This will be installed by the new pre-installer script if its binary is not detected at /usr/bin/gcc -Users on distros other then Arch should install gcc via their systems package manager prior to -running the installer. -* Python3 + +* gcc +* python3 * pip # Installation -This project is currently targeted towards Network Administrators, and other home -enthusiasts whom I assume will know how to setup a Django app, and a -Postgres server. -Once your environment is ready very little is required to get the system up and running +This project is currently targeted towards Network Administrators, and other home +enthusiasts whom I assume will know how to setup a [Django](https://www.djangoproject.com/) app, and a +[PostgreSQL](https://www.postgresql.org/) server. + +Once your environment is ready very little is required to get the system up and running: * From the main directory * setup configurations as discussed in [SUPPORT.md](https://github.com/th3r00t/pyShelf/blob/development/.github/SUPPORT.md) - * `pip install -r requirments.txt` + * `pip install -r requirements.txt` * `cd src` * `python manage.py migrate` * `cd ..` @@ -78,23 +89,8 @@ Once your environment is ready very little is required to get the system up and * `./makecollections` * Browse to the site as defined in your apache | nginx config -## Included installer -pyShelf Installation Video +## Installation & Support Information -The installer will only run correctly on arch based distros. This could be -easily rectified to include other package managers, Members of the community -are welcome to dig into the installer source and patch in support -for other package managers. - -There is some support for detection of the aptitude package manager -installation already present in the source now, however it is not complete and -should not be relied upon to be present in future releases unless completed by -a member of the community, - -The installer will walk you through all the configurations required by pyShelf to -run if you are running on Arch linux. - -## Further Installation & Support Information * [SUPPORT.md](https://github.com/th3r00t/pyShelf/blob/development/.github/SUPPORT.md) ## Development @@ -110,56 +106,72 @@ _Before advancing version numbers be sure to set PROJECT_NUMBER in doxygen.conf ## Configuration -All configuration is now handled by the installer. - -Running via the Django test server might be possible, albeit not recomended. +Running via the [Django](https://www.djangoproject.com/) test server might be possible, albeit not recomended. ## Docker -Installation for Docker is handled by docker-compose +The official Docker image for pyShelf is [`raelonmasters/pyshelf`](https://hub.docker.com/r/raelonmasters/pyshelf). The easiest way to get pyShelf running is through `docker-compose`. Here is an example `docker-compose.yml`: -It will spin up two containers: one postgres, one for the Django application +``` +version: "3.7" -Edit [docker/.env](docker/.env) +services: + db: + image: "postgres" + environment: + - "POSTGRES_PASSWORD=pyshelf" + - "POSTGRES_USER=pyshelf" + - "POSTGRES_DB=pyshelf" + volumes: + - "pgdata:/var/lib/postgresql/data/" -`docker-compose -f docker/docker-compose.yml --env-file=docker/.env up -d` + pyshelf: + image: "raelonmasters/pyshelf" + ports: + - "8080:8000" + volumes: + - "${LOCAL_BOOK_DIR}:/books" + depends_on: + - db -`docker exec -it -d docker_pyshelf_1 python3 manage.py migrate` +volumes: + pgdata: +``` -`docker exec -it -d docker_pyshelf_1 python3 manage.py runserver 0.0.0.0:8000` +You'll also need a `.env` file wich sets the `LOCAL_BOOK_DIR` variable, for example: -IMPORT BOOKS +``` +LOCAL_BOOK_DIR=/home/someone/books +``` -Once the .epub files are in the directory specified in [docker/.env](docker/.env) +The Docker image is still new, so there could still be some issues and missing features. Feel free to create a bug-issue when you encounter a bug. Development of the Docker image is discussed in https://github.com/th3r00t/pyShelf/pull/53 . Currently the database needs to be [PostgreSQL](https://www.postgresql.org/) with the account details shown in the example `docker-compose.yml` . -`docker exec -it docker_pyshelf_1 /bin/bash` +## In Progress -`cd /usr/src/app/ && python3 importBooks` +### Organizational tools. -### Docker Future Enhancements - -- [ ] Change method of importing books ssibly cron or using the Django code -- [ ] Look into having the migration work without having to manually execute - - -### In Progress - -#### Organizational tools. - [x] Automated Collections - [ ] Manual Collections - [ ] Books Removal - [ ] Access Restrictions - [ ] Metadata Manipulation - [ ] Others? -#### Improved cover image storage, and acquisition. -#### OPDS Support -#### Support for other formats + +### Improved cover image storage, and acquisition. + +### OPDS Support + +### Support for other formats + - [x] .mobi - [ ] .pdf - [ ] .cbz - [ ] .zip (Zipped book folders, is this a new idea? (Consider storing your library folders zipped and retrieving a book on demand)) -### Future Goals -#### Terminal Backend for catalogue maintenance -#### Calculate page count from total characters +## Future Goals + +### Terminal Backend for catalogue maintenance + +### Calculate page count from total characters + * (Thanks to @Fireblend for the idea) https://github.com/th3r00t/pyShelf/issues/3 diff --git a/docker/README.md b/docker/README.md index 473e4ec..6137a27 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,9 +1,6 @@ -Use `docker-compose -f ./docker/docker-compose.yml up --build` in the project root to start both pyshelf and the database. - -Use `docker build -t pyshelf -f ./docker/Dockerfile .` in the project root to build the pyshelf image. +Use `docker build -t raelonmasters/pyshelf -f ./docker/Dockerfile .` in the project root to build the pyshelf image. Make sure the following files are in sync: * config.json -* pyshelf_nginx.conf -* docker-compose.yml +* docker/pyshelf_nginx.conf * uwsgi.ini \ No newline at end of file