A self hostable service for sending ebooks to a Kobo or Kindle ereader through the built-in browser.
A container image is automatically built and published on every commit, so there's no need to build it yourself.
You need Docker installed (and docker-compose if you want to use the compose file)
After you deploy, you can access the services via HTTP (http://localhost:3001)
Docker Run
docker run -d --name send2ereader --hostname send2ereader --restart unless-stopped -p 3001:3001 ghcr.io/gcaguilar/send2ereader:latest
Docker Compose
- Create a folder and cd into it
mkdir send2ereader && cd send2ereader
- Download the compose file
wget https://raw.githubusercontent.com/gcaguilar/send2ereader/refs/heads/master/docker-compose.yaml
- Deploy it
docker compose up -d
- Clone the repo
git clone https://github.com/gcaguilar/send2ereader.git && cd send2ereader
-
Uncomment the build section in the compose file
-
Build the image
docker compose build
- Run container
docker compose up -d
- Install Node.js 20 or 22
- Install this service's dependencies by running
npm install - Install Kepubify, and have the kepubify executable in your PATH.
- Install KindleGen, and have the kindlegen executable in your PATH.
- Start this service by running:
$ npm startand access it on HTTP port 3001
The following environment variables are supported:
| Variable | Default | Description |
|---|---|---|
PORT |
3001 |
HTTP port to listen on |
MAX_KEYS |
1000 |
Maximum number of active sessions |
GENERATE_RATE_LIMIT |
10 |
Key generation requests allowed per IP per minute |
Run the integration test suite with:
npm test