idk's home page =============== I like to make peer-to-peer things, and think we should structure the future in a way which builds in privacy by default in a maximally peer-to-peer way. Projects: --------- Besides working on [I2P](https://geti2p.net/), I have a bunch of side-projects centered around the use of I2P, especially in Go and Javascript. Some of these are also I2P labs projects. ### I2P Webextensions, Freestanding Applications * [I2P in Private Browsing Mode for Firefox](I2P-in-Private-Browsing-Mode-Firefox/) inspired by Brave, this browser extension enforces a few privacy rules for Firefox, then implements a set of "Container Tabs" which can be used to browse I2P in a way which is automatic and safe. * [I2P Configuration Helper for Chromium](I2P-Configuration-For-Chromium/) A fork of the Firefox plugin before it used container tabs, after the user sets up an I2P browsing profile this plugin can automatically set up the profile to use I2P with the maximum privacy available from Chromium. * [Railroad Anonymous Blogging Platform](railroad/) Railroad is a simple tool for anonymous blogging built on [github.com/kabukky/journey](https://github.com/kabukky/journey) and retaining most of it's features, while adding a few to make it suitable for use as a destkop-based I2P application. * [eepHttpd static web server/bittorrent tracker](eephttpd/) eephttpd is a web server which turns I2P sites into torrents, then volunteers to act as a tracker for them. It's also capable of updating site content from a git remote. * [BRB IRC Client/Server/WebIRC Groupchat](brb/) BRB is a combination of an IRC client, an IRC server, and a WebIRC service, all of which are automatically configured to connect and listen on I2P connections only. It can be used as a safe, easy to configure IRC client, or use it with the BRB IRC server for a selfhosted group chat. Powered by [Dispatch](https://github.com/khlieng/dispatch), [Eris](https://github.com/prologic/eris), and [sam-forwarder](https://github.com/eyedeekay/sam-forwarder.) * [Experimental I2P Jpackage Installers](i2p/) Jpackage is a tool for bundling Java software with all the runtime dependencies and a Java environment which are required to make them work. We may be able to use this to create easier-to-use I2P installers. * [Reseed Tools](reseed-tools/) Reseed Tools is a freestanding, secure, easy to configure I2P reseed server which is capable of transmitting a reseed by the clearnet or Tor .onion services. * [Blizzard Snowflake Donor](blizzard/) Blizzard runs a Snowflake proxy, donating connectivity to Tor Browser users who use the WebRTC-based Snowflake pluggable transport. * [Terrarium IRC Server](terrarium/) Terrarium is a lightweight, simple IRC server which understands SAM and I2P Addresses. It can link with other terrarium servers over I2P tunnels and create an I2P IRC network of your own. * [Thunderbird Configuration Helper Plugin](Thunderbird-I2P-Auto-Configuration) This automatically configures Thunderbird to recognize `i2pmail.org` hostnames so that Postman's mail server is easier to configure. * [DungeonQuest(Browserquest Clone](dungeonQuest/) DungeonQuest is a clone of Mozilla Browserquest which automatically runs over I2P using SAM. It's a casual game you can easily host and play over I2P. * [MTG-I2P MTProto Outproxy](mtg-i2p/) mtg-i2p is a self-configuring MTProto outproxy for I2P. It can act as a secure proxy server to the Telegram network. It is based on [9seconds/mtg](https://github.com/9seconds/mtg). ### Tutorials, Research * [I2P Javadoc](javadoc-i2p) Mirror of the I2P Java documentation. Clone it into ~/.i2p/eepsite/docroot/javadoc-i2p/ to set up your own mirror automatically. `git clone https://github.com/eyedeekay/javadoc-i2p ~/.i2p/eepsite/docroot/javadoc-i2p/` * [Nextcloud over I2P Example](Nextcloud-over-I2P-on-Docker/) Instructions for setting up your own hosted services over I2P using NextCloud. * [DokuWiku over I2P Example](Dokuwiki-over-I2P/) Instructions for setting up your own wiki over I2P using DokuWiki. * [SSH over I2P Example](i2p-i2pd-sshsetup/) Instructions for setting up your own remote access over I2P using SSH. * [Battle for Wesnoth I2P Multiplayer](battle-for-wesnoth-i2p/) Instructions for playing Battle for Wesnoth using my server. * [Nethack I2P Multiplayer](nethack-i2p/) Instructions for playing Nethack using my server. * [I2P Browser Fingerprint Gallery](I2P-Browser-Attackability-Evaluation/) This is an ongoing evaluation of the various ways there are to configure browsers for I2P and a developing rating system for them. ### I2P Git Hosting I host git services on I2P at [git.idk.i2p](http://git.idk.i2p/), with a non-anonymous mirror available at [i2pgit.org](https://i2pgit.org). I provide this service freely to the I2P community and it is open to the public, but do have a Terms of Service which is predicated on my own threat model. If the TOS is not acceptable to you, I highly encourage you to run your own gitlab instance using the instructions I wrote, available on the I2P project [I2P Site](http://i2p-projekt.i2p/en/docs/applications/gitlab) and on the [Web](https://geti2p.net/en/docs/applications/gitlab). ### I2P Radio Station I'm also running an I2P radio station with mostly just stuff I know I can retransmit from archive.org and podcasts I like. * [IDK's Radio Station](http://radio.idk.i2p/?i2paddresshelper=Cvr39DAydBr7gfjuDbT05aVly9VLtPKRCCA6nApP9lmySvRDHIx42BLkAz6RdEgK1xGAyj1iTsFjOb8aq0mUdMzWeZXAihzrI14EAA0EKxYchS8mxZ8by0nNoGv1dzFUKIsndKWHnXsnOLaReUNi4tC4ADP49CY-cYJYhzcRK1URu-IiabypT8CvTy6t9n3jw0uKqRmDISxSLdhRTU7d8n~t-mzgOnLKJxDe88EVrYpO17r4Xm1IWfa2ETG7ex5GBrhA6QZZPY2op9GkbzslXOmdlseuKSIZBUdhKY4XcrU-xvPc35T~kjVEWwLmHrt030eezd-sm~PTHimxh-8NnZavcaBtz8kJPWml6iaRk83Ay-GUstI8sRprtjIXi5BoJ~qw9X6SnNjrOstC7~DqXa8MkRTTtmHQm7tFGBLe3ZJV~jU4RxHloYj-1fsTytBBND3oA50~i0cct86l4Y3AjvcGiT8wQj4ETMOqnvKuhML8mpaiRJMLfzyk0WTXTbogBQAEAAcAAA==) This shell script will automatically start VLC and connect it to my station. #! /usr/bin/env sh set -euo http_proxy=http://127.0.0.1:4444 vlc http://radio.idk.i2p/mpd.m3u ### I2P MMORPG I also run a BrowserQuest instance over I2P, which is a fantasy-themed browser-based MMORPG originally developed by Mozilla. It's available as a plugin in the "DungeonQuest" section above, so it's easy to **host your own** **MMORPG over I2P!** - [**Dungeon Quest**](https://h53tzppm77qya2cugxsyl7pbct7kfeo344kbpscqod6iq4xiwtiq.b32.i2p:8000/game/client/index.html) ### What's Weird about this I2P Site? This I2P site uses an experimental feature of I2P in Private browsing called X-I2P-TorrentLocation. If you are using the latest version of the extension, you may notice that there is a pageAction available in the URL bar(It's the little I2P logo). If you click that pageAction and follow the magnet link, you will begin to download a torrent named idk.i2p. As the torrent completes, the extension will begin to replace on-page resources hosted on my server with exactly the same files, except shared and downloaded via I2PSnark. The result is a sort of distributed, voluntary pseudo-CDN which makes it possible to do things like embed videos directly in your I2P Site and actually have them play completely. All of this is accomplished, of course, by cheating. If you download the torrent, the file is on your computer, so of course it's available in a reliable way. Besides that, even if your content goes down, any of your visitors will be able to reproduce your site on a new hostname, which may provide a level of resistance to being taken down. How it affects traffic flows remains to be seen, but it means that some I2P users will be fetching less content via their HTTP Proxies, and will be doing it less repeatedly. * [InfoGraphic Gallery for testing X-I2P-TorrentLocation](infographics.html) This page is to test X-I2P-TorrentLocation. It embeds a bunch of large images/infographics I collected off of reddit and is intentionally heavy so it may be slow to load. It will use torrent-based resources if I2P In Private Browsing mode is installed and the idk.i2p torrent is downloaded. * [Videos about I2P Gallery for testing X-I2P-TorrentLocation](video.html) This page is even heavier, it embeds videos that have to do with I2P and other crypto/privacy/overlay networking related topics. * [Plugin Archive](plugins.html) This page is my mirror of the plugin archive at [stats.i2p](http://stats.i2p/i2p/plugins). I created one here because the *utility* of X-I2P-TorrentLocation is that it allows you to mingle the versatile presentation abilities of hypertext with redundant, peer-to-peer resources, and by using it for plugins, we can make it much harder to take them down by taking down their archives. The same would apply for any software, actually, this is just where I started. ### Go(golang) I2P Tools * [samcatd](https://github.com/eyedeekay/sam-forwarder) a.k.a. sam-forwarder many of the other applications use sam-forwarder as a way of automatically configuring i2ptunnels, including: - [httptunnel](https://github.com/eyedeekay/httptunnel) is a standalone http proxy for I2P that uses SAM and implements an interface like sam-forwarder. - [eephttpd](https://github.com/eyedeekay/eephttpd) is a simple static http server with markdown parsing support. - [gitsam](https://github.com/eyedeekay/gitsam) is a super-simple git repository setup built on eephttpd and [gitkit](). - [reposam](https://github.com/eyedeekay/reposam) is a binary deb repository built on [repogen](). - [samtracker](https://github.com/eyedeekay/samtracker) is a simple torrent tracker built upon [retracker](). - [cowyosam](https://github.com/eyedeekay/cowyosam) is a pastebin-wiki hybrid built on [cowyo]() - [colluding_sites_attack](https://github.com/eyedeekay/colluding_sites_attack) is a tool for fingerprinting browsers as they visit eepSites to determine if useful information can be extracted. - [outproxy](https://github.com/eyedeekay/outproxy) is a standalone outproxy built on SAM. Definitely don't use it if you don't know what you're in for. - [libanonvpn](https://github.com/RTradeLtd/libanonvpn) is a VPN library and terminal application that uses SAM Datagrams. Sort of like onioncat, but cooler. * [checki2cp](https://github.com/eyedeekay/checki2cp) is an I2P router presence detection tool. Use it to find out if an I2P router is installed. * [goSam](https://github.com/eyedeekay/goSam) is a SAM library for Go that implements an HTTP Transport. * [i2pdig](https://github.com/eyedeekay/i2pdig) is dig, but for I2P. It's been a while, I'll update it soon. * [iget](https://github.com/eyedeekay/iget) iget is an eepget clone, with some extra features and room to grow. * [keyto](https://github.com/eyedeekay/keyto) is a text key conversion tool. * [sam3](https://github.com/eyedeekay/sam3) is another SAM library for Go, but it implements a net.Conn and net.Packetconn making it a near drop-in replacement for regular connections. Blog: ----- #### Sun Nov 26 03:21:12 EST 2017 Hi. This is the blog where I'm going to document all the wierd stuff I do on my home network. I'm most passionate about the areas where I am relatively free of constraints, and for me, that is in hobby computing in my own home. But since it's not a place with an IT staff and other organizational resources, I sometimes do wierd, ill-advised things to get my computers just the way I like them. Also I'm pretty bad at blogging. #### Mon Jan 22 12:41:21 EST 2018 Getting nervous, about to flash an up-to-date coreboot port to my netbook via a ch341a flasher. I'm about 99% sure I'm not going to hurt anything, but who knows? #### Tue Mar 31, 15:04:40 EST 2020 See, I told you I was pretty bad at blogging. Over 2 years. Lots of code though. #### Sun Oct 11, 04:08:56 EDT 2020 Note to self: from now on, build the site with: `make all && make seed && git commit -am "`date`" && git push --all`