Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KindleBoard - Self-hosted Kindle and E-ink Dashboard

Current version: V1.1

KindleBoard is a self-hosted Kindle dashboard and e-ink display system for Docker. It turns an old Kindle Paperwhite or other e-ink browser into an always-on information board for weekly schedules, memos, and to-do lists.

Use KindleBoard when you want a lightweight Kindle Paperwhite dashboard, self-hosted e-ink dashboard, Docker dashboard for Kindle, memo display, to-do list display, or weekly schedule board that runs privately on your own server.

KindleBoard self-hosted Kindle dashboard preview showing a weekly schedule on an e-ink style display

KindleBoard is designed for trusted private-network use. Run it inside a private Docker environment, or protect it with a VPN, reverse proxy, or authentication layer before exposing it to the public internet.

Common Use Cases

  • Turn an old Kindle Paperwhite into an always-on e-ink dashboard.
  • Display a personal weekly work schedule with automatic total hours.
  • Keep a large readable memo or family note on an e-ink screen.
  • Use a Kindle as a simple tap-to-complete to-do list.
  • Run a private dashboard at home, in a homelab, or on any Docker host.

Documentation Languages

Why KindleBoard

Kindle browsers are old, slow, and limited, but e-ink screens are excellent for quiet, persistent information. KindleBoard keeps the interface simple: large text, high contrast, minimal interactions, and no heavy frontend framework.

The application is intentionally local-first. It uses one SQLite database and does not require Redis, PostgreSQL, MySQL, or any external service.

Features

  • Kindle-optimized dashboard for Kindle Paperwhite and other e-ink browsers.
  • Personal weekly schedule with daily shifts, rest days, notes, and automatic weekly total hours.
  • Overnight shift support, such as 22:00 to 06:00.
  • Memo mode for large readable notes.
  • To-do list mode with tap-to-complete support directly on Kindle.
  • Admin page for editing content and switching display modes.
  • Database backup download and local database restore upload.
  • Kindle-optimized display page with a large refresh button.
  • One SQLite database for schedule, memo, to-do items, display mode, and language settings.
  • Multilingual UI.
  • Docker-ready deployment.
  • Default port: 10000.

Search Keywords

Kindle dashboard, Kindle Paperwhite dashboard, e-ink dashboard, e-paper dashboard, self-hosted dashboard, Docker Kindle dashboard, Kindle to-do list, Kindle memo board, Kindle schedule display, home dashboard, homelab dashboard, SQLite dashboard.

V1.1 Highlights

  • Added database backup download from the admin page.
  • Added local SQLite database restore upload with validation.
  • Added drag-and-drop support for restore files.
  • The admin page opens the Kindle display page in a new browser tab.

Display Modes

KindleBoard has three display modes:

  • Schedule: weekly schedule and total work hours.
  • Memo: one large note or message.
  • To-do: clickable task list. Items can be completed or reopened from the Kindle page.

Only the selected mode is shown on the Kindle display page.

Supported Interface Languages

English, Simplified Chinese, Traditional Chinese, Japanese, Korean, Spanish, German, French, and Portuguese.

The default language follows the browser language. The included demo database uses English by default. After you choose and save a language in the admin page, KindleBoard will use the saved language for both the admin page and the Kindle page.

Docker Installation

Published image:

neil2046/kindleboard:latest

Mirror image:

ghcr.io/neil2046/kindleboard:latest

Maintainer Publishing

The GitHub Actions workflow always publishes the GHCR image. Docker Hub publishing is optional and runs only when these repository secrets are configured:

DOCKERHUB_USERNAME
DOCKERHUB_TOKEN

If either secret is missing, the workflow skips Docker Hub and still publishes to GHCR.

Before enabling Docker Hub publishing, create a Docker Hub repository named kindleboard under the same account used in DOCKERHUB_USERNAME, and make sure the access token has read/write permission for that repository.

Option A: Docker Compose

Create a project folder:

mkdir kindleboard
cd kindleboard

Create docker-compose.yml:

services:
  kindleboard:
    image: neil2046/kindleboard:latest
    container_name: kindleboard
    ports:
      - "10000:10000"
    volumes:
      - ./data:/data
    restart: unless-stopped

Start the container:

docker compose up -d

Open:

Admin:  http://SERVER-IP:10000/admin
Kindle: http://SERVER-IP:10000/kindle

Replace SERVER-IP with the IP address of the machine running Docker.

Option B: docker run

Run the command from the folder where you want KindleBoard to store its data directory:

docker run -d \
  --name kindleboard \
  -p 10000:10000 \
  -v ./data:/data \
  --restart unless-stopped \
  neil2046/kindleboard:latest

GHCR mirror:

docker run -d \
  --name kindleboard \
  -p 10000:10000 \
  -v ./data:/data \
  --restart unless-stopped \
  ghcr.io/neil2046/kindleboard:latest

Data Persistence

Data is stored in:

./data/schedule.db

Schedule, memo, to-do items, display mode, and language settings are all stored in this single SQLite database.

The Docker image includes a default English demo database. On first start, if /data/schedule.db does not exist, KindleBoard copies the demo database into /data/schedule.db. Existing user data is never overwritten.

Do not delete the data folder unless you intentionally want to reset the application.

The admin page includes database tools for downloading a SQLite backup and restoring from a local KindleBoard database backup file.

SQLite runtime helper files are ignored by Git:

data/schedule.db-wal
data/schedule.db-shm

Upgrade

Pull the latest image and restart:

docker compose pull
docker compose up -d

Your data remains in ./data/schedule.db.

Build From Source

Most users should use the published Docker image. To build locally:

services:
  kindleboard:
    build: .
    container_name: kindleboard
    ports:
      - "10000:10000"
    volumes:
      - ./data:/data
    restart: unless-stopped

Then run:

docker compose up -d --build

Kindle Usage Notes

  • Open http://SERVER-IP:10000/kindle on the Kindle browser.
  • Enable always-on, never-sleep, or kiosk display mode on your Kindle if your device or firmware supports it.
  • Keep the Kindle connected to the same reachable network as the Docker host.
  • The page includes a large refresh button so you do not need to use the browser toolbar.
  • Kindle browser toolbars and screen saver behavior are controlled by Kindle OS, not by KindleBoard.
  • Keeping Wi-Fi and front light on will use more battery.

Security Notes

KindleBoard does not include user accounts or login protection. It is meant for trusted personal environments. If you expose it outside a private network, place it behind a VPN, reverse proxy authentication, or another access-control layer.

About

Self-hosted Kindle dashboard for schedules, memos, and to-do lists. Docker-ready, SQLite-based, multilingual, and optimized for Kindle Paperwhite/e-ink browsers.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages