{"id":28939221,"url":"https://github.com/torserv/torserv","last_synced_at":"2025-08-02T21:10:04.212Z","repository":{"id":299119862,"uuid":"1002103471","full_name":"torserv/torserv","owner":"torserv","description":"Hardened zero-config static web server that automatically launches as a Tor hidden service. Ideal for anonymous publishing in hostile environments.","archived":false,"fork":false,"pushed_at":"2025-06-22T15:21:36.000Z","size":24944,"stargazers_count":27,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T16:28:46.546Z","etag":null,"topics":["darkweb","ffoss","hidden-service","privacy","raspberry-pi","static-site","tor","webserver","zero-config"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/torserv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["https://paypal.me/torserv"]}},"created_at":"2025-06-14T18:09:57.000Z","updated_at":"2025-06-22T15:21:40.000Z","dependencies_parsed_at":"2025-06-22T16:24:18.641Z","dependency_job_id":null,"html_url":"https://github.com/torserv/torserv","commit_stats":null,"previous_names":["torserv/torserv"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/torserv/torserv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torserv%2Ftorserv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torserv%2Ftorserv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torserv%2Ftorserv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torserv%2Ftorserv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/torserv","download_url":"https://codeload.github.com/torserv/torserv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torserv%2Ftorserv/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261386809,"owners_count":23150873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["darkweb","ffoss","hidden-service","privacy","raspberry-pi","static-site","tor","webserver","zero-config"],"created_at":"2025-06-23T00:07:16.866Z","updated_at":"2025-08-02T21:10:04.193Z","avatar_url":"https://github.com/torserv.png","language":"Go","funding_links":["https://paypal.me/torserv"],"categories":[],"sub_categories":[],"readme":"## 🛠️ TorServ\n\n**TorServ** is a zero-configuration static web server that instantly launches as a **Tor hidden service**, with no setup or dependencies. It’s built for **anonymous, censorship-resistant hosting** in privacy-critical or high-risk environments.\n\nUnzip and run — TorServ includes hardened security defaults, built-in Tor integration, and a multilingual landing page to help visitors stay safe on the dark web.\n\n📢 **Follow development**: [@TorServ1](https://x.com/TorServ1)\n\n🔗 **Main Website**: [https://torserv.org](https://torserv.org)\n\n🛠️ **Website Source Code**: [https://github.com/torserv/torserv-web](https://github.com/torserv/torserv-web)\n\n[![Stars](https://img.shields.io/github/stars/torserv/torserv?style=flat-square)](https://github.com/torserv/torserv/stargazers)\n[![Release](https://img.shields.io/github/v/release/torserv/torserv?style=flat-square)](https://github.com/torserv/torserv/releases)\n\n[![Sponsor](https://img.shields.io/badge/Sponsor-💜%20TorServ-blueviolet?style=for-the-badge)](https://paypal.me/torserv)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/Screenshot.jpg\" alt=\"TorServ Terminal Screenshot\"\u003e\u003cbr\u003e\n  \u003cem\u003eTorServ automatically launching your Tor hidden service with no setup\u003c/em\u003e\n\u003c/p\u003e\n\n---\n\n## 🧅 Onion Mirror\n\nTorServe.org is accessible via the Tor network:\n\n**torservqv27yflqzhe75mojvxp364rfhqjobkte4q5v2u2jjuokchoid.onion**\n\nUse the [Tor Browser](https://www.torproject.org/) to visit.\n\n---\n\n## 💬 Join the Discussion\n\nHave ideas? Questions? Concerns?\nWhether you're a privacy expert or just Tor-curious, your input matters.\n\n👉 [Join the discussions](https://github.com/torserv/torserv/discussions) and help steer TorServ in the right direction — no question is too small, all feedback is welcome and encouraged.\n\n---\n\n## 🧭 Quick Start\n\n**Unzip → Execute binary → Get instant `.onion` address**\n\nThe Tor hidden service starts automatically. The `.onion` address is printed to the console.\n\n---\n\n## 🎯 Project Goals\n\n* 🧳 **Zero-config setup:** unzip → run → receive `.onion` URL\n* 🕳️ **No clearnet exposure:** listens only on `127.0.0.1`\n* 🕵️ **Privacy-first:** no logs, no outbound traffic, no analytics\n* 🛡️ **Safe defaults for hostile environments** *(assume compromise, not safety)*\n* 🌐 **Multilingual landing page** with built-in safety guide (no JS required)\n* 💻 **Prebuilt binaries** for Linux (x64) and Raspberry Pi (ARMv7/ARM64)\n\n---\n\n## ✨ Key Features\n\n* ✅ **Hardened static file server** written in Go (raw TCP, no framework)\n* ✅ **Automatic Tor hidden service**, self-contained (bundled `tor`)\n* ✅ **Multilingual `index.html`** with embedded safety instructions\n* ✅ **Image metadata scrubbing** for JPEG, PNG, GIF, BMP\n* ✅ **Optional `.onion` key rotation** via `--new-key`\n* ✅ **Encrypted file paths in HTML** — no filenames or directories exposed\n* ✅ **Chunked transfer encoding + response padding** to resist fingerprinting\n* ✅ **Timing jitter (50–200ms)** masks request-response patterns\n* ✅ **No JS, no clearnet fetches, no cacheable responses**\n\n---\n\n## 🧠 Safety Features\n\n* 🔐 **Header Sanitization** – Strips `Date`, `ETag`, `Last-Modified`, `User-Agent`, etc.\n* 🧱 **Localhost Binding Only** – Never exposed to public interfaces\n* 🧼 **Metadata Scrubbing** – EXIF and other metadata removed from supported image types\n* 🕒 **Timing Obfuscation** – Adds random response delay to reduce timing attacks\n* 📦 **Response Padding** – Uniform response sizes to prevent content inference\n* 🚫 **No Caching** – Disables all cache headers to avoid leak-through\n* 🧳 **Offline-Only Assets** – Fully self-contained; no JS, fonts, or network calls\n* 🌍 **Static Safety Guide** – Tabbed multilingual HTML, fully local\n* 🧊 **File/Path Obfuscation** – Encrypted file references, not human-readable\n* 🤖 **Scanning Bot Trap** – Bots scanning for non existent directories/files get a slow trickle of garbage instead of 404\n* 🔒 **Firejail Sandboxing** – Automatically runs in a lightweight security sandbox if Firejail is installed\n\n---\n\n## 🖥️ Installation \u0026 Usage\n\n### 🐧 Linux (x86\\_64)\n\n```bash\nunzip torserv-linux-amd64.zip\ncd TorServ\n./torserv\n```\n\n### 🍓 Raspberry Pi (ARM64)\n\n```bash\nunzip torserv-rpi-arm64.zip\ncd TorServ\n./torserv\n```\n\n\u003e The Tor hidden service will start and print a `.onion` address to the terminal.\n\u003e Use [Tor Browser](https://www.torproject.org/download/) to access it.\n\n### 🚫 Windows\n\n⚠️ **Note:** Windows release dropped due to aggressive antivirus false positives.\nYou may still build from source if desired.\n\n---\n\n## 🔒 Running TorServe Safely with Firejail\n\nTorServe now includes **built-in Firejail sandboxing**. If Firejail is installed, TorServe will automatically re-execute itself inside a secure container to reduce attack surface.\n\n### ✅ Default Behavior\n\nJust run TorServe as usual:\n\n```bash\n./torserv\n```\n\nIf Firejail is available, you’ll see:\n\n```\n[*] Launching inside Firejail sandbox...\n```\n\nIf Firejail is not installed, TorServe will still run normally and recommend installing it for improved security.\n\n### ❎ Disable Firejail\n\nTo skip sandboxing (e.g., for debugging):\n\n```bash\n./torserv --no-firejail\n```\n### 🛠️ Installing Firejail (Debian/Ubuntu)\n\n```bash\nsudo apt update\nsudo apt install firejail\n```\n---\n\n## 🛠️ Build from Source\n\ntorserv is written in Go and requires the Tor binary to be present in a `tor/` directory inside the project.\n\n### 📦 Requirements\n\n* Go 1.20+\n* Git\n* `tor` binary (from [torproject.org](https://www.torproject.org/download/tor/))\n* Optional: cross-compilers for other platforms\n\n### 📁 Setup Instructions\n\n```bash\ngit clone https://github.com/torserv/torserv.git\ncd TorServ\nmkdir tor/\n```\n\n### 🔍 Install Tor Binary\n\n#### Linux (Debian-based)\n\n```bash\nsudo apt update\nsudo apt install tor\nwhich tor\ncp $(which tor) tor/\n```\n\n\u003e Same applies on Raspberry Pi if using Raspbian/Debian.\n\n#### Windows\n\nDownload the [**Tor Expert Bundle**](https://www.torproject.org/download/tor/) and place `tor.exe` into `tor\\`.\n\n### 🔧 Build Commands\n\n#### 🐧 Linux (x86_64 or ARM64, including Raspberry Pi from local terminal)\n\n```bash\ngo build -o release/linux/TorServ/torserv ./cmd/torserv\n```\n\n#### 🪟 Windows (Cross-compile from Linux/macOS)\n\n```bash\nGOOS=windows GOARCH=amd64 CGO_ENABLED=0 \\\ngo build -o release/windows/TorServ/torserv.exe ./cmd/torserv\n```\n\n#### 🍓 Raspberry Pi 4+ (ARM64, cross-compiled)\n\n```bash\nGOOS=linux GOARCH=arm64 CGO_ENABLED=0 \\\ngo build -o release/rpi/TorServ/torserv ./cmd/torserv\n```\n\n---\n\n### 📂 After Building\n\nYour binary will be in:\n`release/\u003cplatform\u003e/TorServ/`\n\nCopy it to the project root to run:\n\n```bash\n./torserv\n```\n\ntorserv will auto-launch the Tor hidden service if `tor/` is present. If not, it will exit.\n\n---\n\n## 🌍 Demo Page Language Support\n\n* English (default)\n* 简体中文 (Simplified Chinese)\n* Español (Spanish)\n* Русский (Russian)\n* \u003cspan dir=\"ltr\"\u003eفارسی (Farsi)\u003c/span\u003e\n* Italiano (Italian)\n* 한국어 (Korean)\n\n---\n\n## 📜 License\n\nThis project is licensed under the MIT License (see LICENSE file)\n\n---\n\n## 🧭 Support the Tor Project\n\nYou’ll need the [Tor Browser](https://www.torproject.org/download/) to access `.onion` sites.\n\nIf you care about privacy, consider supporting the [Tor Project](https://support.torproject.org/).\n\n---\n\n## 👋 Contributing\n\nWelcoming:\n\n* 🔐 Security audits\n* 🐞 Bug reports\n* 🌟 Feature requests\n* 🌍 Translations\n* 💻 Code contributions\n* 🧠 Thoughtful feedback\n* 💸 [Financial support](https://paypal.me/torserv) - This project incurs monthly expenses to run\n\n---\n\n### 🧅 Tor Binary Licensing\n\ntorserv bundles the unmodified official `tor` binary for convenience.\nTor is licensed under the **BSD 3-Clause License**.\n\nThis project is **not affiliated with or endorsed by the Tor Project**.\nAll credit for Tor belongs to [The Tor Project](https://www.torproject.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftorserv%2Ftorserv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftorserv%2Ftorserv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftorserv%2Ftorserv/lists"}