i2p.plugins.tor-updater

A Tor package updater and runner as an I2P Plugin. This plugin is usable on Windows, Linux, and OSX, as is the freestanding binary. This also functions as a freestanding update for the Tor Browser Bundle and is capable of configuring Tor Browser from the terminal and updating it without running it, should the user choose to operate this way.

Usage:

See Usage for command-line usage. When used from the Terminal, it acts as a cross-platform Tor Browser installer and wrapper, which adds non-Tor specific options.

HTML version

Plugin:

Clearnet visitor? You’ll need to use the Github Releases Mirror.

Status:

Screenshot 2

Linux: Usable, everything implemented works. Windows: Usable, everything implemented works. OSX: Usable, everything implemented works.

Other systems are not targeted and should use a Tor binary built from source, provided by TPO or, their prefered package management system and not this plugin. The plugin will not start a Tor instance if a SOCKS proxy is open on port 9050.

Screenshot

Primary Goals(Done):

  1. Ship known-good public keys, download a current Tor for the platform in the background, authenticate it, and launch it only if necessary.
  1. Supervise Tor as a ShellService plugin to I2P
  1. Keep Tor up-to-date
  1. Work as an I2P Plugin OR as a freestanding app to be compatible with all I2P distributions
  1. Download Tor Browser from an in-I2P mirror(or one of a network of in-I2P mirrors)

Secondary Goals(Also done):

  1. Launch Tor Browser
  1. Configure and launch Tor browser for use with I2P

Optional Features I might add if there is interest(Not much stopping me…):

  1. Mirror the files which it downloads to an I2P Site
  1. Mirror the files which it downloads to I2P torrents
  1. Set up an onion site which announces an I2P mirror exists
  1. Use Bittorrent-over-I2P to download the Tor Browser software
  1. Import libi2pd and offer the use of an embedded i2pd router.
  1. Option to use BRB in a thread as an in-I2P replacement for mibbit IRC client.

Usage as a Library

More information at the GoDoc

This is also useful as a library for downloading a Tor Browser Bundle. This API isn’t really stable, more “stabilizing.” Feel free to use it, but it may still change a little.

To create a new instance, use:

client, err = tbserve.NewClient(*verbose, *lang, *system, *arch, &content)

Customize the client using the exposed variables and methods:

client.Host = *host
client.Port = *port
client.TBS.Profile = &content
client.TBS.PassThroughArgs = flag.Args()

And serve the controller:

if err := client.Serve(); err != nil {
  log.Fatal(err)
}

Similar Projects:

Why this is Better than those projects(A.K.A Why didn’t you just use…)

TorBrowser Launcher

i2p.plugins.tor-manager is in many ways a clone of Tor Browser Launcher by Micah Lee, it reproduces all of TBL’s functionality for downloading, verifying, and running Tor Browser. In particular Micah’s project deserves credit for the AppArmor profiles, which were used in the apparmor profile generator functionality and will probably continue to be the upstream example which I use in my code. Micah’s also already got a PPA, a FlatPak, a Snap, an .rpm and a bunch of other stuff that provides, through packaging, a better way to deal with updates to his software and a better way to deal with the supply chain for many users. There is no reason that i2p.plugins.tor-manager cannot do this, in fact it’s easier for us than it is for Micah, but this project is about a month and a half old and his is several years old. I haven’t done a bunch of packages yet.

Improvements on Tor Browser Launcher include:

TB-Updater(Whonix)

tb-updater is generally only useful on Linux systems and especially Debian-based systems, and only recieves serious testing within the Whonix system itself. It’s a highly specialized tool in some ways, depending on packages which must be installed and repositories which must be configured. For their purposes, this is probably a good thing, Whonix’s raison d’etre is to carefully configure every aspect of their system to be as anonymous and secure as possible, and their approach deals with supply-chain issues which i2p.plugins.tor-manager can only deal with in packaging and not by adding features to the launcher itself. Therefore, while most of the improvements on Tor Browser Launcher also apply to TB-Updater, the i2p.plugins.tor-manager and tb-launcher are actually less directly comparable.

Garlic icons created by Icongeek26 - Flaticon Onion icons created by Freepik - Flaticon

More Screenshots: