I Have Built 2 Modules.
Calibre with Server
Calibr Web.
Calibre Web Assumes a user already has an Active Calibre library for pulling Data from.
Calibre has the capacity to Upload multiple Files and create the Calibre library database that calibre web requires.
IF the 2 Volumes are Mounted in the same Directory Volume, then calibre Web would be able to automatically Load the Given Files.
I understand that the first instinct would be just build an APP that combines the 2, But, what if a User Only want One.
And as stated before, We cant bundles everything into a single App in NS8, the reason why all apps using Ldap, connect to the single Ldap Instance, I think we need somethign similar for Apps as well.
If i already Have my Library, i dont need the full heavyweight Calibre. Mind you the Calibre Image utilized KASM to stream a full desktop UI via browser, Similar to what Guacamole would do, but constrained.
I would just Wget my library to the respective folde,r and use calibre Web.
If i need to Add Multiple Files, or engage other advanced features, then i can install calibre, Modify my Database, then remove/Disable it and only use the web interface.
While this is the most easier prevalent case, There are other cases in which i have hard a similar kind of Situation with building other Apps.
We just need a way to define a Useable directory Accessible By more than one App.
IF the issue is security, Both Apps are internal, and should not really be an issue per se, considering one already accesses it, a similar fashion needs to be defined.
IF its completely entirely Not Possible and Feasible, I think we need to Define a Universal Directory Module, that other Apps can tap into it for Files storage and access.
Example docker compose
services:
calibre:
image: ghcr.io/linuxserver/calibre
container_name: calibre
environment:
- PUID=$PUID #change this to your user's PID
- PGID=$PGID #change this to your user's PGID
volumes:
- path/to/your/calibre/config:/config #change before the ':'
- path/to/your/calibre/upload:/uploads #change before the ':'
- path/to/your/calibre/plugins:/plugins #change before the ':'
- path/to/your/CalibreLibrary:/Calibre_Library #this is where your ebooks will end up
ports:
- 8080:8080 #change before the ':' if necessary
- 8081:8081 #change before the ':' if necessary
restart: unless-stopped
networks:
- ebooks
calibre-web:
image: ghcr.io/linuxserver/calibre-web
container_name: calibre-web
environment:
- PUID=$PUID
- PGID=$PGID
volumes:
- $DOCKERDIR/calibre/calibre-web:/config
- path/to/your/Calibre Library:/books
restart: unless-stopped
depends_on:
- calibre
ports:
- 8083:8083
networks:
- ebooks
readarr:
image: ghcr.io/linuxserver/readarr:nightly
container_name: readarr
environment:
- PUID=$PUID #change to your PID
- PGID=$PGID #change to your PGID
volumes:
- /path/to/your/docker/readarr:/config #change before the ':'
- /path/to/your/CalibreLibrary:/books #change before the ':'
- /path/to/your/downloads:/downloads #change before the ':'
ports:
- 8787:8787
restart: unless-stopped
networks:
- ebooks
networks:
ebooks:
external: true