GoDrop
Upload a file, get a hard-to-guess URL.
Written in Go: one binary, no database.
Install
curl -fsSL https://godrop.sh/install.sh | sh
The script verifies the release checksum before installing anything, then
hands over to godrop init, which writes the configuration,
creates your first token and checks that the internet can actually reach
your server.
Use it
1 Upload, with a token
curl -X POST -H "Authorization: Bearer $GODROP_TOKEN" \
-F "file=@photo.jpg" https://files.example.com/upload
and back comes the URL
{
"files": [{ "url": "https://files.example.com/f/20260815-143022-8f4e…/photo.jpg",
"name": "photo.jpg", "size_bytes": 12345 }]
}
2 Share it, no token needed
curl -O https://files.example.com/f/20260815-143022-8f4e…/photo.jpg
The 128 random bits in the name are the only key. Anyone with the link can read it; nobody can find it by guessing.
3 Delete it when you are done
curl -X DELETE -H "Authorization: Bearer $GODROP_TOKEN" \
https://files.example.com/f/20260815-143022-8f4e…/photo.jpg
Or set GODROP_RETENTION=30d and let it clean up after
itself.
HTTPS, without a proxy
On a public domain GoDrop gets its own certificate from Let's Encrypt and renews it. Two lines, no Caddy, no nginx, no certbot:
GODROP_TLS=auto
GODROP_BASE_URL=https://files.example.com
Open ports 443 and 80 on the server and in your cloud provider's
firewall: 80 is where the certificate challenge is answered. Already have
a certificate? Point GODROP_TLS_CERT and
GODROP_TLS_KEY at it instead. Behind a proxy or on a private
network, leave TLS off and nothing changes.
What it does
--json; the server serves /llms.txt.GODROP_TLS=auto and the certificate looks after itself.godrop doctor checks storage, firewall, TLS and reachability.For AI agents
Give an agent two values, a base URL and a token, and it can work out the rest by itself. Every instance describes its own API, with the limits that instance actually enforces:
curl https://files.example.com/llms.txt # the whole API in plain text
curl https://files.example.com/openapi.yaml # machine-readable schema
This site has one too, describing the project rather than an instance: godrop.sh/llms.txt.
There is a ready-made agent skill, which GoDrop installs itself:
godrop skill install --scope user
# or, for any of the other agents:
gh skill install fatihbaltaci/GoDrop godrop --scope user
Run it anywhere
- Docker:
docker run -d --name godrop --restart always -v godrop-data:/data ghcr.io/fatihbaltaci/godrop - A plain VPS: one binary and a hardened systemd unit
- Fly.io, Railway, Render: ready-made manifests, each with a volume