p2r3 / Arachnidium
git clone https://github.com/p2r3/Arachnidium.git
latest · 29d ago
Self-hosted HTTP optimization/compression proxy
+1
stars, 24h · #16,283
+~9
stars, 7 days · #12,636
+404
stars, 30 days · #2,022
404
★ total · +2% this week
17
forks · 7 open issues
Star history (as recorded here)
LanguagePython
LicenseMIT
Created2026-09-24 (29d ago)
Last push18d ago
Watchers3
OwnerUser
Links
README excerpt
## Arachnidium Data-optimizing HTTP(S) proxy, powered by mitmproxy. ## Setup 0. Find a home server - this can be any internet-connected computer, like an old laptop. Currently, pre-built releases exist for x64 Windows and Linux. If you need ARM or Mac support, clone the repository and run it from source. 1. On your home server, download the portable archive for your system in Releases. 2. Extract the archive and run `Arachnidium.exe` (or `Arachnidium` on Linux). 3. Install the WireGuard client on your device: Android | iOS 4. Add the VPN preset using the QR code displayed in Arachnidium. Alternatively, use the automatically generated `wireguard.cfg` file. 5. This is where things get a little hairy - if you want to actually use this outside of your home WiFi, you'll have to configure your network to listen for incoming VPN connections. To do this, you will have to forward **UDP** port **51820** from your home server to your router. The exact process for this is vastly different for every network and router, and it would be impossible to give a universal guide in this document, so please research this yourself. Searching for "port forward udp \ " should be enough to get you on the right track. Alternatively, call your internet service provider and ask if they can help. 6. Connect to the VPN and visit `mitm.it` on your phone's browser. Follow the instructions there to set up the certificate authority. ***Make sure to read all of the instructions.*** If you run into issues, please make sure you've followed these steps carefully. Do your own troubleshooting first to make sure the issue isn't on your end (e.g. misconfigured network). Please do not message me personally asking for help - I sadly don't have the time (or patience) to be able to assist everyone, sorry. ## Configuration There are two ways to configure Arachnidium: via the graphical interface, or by editing `defaults.json`. Changes made in the GUI are not saved between restarts - for that, use the JSON file. If you want to run Arachnidium without the GUI, set `ENABLE_GUI` to `false` in `defaults.json`. ## Running from source To run this project from source code without building it (for development purposes, or to run on unsupported platforms): 1. Install Python and uv. 2. Install Bun. 3. Clone this repository with submodules (using `--recursive`). 4. Run `uv run main.py` 5. In another terminal, change directory to `bun-api` and run `bun i`, then `bun run index.ts` ## Contributing Contributions are welcome, though please note that I am personally unlikely to continue working on this project in the long term. This was something that I've wanted to experiment with for a while, but unlike some of my other projects, I have little intention of actually growing this into its own thing. I might still merge pull requests from time to time, but I probably won't close issues on my own (unless it's something critical). Before submitting an issue, make sure you've read and followed