Deploy Docker

The Docker version stores data in the browser cache by default. For your data security, please deploy and access it via HTTPS, then save the data to your local folder. Alternatively, you can enable the data source feature to synchronize the data to a specified server path.

Deploy Web Version Only

If you only need to deploy the web version, use the command below directly:
docker run -d \ --name koodo-reader \ -p 80:80 \ -p 8080:8080 \ -p 7200:7200 \ -e ENABLE_HTTP_SERVER=false \ -e SERVER_USERNAME=admin \ -e SERVER_PASSWORD=securePass123 \ -e ENABLE_OPDS=false \ -e ENABLE_KOREADER_SERVER=false \ -v /path/to/host/uploads:/app/uploads \ ghcr.io/koodo-reader/koodo-reader:master

Enable Data Source and OPDS Features

If you also need to enable the data source feature, modify the deployment command above as follows:
  1. Set ENABLE_HTTP_SERVER to true
  1. Change SERVER_USERNAME and SERVER_PASSWORD to a username and password you consider secure
  1. Replace /path/to/host/uploads with the folder where you want to save reading data
If you also need to enable the OPDS feature so that your books can be accessed from other e-book readers, in addition to the three modifications above, also make the following change:
  1. Set ENABLE_OPDS to true
Your OPDS username and password are the SERVER_USERNAME and SERVER_PASSWORD you set. The address is your data source address followed by /opds. Example: http://192.168.28.1:8080/opds
After deployment, select Docker as the data source in Koodo Reader.
The data source feature uses port 8080 by default, and the web version uses port 80 by default. You can also use other ports. If you need to use port 8090, change -p 8080:8080 to -p 8090:8080
Notes:
If you wish to use Docker Secrets to configure the server password, please refer to docker-compose-secret.yml
If you wish to improve security and restrict requests from unknown origins, add the environment variable ALLOWED_ORIGINS to the deployment command to limit request origins to your specified URLs, for example:
ALLOWED_ORIGINS="https://reader.example.com, http://192.168.182.1:3000"

Enable KOReader Sync Server

The Koodo Reader Docker version also supports the KOReader sync server feature, allowing you to sync your reading progress between Koodo Reader and KOReader. The interfaces and protocols used by this feature are fully compatible with the official KOReader sync server. To enable this feature, please modify the deployment command above as follows:
  1. Set ENABLE_KOREADER_SERVER to true
  1. Replace /path/to/host/uploads with the folder where you want to store sync data
If you wish to prevent unknown users from registering after creating your own account, add the environment variable ENABLE_KOREADER_REGISTRATION to the deployment command above and set it to false, for example:
ENABLE_KOREADER_REGISTRATION=false
After deployment, you can enable reading progress sync to KOReader in Koodo Reader. Set the sync server address to your server address. The default port is 7200. An example is shown below: http://192.168.28.1:7200