Vecna 7 miesięcy temu
rodzic
commit
2a78b4e8b2
3 zmienionych plików z 212 dodań i 0 usunięć
  1. 78 0
      Dockerfile
  2. 133 0
      setup_files/config.json
  3. 1 0
      setup_files/config.toml

+ 78 - 0
Dockerfile

@@ -0,0 +1,78 @@
+FROM ubuntu:24.04
+
+# Default directory
+WORKDIR /home/user
+COPY setup_files/* /home/user/build/
+RUN sed -i 's@HOMEDIR@/home/user@g' /home/user/build/config.toml
+
+RUN apt update -y
+RUN apt install -y git cargo golang make openssl libssl-dev
+
+RUN mkdir -p /home/user/build /home/user/rdsys /home/user/lox-distributor /home/user/troll-patrol /home/user/simulation
+
+# Clone all our projects
+
+# rdsys
+WORKDIR /home/user/build
+RUN git clone https://gitlab.torproject.org/tpo/anti-censorship/rdsys.git
+WORKDIR /home/user/build/rdsys
+RUN git checkout 79332a3ee69dc6022a2a29fd8b79e9d2e4f5c9ab
+RUN sed -i 's/NUM_BRIDGES = 1000/NUM_BRIDGES = 3600/' scripts/mkdescriptors/main.go
+# configure rdsys to give Lox all the bridges
+RUN cp /home/user/build/config.json conf/
+
+# Lox distributor
+WORKDIR /home/user/build
+RUN git clone https://gitlab.torproject.org/vecna/lox.git
+WORKDIR /home/user/build/lox
+RUN git checkout 7b524e771ec444e07fff5b679c8c9e9b557829a0
+RUN mkdir -p .cargo
+RUN cp /home/user/build/config.toml .cargo/
+
+# lox_cli
+WORKDIR /home/user/build
+RUN git clone https://git-crysp.uwaterloo.ca/vvecna/lox_cli.git
+WORKDIR /home/user/build/lox_cli
+RUN git checkout d7beaad5601ad309fd5936c19e60a7ea98a05fde
+RUN mkdir -p .cargo
+RUN cp /home/user/build/config.toml .cargo/
+
+# Troll Patrol
+WORKDIR /home/user/build
+RUN git clone https://git-crysp.uwaterloo.ca/vvecna/troll-patrol.git
+WORKDIR /home/user/build/troll-patrol
+RUN git checkout dc7531689c2a5ec5b4c757f95a87f576c4d4020c
+RUN mkdir -p .cargo
+RUN cp /home/user/build/config.toml .cargo/
+
+# Lox Simulation
+WORKDIR /home/user/build/lox-simulation
+COPY Cargo.toml /home/user/build/lox-simulation/
+RUN mkdir src
+COPY src/* /home/user/build/lox-simulation/src/
+RUN mkdir -p .cargo
+RUN cp /home/user/build/config.toml .cargo/
+
+# Build all the software
+
+# Build rdsys and bridge lines
+WORKDIR /home/user/build/rdsys
+RUN make build && make descriptors
+RUN cp -r backend conf descriptors /home/user/rdsys/
+
+# Build Lox distributor
+WORKDIR /home/user/build/lox/crates/lox-distributor
+RUN cargo update && cargo build --release
+RUN cp config.json /home/user/build/lox/target/release/lox-distributor /home/user/lox-distributor/
+
+# Build Troll Patrol
+WORKDIR /home/user/build/troll-patrol
+RUN cargo update && cargo build --release --features simulation
+RUN cp target/release/troll-patrol /home/user/troll-patrol/
+
+# Build simulation
+WORKDIR /home/user/build/lox-simulation
+RUN cargo update && cargo build --release
+RUN cp target/release/lox-simulation /home/user/simulation/simulation
+
+WORKDIR /home/user

+ 133 - 0
setup_files/config.json

@@ -0,0 +1,133 @@
+{
+    "backend": {
+        "extrainfo_file": "descriptors/cached-extrainfo",
+        "networkstatus_file": "descriptors/networkstatus-bridges",
+        "descriptors_file": "descriptors/bridge-descriptors",
+        "blocklist_file": "",
+        "allowlist_file": "",
+        "bridgestrap_endpoint": "http://127.0.0.1:5001/bridge-state",
+        "bridgestrap_token": "BridgestrapApiTokenPlaceholder",
+        "onbasca_endpoint": "http://127.0.0.1:5002/bridge-state",
+        "onbasca_token": "OnbascaApiTokenPlaceholder",
+        "bandwidth_ratio_threshold": 0.75,
+        "api_endpoint_resources": "/resources",
+        "api_endpoint_resource_stream": "/resource-stream",
+        "api_endpoint_targets": "/targets",
+        "web_endpoint_status": "/status",
+        "web_endpoint_metrics": "/rdsys-backend-metrics",
+        "storage_dir": "storage",
+        "assignments_file": "assignments.log",
+        "resources": {
+            "vanilla": {
+                "unpartitioned": false,
+                "stored": false,
+                "distributors": [
+                    "https",
+                    "moat"
+                ]
+            },
+            "obfs2": {},
+            "obfs3": {},
+            "obfs4": {},
+            "scramblesuit": {},
+            "tblink": {
+                "unpartitioned": true,
+                "stored": true
+            }
+        },
+        "api_tokens": {
+            "https": "HttpsApiTokenPlaceholder"
+        },
+        "web_api": {
+            "api_address": "127.0.0.1:7100",
+            "cert_file": "",
+            "key_file": ""
+        },
+        "distribution_proportions": {
+            "https": 1
+        }
+    },
+    "distributors": {
+        "https": {
+            "resources": [
+                "obfs4",
+                "vanilla"
+            ],
+            "web_api": {
+                "api_address": "127.0.0.1:7200",
+                "cert_file": "",
+                "key_file": ""
+            },
+            "time_distribution": {
+                "num_bridges_per_request": 2,
+                "rotation_period_hours": 24,
+                "num_periods": 2,
+		"storage_dir": "storage/https"
+            }
+        },
+        "stub": {
+            "resources": [
+                "obfs4"
+            ],
+            "web_api": {
+                "api_address": "127.0.0.1:7400",
+                "cert_file": "",
+                "key_file": ""
+            }
+        },
+        "telegram": {
+            "resource": "obfs4",
+            "num_bridges_per_request": 2,
+            "rotation_period_hours": 24,
+            "token": "",
+            "min_user_id": 0,
+            "updater_tokens": {
+                "name": "DynamicBridgeTokenPlaceholder"
+            },
+            "storage_dir": "/tmp/storage_telegram",
+            "api_address": "127.0.0.1:7600",
+            "lox_server_address": "http://localhost:8001"
+        }
+    },
+    "updaters": {
+        "gettor": {
+            "github": {
+                "auth_token": "",
+                "owner": "TheTorProject",
+                "repo": "gettorbrowser"
+            },
+            "gitlab": {
+                "auth_token": "",
+                "owner": "TheTorProject"
+            },
+            "s3": [
+                {
+                    "access_key": "",
+                    "access_secret": "",
+                    "signing_method": "archive_org_dangerous_workaround",
+                    "endpoint_url": "https://s3.us.archive.org/",
+                    "endpoint_region": "",
+                    "name": "archive_org",
+                    "bucket": "",
+                    "name_procedural_generation_seed": "SECRET"
+                },
+                {
+                    "access_key": "",
+                    "access_secret": "",
+                    "signing_method": "v4",
+                    "endpoint_url": "https://s3.fr-par.scw.cloud",
+                    "endpoint_region": "fr-par",
+                    "name": "scaleway",
+                    "bucket": "get-tor",
+                    "name_procedural_generation_seed": ""
+                }
+            ],
+            "gdrive": {
+                "app_credential_path": "",
+                "user_credential_path": "",
+                "parent_folder_id": ""
+            },
+            "metrics_address": "127.0.0.1:7800"
+        }
+    }
+}

+ 1 - 0
setup_files/config.toml

@@ -0,0 +1 @@
+paths = ["HOMEDIR/build/lox/crates/lox-library", "HOMEDIR/build/lox/crates/lox-distributor", "HOMEDIR/build/lox_cli", "HOMEDIR/build/troll-patrol"]