A Gemini proxy for Kindle e-readers

579eb0d Add support for the Gopher protocol

3 days ago

f0ddda2 Increment version to v0.4.2

3 days ago


kindleto is a Gemini and Finger protocol proxy for older Amazon Kindles. It allows accessing Gemini and Finger through the Kindle's web browser. It is based on the Gneto proxy.

#Supported devices

kindleto has been tested on the following devices:

It probably works on all Kindle 3 versions and possibly other Kindles too. The installation procedure and the init script kindleto-init are what might need to be changed to support more devices.

#Kindle setup

You will need a jailbroken Kindle with the USBNet hack installed. For more information on how to do this see here and here.

The kindleto setup will be easier if you setup SSH key authentication for the Kindle. Then add an entry for your Kindle in ~/.ssh/config, something like

Host kindle
    User root
    IdentityFile ~/.ssh/kindle
    PasswordAuthentication no

If you want to use a name other than kindle, make sure to set the environment variable KINDLE_SSH_HOST to that name as shown in the following examples.

#kindleto setup

The kindleto dependencies are a POSIX system, Go, GNU Make, an SSH client and rsync for installation over SSH. After your Kindle is set-up and connected to the same network as your computer run the following commands

# Build kindleto and copy/create any other required files
# Copy all required files on the Kindle using rsync
make install
# Install on a host named seal in ~/.ssh/config
env KINDLE_SSH_HOST=seal make install

and then restart your Kindle. Visit with the Kindle's browser and you should see the kindleto homepage.

#kindleto configuration

The kindleto configuration files are in the kindleto directory accessible over USB or in /mnt/us/kindleto over SSH. You can customize the homepage by creating web/index.gmi and override the CSS by creating web/kindleto.css.

Gemini client certificates are stored in /mnt/us/kindleto/certificates/. The certificates and private key files should be named after the host they apply to and have a .crt and .key suffix respectively. For example:

├── astrobotany.mozz.us.crt
├── astrobotany.mozz.us.key
├── example.com.crt
└── example.com.key


Report bugs in the bug tracker, discuss development and ask for help in the kindleto-discuss mailing list and send patches in the kindleto-devel mailing list. Project announcements will be posted in the kindleto-announce mailing list.


Copyright 2020 Paul Gorman

Copyright 2021-2022 Sotiris Papatheodorou

This program is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.