Running Tor Project Snowflake Proxy in Kubernetes: To fight censorship

Scaling Tor Snowflake Proxy on Kubernetes

cloudwithdan

privacytor projectkuberneteshelm chartdevops

229 Words … ⏲ Reading Time:1 Minute, 2 Seconds

2026-01-30 12:00 +0000


A complete guide to deploying, monitoring, and contributing to internet freedom with a Helm chart


The Problem: Internet Censorship is Growing

Every day, millions of people around the world face internet censorship. Governments block access to news, social media, and communication tools. Journalists, activists, and ordinary citizens are cut off from the free flow of information.

The Tor network has long been a lifeline for these users, but censors have learned to block direct Tor connections. This is where Snowflake comes in.

What is Snowflake?

Snowflake is a pluggable transport for Tor that helps users in censored regions bypass internet restrictions. It works by using WebRTC, the same technology that powers video calls in your browser, to create ephemeral bridges that are difficult to block.

Quick Start

Installation

# Add the Helm repository
helm repo add tor-snowflake-proxy https://cloudwithdan.github.io/tor-snowflake-proxy-helm-chart
helm repo update

# Install with default settings
helm install snowflake tor-snowflake-proxy/tor-snowflake-proxy

# Or customize
helm install snowflake tor-snowflake-proxy/tor-snowflake-proxy \
  --set replicaCount=1 \
  --set autoscaling.enabled=true

Verify It’s Working

kubectl logs -l app.kubernetes.io/name=tor-snowflake-proxy --tail=50

You should see:

Using geoip file /usr/share/tor/geoip with checksum e6799d907824ac58cc...
Proxy starting
NAT type: restricted

And periodically:

In the last 1h0m0s, there were 73 completed successful connections.
Traffic Relayed ↓ 477195 KB, ↑ 93666 KB.

That’s it — you’re now helping users bypass censorship!

Monitoring

  • Grafana dashboard with CPU, memory, and network metrics

Stay tuned for more posts!