# kindleto `kindleto` is a [Gemini protocol](https://gemini.circumlunar.space/) proxy for the Amazon Kindle 4 non-touch. It allows accessing Gemini through the Kindle's web browser. It is based on the [Gneto proxy](https://github.com/pgorman/gneto). ## Kindle setup You will need a jailbroken Kindle 4 non-touch with the USBNet hack installed. For more information on how to do this see [here](https://wiki.mobileread.com/wiki/Kindle4NTHacking) and [here](https://git.sr.ht/~sotirisp/kindle4-hacks). The `kindleto` setup will be easier if you setup key SSH authentication for the Kindle. Then add an entry for your Kindle in `~/.ssh/config`, something like ``` text Host kindle User root HostName 192.168.1.115 IdentityFile ~/.ssh/kindle PasswordAuthentication no ``` If you want to use a name other than `kindle`, make sure set the environment variable `KINDLE_SSH_HOST` to the name or to edit its default value in the [Makefile](Makefile). ## 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 ``` sh make # Build kindleto and copy/create any other required files make install # Copy all required files on the Kindle using rsync make autostart # Make kindleto start on boot ``` and then restart your Kindle. Visit [0.0.0.0:1965](http://0.0.0.0:1965) 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 `client-certs.json`. The client certificates can be copied directly in `client-certs.json` or supplied as paths to other files. See the following examples ``` json [ { "url": "gemini://127.0.0.1:8666/", "certPEM": "-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIUHlgTGsCA6UacbBZTRFMdMVd2PnswDQYJKoZIhvcNAQEL\n...9dc+s2RE22Ofse16maEriKTbwy0Ij0CFgunK1ECPw6Nm410=\n-----END CERTIFICATE-----", "keyPEM": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDDzlkT/tPsudlX\n...\nze1mLCUB65h7+/9E+dPOG/XR\n-----END PRIVATE KEY-----" }, { "url": "gemini://example.com/", "certPEM": "example.com.crt", "keyPEM": "example.com.key" }, { "url": "gemini://example.com/foo/bar/", "certPEM": "/mnt/us/kindleto/certificates/example.com.foo.bar.crt", "keyPEM": "/mnt/us/kindleto/certificates/example.com.foo.bar.key" } ] ``` ## Issues For any issues send an email to [~sotirisp/public-inbox@lists.sr.ht](mailto:~sotirisp/public-inbox@lists.sr.ht) with a title beginning with `[kindleto]`. ## License Copyright 2020 Paul Gorman
Copyright 2021 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](https://www.gnu.org/licenses/gpl.html) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.