Commit cd09279c authored by Gus's avatar Gus 🍕
Browse files

Merge branch 'add-snowflake'

parents 2f38a968 20d835c2
_model: page
---
color: primary
---
title: Browser Snowflake proxy
---
body:
Running a Snowflake proxy as a browser add on is a great low-effort way to donate bandwidth if you don't have acces to an always-on highly connected server. There are very few requirements to running a browser-based proxy:
1. Use Firefox or Chromium/Chrome as your browser
2. Have WebRTC enabled
### 1. Install the Snowflake addon to your browser
If you are running Firefox, you can install our [Firefox addon](https://addons.mozilla.org/en-US/firefox/addon/torproject-snowflake/). Chome users can install our addon from the [Google webstore](https://chrome.google.com/webstore/detail/snowflake/mafpmfcccpbjnhfhjnllmmalhifmlcie).
Once it is installed, you can toggle the `Enabled` switch to turn it off and on. It's easiest to leave it running while you browse and it should not interfere with your regular browsing experience.
### 2. Monitor your Snowflake's status and usage
The Snowflake addon will inform you about how many people you have helped in the last 24 hours. It will also display an error message if the Snowflake could not connect to clients or the Snowflake bridge.
---
html: two-columns-page.html
---
key: 2
---
subtitle: How to run a Snowflake proxy in your browser
---
section: Snowflake
---
section_id: snowflake
_model: page
---
title: Snowflake
---
body:
This guide will help you set up a Snowflake proxy to help censored users connect to the Tor network. The requirements are:
1. Internet connectivity
If you don't meet the requirements to run a Tor relay or obfs4 bridge, running a Snowflake proxy is a great way to donate your bandwidth to help users circumvent censorship.
There are a few different options for running a Snowflake proxy.
---
html: two-columns-page.html
---
key: 5
---
section: Snowflake operations
---
section_id: snowflake-operations
---
subtitle: Run an snowflake proxy to help censored users connect to the Tor network
---
_slug: {{snowflake}}
---
color: primary
---
_model: page
---
color: primary
---
title: Standalone Snowflake proxy
---
body:
This guide will help you set up a standalone Snowflake proxy on a server to help censored users connect to the Tor network. The only requirements are internet connectivity, however one of the main advantages of standalone Snowflake proxies is that they can be installed on servers and offer a higher bandwidth and more reliable option for users behind restrictive NATs and firewalls. Therefore, we especially recommend:
1. 24/7 Internet connectivity
2. A full-cone NAT (you can use this [NAT behaviour tool](https://github.com/pion/stun/tree/master/cmd/stun-nat-behaviour) to test what type of NAT you have. The properties you are looking for are address-independent mapping and either address-independent or address-dependent filtering)
There are several ways to setup and run a standalone snowflake proxy.
### Docker setup
You must first have [Docker](https://docs.docker.com/engine/install/) and [docker-compose](https://docs.docker.com/compose/install/) installed.
We have a [Docker image](https://hub.docker.com/repository/docker/thetorproject/snowflake-proxy) to ease the setup of a snowflake proxy. First [download docker-compose.yml](https://gitlab.torproject.org/tpo/anti-censorship/docker-snowflake-proxy/raw/main/docker-compose.yml). Then, deploy the proxy by running
```
docker-compose up -d snowflake-proxy
```
You should now see the output:
```
Creating snowflake-proxy ... done
```
and your proxy is up and running!
### Ansible
There is now an ansible role to install a Snowflake proxy on Debian [created by Jacobo Nájera](https://lists.torproject.org/pipermail/anti-censorship-team/2021-March/000143.html): https://galaxy.ansible.com/nvjacobo/snowflake
### Compiling and running from source
1. First you will need to install and configure Go to build the standalone proxy-go code. If you are running Ubuntu or Debian, you can install Go by executing `apt install golang`. Otherwise visit https://golang.org/dl/. You will need Go 1.13+ to run the Snowflake proxy.
2. Clone the [source code](#source-code).
```
git clone https://git.torproject.org/pluggable-transports/snowflake.git
```
3. Build the Snowflake proxy.
```
go build
```
4. Run the Snowflake proxy.
For our fallback proxy-go instances on snowflake-broker, [we manage proxy-go instances using runit](https://gitlab.torproject.org/tpo/anti-censorship/team/-/wikis/Survival-Guides/Snowflake-Bridge-Survival-Guide#standalone-proxy-go-instances). However, a simpler nohup command will also allow you to run an instance in the background.
```
nohup ./proxy &
```
---
key: 1
---
html: two-columns-page.html
---
subtitle: How to run a standalone Snowflake proxy
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment