Documentation
Installation and usage guide for rawuploader (tcpraw).
Requirements
No special requirements to run the client or server — use the pre-built binaries from GitHub. Go 1.21+ is only needed if you want to build the project from source yourself.
Install — Linux
curl -sSL https://raw.githubusercontent.com/hdmain/rawuploader/main/install.sh | bash
Install — Windows
In PowerShell (run as Administrator):
irm https://raw.githubusercontent.com/hdmain/rawuploader/main/install-win.ps1 | iex
Send (upload)
tcpraw send <file>
Uploads the file, encrypts it with a new 6-digit code, and prints the code. Server is chosen from the address list (first digit of code = server id).
Secure send (upload with your own key)
tcpraw secure send <file>
Encrypts the file with a 256-bit key (generated by the client). The server assigns the 6-digit code and stores data encrypted; it never sees the key. After upload you get the code and the key (64 hex chars) — without the key the file cannot be decrypted. For files >500 MB data is streamed (no more than ~500 MB in RAM).
Get (download)
tcpraw get <6-digit-code> [-o file]
Downloads the file for the given code. For regular “send” uploads decryption uses the code. For “secure send” the program will prompt for the key (64 hex chars). Use -o file to set the output filename.
Server
tcpraw server -port=9999 -dir=./data
Runs the TCP server. Options:
-port— TCP port (default 9999)-dir— Directory for encrypted blobs (default./data)-web— HTTP port for the web download page; omit to disable
With web download page (browser, no client):
tcpraw server -port=9999 -dir=./data -web=8080
Then open http://SERVER:8080 in your browser and enter the 6-digit code to download. Web download works only for regular “send” uploads; “secure send” files require the client and the key.
Other
Running tcpraw with no arguments or an unknown command shows total free space across all servers from the list.
Configuration (main.go)
Edit the variables at the top of main.go to change defaults. Server list is in client.go (first digit of code = server id).
| Variable | Default | Description |
|---|---|---|
| (server list) | in client.go | Server addresses; first digit of code = id |
StorageDuration | 30 * time.Minute | How long blobs are kept |
CleanupInterval | 5 * time.Minute | How often expired blobs are removed |
MaxBlobSize | 15 GB | Max size per upload (bytes) |
RateLimitAttempts | 50 | Max code checks per IP per window |
RateLimitWindow | 10 * time.Minute | Rate limit window |
BanDuration | 15 * time.Minute | Ban duration when limit exceeded |