Compare commits

...

15 Commits
1 ... 6

Author SHA1 Message Date
sparklyballs 900c7ea2ac compile imagemagick 6 2017-07-17 19:52:33 +01:00
sparklyballs af3caaa1e6 tidy up symlinks 2017-07-17 18:49:38 +01:00
sparklyballs 33c84d3fc2 symlink log to /config 2017-07-17 18:40:54 +01:00
sparklyballs 29ae2d1f2a swap back to placeholder README 2017-07-17 18:10:10 +01:00
sparklyballs 391552992b Merge pull request #4 from linuxserver/alpine.python3.6
Alpine.python3.6
2017-07-17 18:06:04 +01:00
sparklyballs d7f69006f0 more tidying up and badges etc 2017-07-17 18:04:54 +01:00
sparklyballs 14a3560f52 edit README and add badges 2017-07-17 17:49:25 +01:00
sparklyballs 3cd48c3d5f tidy up stuff 2017-07-17 17:36:32 +01:00
sparklyballs a316ea3a66 Update Dockerfile 2017-07-17 17:12:48 +01:00
Neil 5748654f4c Create README.md 2017-06-09 22:12:25 +01:00
Neil 14ab162f99 Delete README.md 2017-06-09 22:12:11 +01:00
Neil ff9e0dbd30 Merge pull request #3 from CHBMB/master
Rebase to alpine.python:3.6
2017-06-09 21:07:03 +01:00
Neil 4bece2bb61 Create Dockerfile 2017-06-09 21:06:13 +01:00
Neil ac6fb9b048 Update READMETEMPLATE.md 2017-06-07 07:56:30 +01:00
CHBMB dd29c3c6f6 Change to alpine.python:3.6 2017-06-07 07:33:43 +01:00
8 changed files with 120 additions and 81 deletions
+65 -17
View File
@@ -1,27 +1,80 @@
FROM lsiobase/alpine.nginx:3.5
MAINTAINER sparklyballs
FROM lsiobase/alpine.python:3.6
MAINTAINER sparklyballs,chbmb
# set version label
ARG BUILD_DATE
ARG VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
# package versions
ARG IMAGEMAGICK_VER="6.9.9-0"
# install build packages
RUN \
apk add --no-cache --virtual=build-dependencies \
curl \
file \
fontconfig-dev \
freetype-dev \
g++ \
gcc \
git \
ghostscript-dev \
lcms2-dev \
libjpeg-turbo-dev \
libpng-dev \
libtool \
libwebp-dev \
libxml2-dev \
make \
perl-dev \
python2-dev \
tar && \
tiff-dev \
xz \
zlib-dev && \
# install runtime packages
# install runtime packages
apk add --no-cache \
py2-lxml \
py2-pip \
python2 && \
fontconfig \
freetype \
ghostscript \
lcms2 \
libjpeg-turbo \
libltdl \
libpng \
libwebp \
libxml2 \
tiff \
zlib && \
# compile imagemagic
mkdir -p \
/tmp/imagemagick && \
curl -o \
/tmp/imagemagick-src.tar.xz -L \
"http://www.imagemagick.org/download/releases/ImageMagick-${IMAGEMAGICK_VER}.tar.xz" && \
tar xf \
/tmp/imagemagick-src.tar.xz -C \
/tmp/imagemagick --strip-components=1 && \
cd /tmp/imagemagick && \
sed -i -e \
's:DOCUMENTATION_PATH="${DATA_DIR}/doc/${DOCUMENTATION_RELATIVE_PATH}":DOCUMENTATION_PATH="/usr/share/doc/imagemagick":g' \
configure && \
./configure \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--prefix=/usr \
--sysconfdir=/etc \
--with-gs-font-dir=/usr/share/fonts/Type1 \
--with-gslib \
--with-lcms2 \
--with-modules \
--without-threads \
--without-x \
--with-tiff \
--with-xml && \
make && \
make install && \
find / -name '.packlist' -o -name 'perllocal.pod' \
-o -name '*.bs' -delete && \
# install calibre-web
mkdir -p \
@@ -35,23 +88,18 @@ RUN \
cd /app/calibre-web && \
pip install --no-cache-dir -U -r \
requirements.txt && \
# install pip packages
pip install --no-cache-dir -U \
gunicorn \
Wand && \
pip install --no-cache-dir -U -r \
optional-requirements.txt && \
# cleanup
apk del --purge \
build-dependencies && \
rm -rf \
/etc/services.d/php-fpm \
/etc/logrotate.d/php-fpm7 \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80
EXPOSE 8083
VOLUME /books /config
+38 -18
View File
@@ -2,8 +2,8 @@
[forumurl]: https://forum.linuxserver.io
[ircurl]: https://www.linuxserver.io/irc/
[podcasturl]: https://www.linuxserver.io/podcast/
[appurl]: www.example.com
[hub]: https://hub.docker.com/r/example/example/
[appurl]: https://github.com/janeczku/calibre-web
[hub]: https://hub.docker.com/r/linuxserver/calibre-web/
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
@@ -12,23 +12,25 @@ The [LinuxServer.io][linuxserverurl] team brings you another container release f
* [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!
# <image-name>
# linuxserver/calibre-web
[![](https://images.microbadger.com/badges/version/linuxserver/calibre-web.svg)](https://microbadger.com/images/linuxserver/calibre-web "Get your own version badge on microbadger.com")[![](https://images.microbadger.com/badges/image/linuxserver/calibre-web.svg)](https://microbadger.com/images/linuxserver/calibre-web "Get your own image badge on microbadger.com")[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/calibre-web.svg)][hub][![Docker Stars](https://img.shields.io/docker/stars/linuxserver/calibre-web.svg)][hub][![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Builders/x86-64/x86-64-calibre-web)](https://ci.linuxserver.io/job/Docker-Builders/job/x86-64/job/x86-64-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
```
docker create \
--name=<container-name> \
--name=calibre-web \
-v <path to data>:/config \
-v <path to calibre library>:/books \
-e PGID=<gid> -e PUID=<uid> \
-p 1234:1234 \
<image-name>
-p 8083:8083 \
linuxserver/calibre-web
```
## Parameters
@@ -40,12 +42,13 @@ http://192.168.x.x:8080 would show you what's running INSIDE the container on po
* `-p 1234` - the port(s)
* `-v /config` - explain what lives here
* `-p 8083` - calibre-web gui port
* `-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 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
@@ -60,22 +63,39 @@ In this instance `PUID=1001` and `PGID=1001`. To find yours use `id user` as bel
## 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
* Shell access whilst the container is running: `docker exec -it <container-name> /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f <container-name>`
* 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 calibre-web`
* 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
`docker inspect -f '{{ index .Config.Labels "build_version" }}' <image-name>`
`docker inspect -f '{{ index .Config.Labels "build_version" }}' calibre-web`
## Versions
+ **dd.MM.yy:** This is the standard Version type now.
+ **17.07.17:** Initial release
Binary file not shown.
-26
View File
@@ -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;
}
}
-6
View File
@@ -1,6 +0,0 @@
import os
workers = 1
bind = "127.0.0.1:8083"
user = 'abc'
loglevel = 'info'
-6
View File
@@ -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
+16 -6
View File
@@ -1,12 +1,22 @@
#!/usr/bin/with-contenv bash
# copy config
[[ ! -e /app/calibre-web/gunicorn.conf.py ]] && \
cp /defaults/gunicorn.conf.py /app/calibre-web/gunicorn.conf.py
# create symlinks for database and log
[[ ! -f /config/app.db ]] && \
cp /defaults/app.db /config/app.db
[[ -f /app/calibre-web/app.db ]] && \
rm /app/calibre-web/app.db
[[ ! -L /app/calibre-web/app.db ]] && \
ln -s /config/app.db /app/calibre-web/app.db
[[ ! -e /app/calibre-web/wsgi.py ]] && \
cp /defaults/wsgi.py /app/calibre-web/wsgi.py
[[ ! -f /config/calibre-web.log ]] && \
touch /config/calibre-web.log
[[ -f /app/calibre-web/calibre-web.log ]] && \
rm /app/calibre-web/calibre-web.log
[[ ! -L /app/calibre-web/calibre-web.log ]] && \
ln -s /config/calibre-web.log /app/calibre-web/calibre-web.log
# permissions
# permissions
chown -R abc:abc \
/config \
/app/calibre-web
+1 -2
View File
@@ -3,5 +3,4 @@
cd /app/calibre-web || exit
exec \
s6-setuidgid abc /usr/bin/gunicorn \
-c /app/calibre-web/gunicorn.conf.py wsgi:web.app
s6-setuidgid abc python /app/calibre-web/cps.py