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).
Go to file
Cecylia Bocovich e4f6d98fb9 Switch from twisted adbapi to sqlite3 package
The rest of GetTor uses the python sqlite3 package, and it's much
simpler to use and to test.
2020-02-07 19:15:38 -05:00
.github Add .github/FUNDING.yml 2019-09-12 15:41:59 +02:00
bin Document scripts and service files 2019-12-11 16:06:44 +01:00
config Import ilv PR introduce major refactoring and restructure to use Twisted 2019-05-13 20:45:42 +02:00
doc Import ilv PR introduce major refactoring and restructure to use Twisted 2019-05-13 20:45:42 +02:00
gettor Switch from twisted adbapi to sqlite3 package 2020-02-07 19:15:38 -05:00
scripts Modified email parser to get locales from db 2020-01-27 09:48:23 -05:00
share Update help message to allow locales 2020-01-31 11:52:23 -05:00
tests Switch from twisted adbapi to sqlite3 package 2020-02-07 19:15:38 -05:00
upload Improved templates for readme and landing 2016-02-23 19:03:11 -03:00
www Move web page out of share folder 2019-05-20 18:26:09 +02:00
.coveragerc Import ilv PR introduce major refactoring and restructure to use Twisted 2019-05-13 20:45:42 +02:00
.gitignore Start twitter responder 2019-10-09 19:23:46 +02:00
.test.requirements.txt Fix tests 2019-05-13 20:51:07 +02:00
.travis.requirements.txt Refactor code base folders structure 2019-01-28 17:01:12 +01:00
AUTHORS Update AUTHORS 2019-11-21 16:12:52 -05:00
CHANGELOG Refactor code base folders structure 2019-01-28 17:01:12 +01:00
gettor.conf.json.example Fix typo in json 2019-10-15 16:04:02 +02:00
LICENSE Changes related to GetTor meeting of October 10th. Deleted obsolete documentation. 2014-10-18 18:09:49 -03:00
MANIFEST.in Refactor code base folders structure 2019-01-28 17:01:12 +01:00
README.md Switch from twisted adbapi to sqlite3 package 2020-02-07 19:15:38 -05:00
requirements.txt Add twitter service with parsing 2019-10-10 16:18:45 +02:00
setup.cfg Refactor code base folders structure 2019-01-28 17:01:12 +01:00
setup.py Fix tests 2019-05-13 20:51:07 +02:00
strings.patch Fix issues with duplicated filename in email body 2020-01-16 17:21:00 +01:00

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: https://gitweb.torproject.org/admin/services/gettor.git/

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 tests/