commit
ff9e0dbd30
19
Dockerfile
19
Dockerfile
|
@ -1,5 +1,5 @@
|
||||||
FROM lsiobase/alpine.nginx:3.5
|
FROM lsiobase/alpine.python:3.6
|
||||||
MAINTAINER sparklyballs
|
MAINTAINER sparklyballs/chbmb
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
|
@ -19,9 +19,7 @@ RUN \
|
||||||
|
|
||||||
# install runtime packages
|
# install runtime packages
|
||||||
apk add --no-cache \
|
apk add --no-cache \
|
||||||
py2-lxml \
|
imagemagick && \
|
||||||
py2-pip \
|
|
||||||
python2 && \
|
|
||||||
|
|
||||||
# install calibre-web
|
# install calibre-web
|
||||||
mkdir -p \
|
mkdir -p \
|
||||||
|
@ -35,23 +33,18 @@ RUN \
|
||||||
cd /app/calibre-web && \
|
cd /app/calibre-web && \
|
||||||
pip install --no-cache-dir -U -r \
|
pip install --no-cache-dir -U -r \
|
||||||
requirements.txt && \
|
requirements.txt && \
|
||||||
|
pip install --no-cache-dir -U -r \
|
||||||
# install pip packages
|
optional-requirements.txt && \
|
||||||
pip install --no-cache-dir -U \
|
|
||||||
gunicorn \
|
|
||||||
Wand && \
|
|
||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
apk del --purge \
|
apk del --purge \
|
||||||
build-dependencies && \
|
build-dependencies && \
|
||||||
rm -rf \
|
rm -rf \
|
||||||
/etc/services.d/php-fpm \
|
|
||||||
/etc/logrotate.d/php-fpm7 \
|
|
||||||
/tmp/*
|
/tmp/*
|
||||||
|
|
||||||
# add local files
|
# add local files
|
||||||
COPY root/ /
|
COPY root/ /
|
||||||
|
|
||||||
# ports and volumes
|
# ports and volumes
|
||||||
EXPOSE 80
|
EXPOSE 8083
|
||||||
VOLUME /books /config
|
VOLUME /books /config
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
[forumurl]: https://forum.linuxserver.io
|
[forumurl]: https://forum.linuxserver.io
|
||||||
[ircurl]: https://www.linuxserver.io/irc/
|
[ircurl]: https://www.linuxserver.io/irc/
|
||||||
[podcasturl]: https://www.linuxserver.io/podcast/
|
[podcasturl]: https://www.linuxserver.io/podcast/
|
||||||
[appurl]: www.example.com
|
[appurl]: https://github.com/janeczku/calibre-web
|
||||||
[hub]: https://hub.docker.com/r/example/example/
|
[hub]: https://hub.docker.com/r/example/example/
|
||||||
|
|
||||||
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
|
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
|
||||||
|
@ -12,23 +12,24 @@ The [LinuxServer.io][linuxserverurl] team brings you another container release f
|
||||||
* [IRC][ircurl] on freenode at `#linuxserver.io`
|
* [IRC][ircurl] on freenode at `#linuxserver.io`
|
||||||
* [Podcast][podcasturl] covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation!
|
* [Podcast][podcasturl] covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation!
|
||||||
|
|
||||||
# <image-name>
|
# linuxserver/calibre-web
|
||||||
|
|
||||||
Provide a short, concise description of the application. No more than two SHORT paragraphs. Link to sources where possible and include an image illustrating your point if necessary. Point users to the original applications website, as that's the best place to get support - not here.
|
[Calibre-Web](https://github.com/janeczku/calibre-web) is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself.
|
||||||
|
|
||||||
Our Plex container has immaculate docs so follow that if in doubt for layout.
|
This software is a fork of library and licensed under the GPL v3 License.
|
||||||
|
|
||||||
`IMPORTANT, replace all instances of <image-name> with the correct dockerhub repo (ie linuxserver/plex) and <container-name> information (ie, plex)`
|
[![Calibre-Web](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/calibre-web-icon.png)][appurl]
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```
|
```
|
||||||
docker create \
|
docker create \
|
||||||
--name=<container-name> \
|
--name=calibre-web \
|
||||||
-v <path to data>:/config \
|
-v <path to data>:/config \
|
||||||
|
-v <path to calibre library>:/books \
|
||||||
-e PGID=<gid> -e PUID=<uid> \
|
-e PGID=<gid> -e PUID=<uid> \
|
||||||
-p 1234:1234 \
|
-p 8083:8083 \
|
||||||
<image-name>
|
linuxserver/calibre-web
|
||||||
```
|
```
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
@ -40,12 +41,13 @@ http://192.168.x.x:8080 would show you what's running INSIDE the container on po
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* `-p 1234` - the port(s)
|
* `-p 8083` - calibre-web gui port
|
||||||
* `-v /config` - explain what lives here
|
* `-v /config` - where calibre-web stores it's database
|
||||||
|
* `-v /books` - where your calibre database is located
|
||||||
* `-e PGID` for GroupID - see below for explanation
|
* `-e PGID` for GroupID - see below for explanation
|
||||||
* `-e PUID` for UserID - see below for explanation
|
* `-e PUID` for UserID - see below for explanation
|
||||||
|
|
||||||
It is based on alpine linux with s6 overlay, for shell access whilst the container is running do `docker exec -it <container-name> /bin/bash`.
|
It is based on alpine linux with s6 overlay, for shell access whilst the container is running do `docker exec -it calibre-web /bin/bash`.
|
||||||
|
|
||||||
### User / Group Identifiers
|
### User / Group Identifiers
|
||||||
|
|
||||||
|
@ -60,22 +62,39 @@ In this instance `PUID=1001` and `PGID=1001`. To find yours use `id user` as bel
|
||||||
|
|
||||||
## Setting up the application
|
## Setting up the application
|
||||||
|
|
||||||
Insert a basic user guide here to get a n00b up and running with the software inside the container. DELETE ME
|
Webui can be found at `http://<your-ip>:8083`
|
||||||
|
|
||||||
|
On the initial setup screen, enter `/books` as your calibre library location.
|
||||||
|
|
||||||
|
**Default admin login:**
|
||||||
|
*Username:* admin
|
||||||
|
*Password:* admin123
|
||||||
|
|
||||||
|
To reverse proxy with our Letsencrypt docker container use the following location block:
|
||||||
|
```
|
||||||
|
location /calibre-web {
|
||||||
|
proxy_pass http://<your-ip>:8083;
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Scheme $scheme;
|
||||||
|
proxy_set_header X-Script-Name /calibre-web;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Info
|
## Info
|
||||||
|
|
||||||
* Shell access whilst the container is running: `docker exec -it <container-name> /bin/bash`
|
* Shell access whilst the container is running: `docker exec -it calibre-web /bin/bash`
|
||||||
* To monitor the logs of the container in realtime: `docker logs -f <container-name>`
|
* To monitor the logs of the container in realtime: `docker logs -f calibre-web`
|
||||||
|
|
||||||
* container version number
|
* container version number
|
||||||
|
|
||||||
`docker inspect -f '{{ index .Config.Labels "build_version" }}' <container-name>`
|
`docker inspect -f '{{ index .Config.Labels "build_version" }}' calibre-web`
|
||||||
|
|
||||||
* image version number
|
* image version number
|
||||||
|
|
||||||
`docker inspect -f '{{ index .Config.Labels "build_version" }}' <image-name>`
|
`docker inspect -f '{{ index .Config.Labels "build_version" }}' calibre-web`
|
||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
|
|
||||||
+ **dd.MM.yy:** This is the standard Version type now.
|
+ **07.06.17:** Initial release
|
||||||
|
|
Binary file not shown.
|
@ -1,26 +0,0 @@
|
||||||
upstream wsgi-server {
|
|
||||||
server 127.0.0.1:8083;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
root /config/www;
|
|
||||||
index index.html;
|
|
||||||
|
|
||||||
# Serve static files
|
|
||||||
location ^~ /static/ {
|
|
||||||
root /app/calibre-web/cps/;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Proxy connections to the application server
|
|
||||||
location / {
|
|
||||||
proxy_pass http://wsgi-server;
|
|
||||||
proxy_redirect off;
|
|
||||||
proxy_set_header Host $http_host;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Scheme $scheme;
|
|
||||||
proxy_set_header X-Forwarded-Host $server_name;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
import os
|
|
||||||
|
|
||||||
workers = 1
|
|
||||||
bind = "127.0.0.1:8083"
|
|
||||||
user = 'abc'
|
|
||||||
loglevel = 'info'
|
|
|
@ -1,6 +0,0 @@
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
sys.path.append(os.path.join(base_path, 'vendor'))
|
|
||||||
from cps import web
|
|
|
@ -1,12 +1,13 @@
|
||||||
#!/usr/bin/with-contenv bash
|
#!/usr/bin/with-contenv bash
|
||||||
|
|
||||||
# copy config
|
# put database in /config
|
||||||
[[ ! -e /app/calibre-web/gunicorn.conf.py ]] && \
|
[[ ! -e /config/app.db ]] && \
|
||||||
cp /defaults/gunicorn.conf.py /app/calibre-web/gunicorn.conf.py
|
cp /defaults/app.db /config/app.db \
|
||||||
|
|
||||||
[[ ! -e /app/calibre-web/wsgi.py ]] && \
|
# link to /app/calibre-web/app.db
|
||||||
cp /defaults/wsgi.py /app/calibre-web/wsgi.py
|
ln -s /config/app.db /app/calibre-web/app.db
|
||||||
|
|
||||||
# permissions
|
# permissions
|
||||||
chown -R abc:abc \
|
chown -R abc:abc \
|
||||||
/app/calibre-web
|
/config \
|
||||||
|
/app/calibre-web
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
cd /app/calibre-web || exit
|
cd /app/calibre-web || exit
|
||||||
|
|
||||||
exec \
|
exec \
|
||||||
s6-setuidgid abc /usr/bin/gunicorn \
|
s6-setuidgid abc python /app/calibre-web/cps.py
|
||||||
-c /app/calibre-web/gunicorn.conf.py wsgi:web.app
|
|
||||||
|
|
Loading…
Reference in New Issue