GetTor is a program that presents alternative methods to download Tor Browser, especially when access to Tor Project's official website and mirrors is blocked. For Information in Trac:
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
meskio 48441adc2e
Write the right gitlab link
11 months ago
.github Add .github/FUNDING.yml 3 years ago
bin Document scripts and service files 3 years ago
config Import ilv PR introduce major refactoring and restructure to use Twisted 3 years ago
doc Remove old upload documentation 2 years ago
gettor Treat all email sending exceptions the same 2 years ago
scripts Write the right gitlab link 11 months ago
share Add signature verification instructions to email 3 years ago
tests Only parse email subject and body 2 years ago
.coveragerc Import ilv PR introduce major refactoring and restructure to use Twisted 3 years ago
.gitignore Start twitter responder 3 years ago
.test.requirements.txt Fix tests 3 years ago
.travis.requirements.txt Refactor code base folders structure 4 years ago
AUTHORS Update and requirements.txt 3 years ago
CHANGELOG Refactor code base folders structure 4 years ago
LICENSE Update license 2 years ago Expand tests for database functions in gettor 3 years ago
gettor.conf.json.example Fix typo in json 3 years ago
requirements.txt Update and requirements.txt 3 years ago
setup.cfg Refactor code base folders structure 4 years ago Make one script for automatic updates 1 year ago

GetTor Revamp

GetTor Revamp done during the Google Summer of Code 2014 for the Tor Project. This repository continues to being used for improvements and further development.

What is GetTor?

GetTor was created as a program for serving Tor and related files over SMTP, thus avoiding direct and indirect censorship of Tor's software, in particular, the Tor Browser Bundle (TBB). Users interacted with GetTor by sending emails to a specific email address. After the user specified his OS and language, GetTor would send him an email with an attachment containing the requested package. This worked well for a while, but the bundles started to get too large for being sent as attachments in most email providers. In order to fix this, GetTor started to send (Dropbox) links instead of attachments.

What are the goals of the new GetTor?

Here is a list of the main goals the new GetTor should accomplish:

  • Safe. Remember we are serving people under heavy censorship.
  • Easy to use. The fewer user interactions, the better.
  • Clean code. It should be clear to other developers/contributors how GetTor works and how it can be improved.
  • Automated. We should try to automate things as much as possible.
  • Language and provider friendly. It should be easy to support new languages and to add new providers for storing packages and generate links.

Installing GetTor

To install gettor locally please install the following packages (on debian):

python3-coverage python3-dkim python3-dns python3-internetarchive python3-openssl python3-pytest python3-requests-oauthlib python3-service-identity python3-twisted sqlite3

The following packages are needed to run a gettor instance:

internetarchive jq rclone

Specifically: internetarchive is needed to send Tor Browser files via command line to the internet archive. jq is a json parser that is used to find out about the new tor browser releases. Both internetarchive and jq are used in: scripts/update_files

The following packages are instead needed to deploy gettor via ansible:

ansible ansible-lint

Gettor ansible playbooks live at:

Finally the following package is used store Tor Browser files via git and support large files: git-lfs

Once gettor is installed you can run it with:

$ ./bin/gettor_service start

Running tests

GetTor includes PyTest unit tests. To run the tests, first install the dependencies above and then run:

$ python3 scripts/create_db -n -c -o -f tests/gettor.db
$ python3 scripts/add_links_to_db -f tests/gettor.db
$ pytest-3 -s -v tests/