Merge branch 'development' into mobi

This commit is contained in:
th3r00t
2020-06-01 09:12:10 -04:00
committed by GitHub
8 changed files with 53 additions and 14 deletions

1
.gitignore vendored
View File

@@ -125,7 +125,6 @@ dmypy.json
# End of https://www.gitignore.io/api/python # End of https://www.gitignore.io/api/python
0 0
config.backup.json config.backup.json
create_db.sql
uwsgi.ini uwsgi.ini
installer.log installer.log
pyshelf_nginx.conf pyshelf_nginx.conf

20
Dockerfile vendored Normal file
View File

@@ -0,0 +1,20 @@
FROM archlinux:latest
RUN pacman -Syy
RUN pacman -Syu --noconfirm
RUN pacman -S --noconfirm python python-pip git postgresql sudo gcc
RUN sudo -u postgres initdb --locale=en_US.UTF-8 -E UTF8 -D /var/lib/postgres/data
RUN useradd pyshelf && chpasswd pyshelf:pyshelf
#RUN mkdir -p /srv/Books && mkdir -p /srv/http && mkdir -p /srv/logs/ && mkdir -p /run/postgresql && \
# touch /srv/logs/pgsql.log && chown postgres.postgres /run/postgresql && \
# chown http.pyshelf /srv/Books && chown http.pyshelf /srv/http && chown postgres.postgres /srv/logs/pgsql.log
VOLUME /srv/Books ./Books
VOLUME /srv/http .
VOLUME /srv/logs ./logs
VOLUME /var/lib/postgres/data ./pgdata
RUN sudo -u postgres pg_ctl -D /var/lib/postgres/data -l /srv/logs/pgsql.log start
RUN sudo -u postgres psql -f create_db.sql
ENV PYTHONUNBUFFERED=1
WORKDIR /srv/http
RUN pip install -r requirements.txt
EXPOSE 80 8000
CMD ["sh", "-c","/srv/http/entry.sh"]

22
README.md vendored
View File

@@ -1,15 +1,16 @@
# pyShelf 0.5.0 # pyShelf 0.5.0
<p align="center"><b>Terminal based ebook server. Open source & Lightweight.</b></p> <p align="center"><b>Terminal based ebook server. Open source & Lightweight.</b></p>
![alt text](./preview_1_050.png) <p align="center">Having used Calibre for hosting my eBook collection in the past, I found myself frustrated having to install X on my server, or manage my library externally, Thus I have decided to spin up my own.</p>
![alt text](./preview_050.png) <p align="center"><a href="https://pyshelf.com">https://pyshelf.com</a></p>
Having used Calibre for hosting my eBook collection in the past, I found myself frustrated having to install X on my server, or manage my library externally, Thus I have decided to spin up my own. ![pyShelf 0.5.0 Collection 1](https://github.com/th3r00t/pyShelf/raw/development/preview_050.png)
![pyShelf 0.5.0 Collection 2](https://github.com/th3r00t/pyShelf/raw/development/preview_1_050.png)
### Join the discussion: Discord [https://discord.gg/H9TbNJS](https://discord.gg/H9TbNJS) | IRC freenode.net @ #pyshelf <p align="center"><b>Discord [https://discord.gg/H9TbNJS](https://discord.gg/H9TbNJS) | IRC freenode.net @ #pyshelf</b></p>
## Current Features ## Current Features
* Custom Installer -- For Arch Based Distros Only * Custom Installer -- pre-req installs work on Arch Based Distros Only
* Recursive Scanning * Recursive Scanning
* Fast database access * Fast database access
* Django based frontend * Django based frontend
@@ -28,13 +29,12 @@ Having used Calibre for hosting my eBook collection in the past, I found myself
## 0.5.0 Patch Notes. ## 0.5.0 Patch Notes.
### Additional Dependencies ### Pre-req Dependencies
* gcc -- This will be installed by the new pre-installer script if its binary * gcc -- This will be installed by the new pre-installer script if its binary is not detected at /usr/bin/gcc
is not detected at the arch distro default of /usr/bin/gcc Users on distros other then Arch should install gcc via their systems package manager prior to
All other distros should install via their systems package manager prior to
running the installer. running the installer.
* Python3
* pip
### New Features ### New Features
* Collections * Collections
We are now categorizing your ebooks into collections based on the folder We are now categorizing your ebooks into collections based on the folder

2
config.json vendored
View File

@@ -1 +1 @@
{"TITLE": "pyShelf E-Book Server", "VERSION": "0.5.0", "BOOKPATH": "/home/raelon/Books", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": "*", "hostname": "localhost", "webport": "8000", "wsgiport": "8001"} {"TITLE": "pyShelf E-Book Server", "VERSION": "0.5.0", "BOOKPATH": "/srv/Books", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": "*", "hostname": "localhost", "webport": "8000", "wsgiport": "8001"}

3
create_db.sql vendored Executable file
View File

@@ -0,0 +1,3 @@
CREATE USER pyshelf WITH PASSWORD 'pyshelf';
CREATE DATABASE pyshelf;
GRANT ALL PRIVILEGES ON DATABASE pyshelf TO pyshelf;

13
database.sh vendored Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
sudo -u postgres pg_ctl -D /var/lib/postgres/data -l /srv/logs/pgsql.log start &&
sudo -u postgres psql -f create_db.sql &&
rm /srv/http/database.sh &&
echo "sudo -u postgres pg_ctl -D /var/lib/postgres/data -l /srv/logs/lgsql.log start" > /srv/http/database.sh &&
chmod +x /srv/http/database.sh &&
cd src && \
python manage.py makemigrations && \
python manage.py makemigrations interface && \
python manage.py migrate && \
python manage.py migrate interface && \
cd ..
echo "pyShelf Env Started"

4
entry.sh vendored Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
#sh /srv/http/database.sh
sudo -u postgres pg_ctl -D /var/lib/postgres/data -l /srv/logs/pgsql.log start &&
#gunicorn pyShelf.wsgi 8000:8000

2
requirements.txt vendored
View File

@@ -17,4 +17,4 @@ psycopg2-binary
prompt_toolkit prompt_toolkit
psutil psutil
pyfiglet pyfiglet
mobi-python mobi-python