mirror of
https://github.com/th3r00t/pyShelf.git
synced 2026-04-28 01:59:35 -04:00
Added cron to the Dockerfile as temporary fix until we have periodic file scanning in the backend
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -127,6 +127,8 @@ dmypy.json
|
||||
# End of https://www.gitignore.io/api/python
|
||||
0
|
||||
config.backup.json
|
||||
config.json
|
||||
!docker/config.json
|
||||
uwsgi.ini
|
||||
installer.log
|
||||
pyshelf_nginx.conf
|
||||
|
||||
12
README.md
12
README.md
@@ -78,6 +78,8 @@ From the main directory
|
||||
|
||||
`pip install -r requirements.txt`
|
||||
|
||||
`./configure`
|
||||
|
||||
`cd src`
|
||||
|
||||
`python manage.py makemigrations`
|
||||
@@ -90,10 +92,10 @@ From the main directory
|
||||
|
||||
`cd ..`
|
||||
|
||||
`./configure`
|
||||
|
||||
`./importBooks`
|
||||
|
||||
`uwsgi --ini uwsgi.ini`
|
||||
|
||||
Browse to the site as defined in your apache | nginx config
|
||||
|
||||
Running via the [Django](https://www.djangoproject.com/) test server might be possible, albeit not recomended.
|
||||
@@ -113,7 +115,7 @@ services:
|
||||
- "POSTGRES_USER=pyshelf"
|
||||
- "POSTGRES_DB=pyshelf"
|
||||
volumes:
|
||||
- "pgdata:/var/lib/postgresql/data/"
|
||||
- "db_data:/var/lib/postgresql/data/"
|
||||
|
||||
pyshelf:
|
||||
image: "pyshelf/pyshelf"
|
||||
@@ -125,7 +127,7 @@ services:
|
||||
- db
|
||||
|
||||
volumes:
|
||||
pgdata:
|
||||
db_data:
|
||||
```
|
||||
|
||||
You'll also need a `.env` file wich sets the `LOCAL_BOOK_DIR` variable, for example:
|
||||
@@ -134,7 +136,7 @@ You'll also need a `.env` file wich sets the `LOCAL_BOOK_DIR` variable, for exam
|
||||
LOCAL_BOOK_DIR=/home/someone/books
|
||||
```
|
||||
|
||||
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` .
|
||||
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`. It should become db agnostic in the future.
|
||||
|
||||
## In Progress
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
{"TITLE": "pyShelf E-Book Server", "VERSION": "0.6.0", "BOOKPATH": "~/Books", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": "*", "SECRET": ""}
|
||||
28
docker/Dockerfile
vendored
28
docker/Dockerfile
vendored
@@ -1,3 +1,14 @@
|
||||
|
||||
# This file is used to build the Dockerhub image. To host pyShelf yourself for
|
||||
# production, please use the official pyShelf image on
|
||||
# https://hub.docker.com/r/pyshelf/pyshelf
|
||||
|
||||
# Use the following commands to build and push the docker image to Dockerhub:
|
||||
#
|
||||
# docker build -t pyshelf/pyshelf -f .\docker\Dockerfile .
|
||||
# docker login
|
||||
# docker push pyshelf/pyshelf
|
||||
|
||||
FROM ubuntu
|
||||
|
||||
EXPOSE 8000
|
||||
@@ -5,22 +16,27 @@ EXPOSE 8000
|
||||
RUN apt-get update -y
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential python3 python3-dev python3-pip python3-venv nginx-full
|
||||
|
||||
COPY . /pyshelf
|
||||
|
||||
WORKDIR /pyshelf/
|
||||
RUN python3 -m pip install -r requirements.txt
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y cron
|
||||
RUN echo "* * * * * cd /pyshelf/ && python3 importBooks >> /var/log/cron.log 2>&1" > import_books_scheduler.cron && crontab import_books_scheduler.cron
|
||||
|
||||
COPY ./docker/pyshelf_nginx.conf /etc/nginx/sites-available/pyshelf_nginx.conf
|
||||
RUN ln -s /etc/nginx/sites-available/pyshelf_nginx.conf /etc/nginx/sites-enabled/
|
||||
|
||||
COPY . /pyshelf
|
||||
COPY ./docker/config.json /pyshelf/config.json
|
||||
|
||||
WORKDIR /pyshelf/
|
||||
ENTRYPOINT cd src/ \
|
||||
RUN python3 -m pip install -r requirements.txt
|
||||
|
||||
WORKDIR /pyshelf/
|
||||
ENTRYPOINT cron start \
|
||||
&& python3 configure \
|
||||
&& cd src/ \
|
||||
&& python3 manage.py makemigrations \
|
||||
&& python3 manage.py makemigrations interface \
|
||||
&& python3 manage.py migrate \
|
||||
&& python3 manage.py migrate interface \
|
||||
&& cd .. \
|
||||
&& python3 configure \
|
||||
&& python3 importBooks \
|
||||
&& nginx -g "daemon on;" \
|
||||
&& uwsgi --ini uwsgi.ini
|
||||
|
||||
1
docker/config.json
vendored
Normal file
1
docker/config.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"TITLE": "pyShelf E-Book Server", "VERSION": "Docker", "BOOKPATH": "/books", "DB_HOST": "db", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": "*", "SECRET": ""}
|
||||
5
docker/development.docker-compose.yml
vendored
5
docker/development.docker-compose.yml
vendored
@@ -1,11 +1,12 @@
|
||||
version: "3.7"
|
||||
|
||||
# This file is used to test the docker image. To host pyShelf yourself for
|
||||
# This file is used to test the Dockerhub image. To host pyShelf yourself for
|
||||
# production, please use the official pyShelf image on
|
||||
# https://hub.docker.com/r/pyshelf/pyshelf
|
||||
|
||||
# For development, use the following command in the root folder:
|
||||
# `docker-compose -f .\docker\development.docker-compose.yml up --build`
|
||||
#
|
||||
# docker-compose -f .\docker\development.docker-compose.yml up --build
|
||||
|
||||
services:
|
||||
db:
|
||||
|
||||
Reference in New Issue
Block a user