i2p.plugins.tor-updater
A Tor package updater and runner as an I2P Plugin. This plugin is usable on Windows and Linux for now. OSX support is planned soon.
Usage:
See Usage for command-line usage.
Status:
Linux: Usable, most things work. Windows: Usable, most things work. OSX: Unstable, untested, not usable, WIP.
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.
Primary Goals
- Ship known-good public keys, download a current Tor for the platform in the background, authenticate it, and launch it only if necessary.
- Works on Windows, Linux, probably also OSX
- Supervise Tor as a ShellService plugin to I2P
- Works on Linux, Windows
- Keep Tor up-to-date
- Works on Windows, Linux, probably also OSX
- Work as an I2P Plugin OR as a freestanding app to be compatible with all I2P distributions
- Works on Linux, Windows
- Download Tor Browser from an in-I2P mirror(or one of a network of in-I2P mirrors)
- Not done
Secondary Goals:
- Launch Tor Browser
- Works on Linux, Windows, maybe OSX
- Configure and launch Tor browser for use with I2P
- Works on Linux, Windows.
Optional Features I might add if there is interest
- Mirror the files which it downloads to an I2P Site
- Probably works on everything
- Mirror the files which it downloads to I2P torrents
- Not done
- Set up an onion site which announces an I2P mirror exists
- Not done
- Use Bittorrent-over-I2P to download the Tor Browser software
- Not Done
Usage as a Library
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:
Garlic icons created by Icongeek26 - Flaticon Onion icons created by Freepik - Flaticon