Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 00:30
· 35 commits to main since this release

The upload response changed

One shape for every upload, whether it carried one file or ten:

{
  "files": [
    { "url": "https://files.example.com/f/20260815-143022-8f4e…/photo.jpg",
      "name": "photo.jpg",
      "size_bytes": 12345 }
  ]
}

The same URL now also comes back in the Location header, where HTTP puts the
address of a thing a POST just created.

Breaking: the top-level url is gone, and so are id and mime, which
the URL already contains. size is now size_bytes, because a number without
a unit is a guess. A client that read .url should read .files[0].url.

Uploads can expire

curl -X POST -H "Authorization: Bearer $GODROP_TOKEN" \
  -H "X-Expires-In: 7d" -F "file=@invoice.pdf" https://files.example.com/upload

30m, 12h, 7d, 30d. ?expires= does the same for clients that cannot
set a header. The response then carries expires_at, the file stops answering
when it runs out, and the instance's retention period is the cap.

Setup asks less and finishes the job

  • godrop init now checks the things that used to fail at the very end
    (the data directory, docker, systemd, the port) before it asks anything, so
    a setup that cannot work says so on the first screen rather than the last.
  • It runs docker compose up -d and the health check itself instead of
    printing them for you to paste.
  • Compose deployments no longer ask where to keep the files: they get a named
    volume.
  • Everything it writes goes to ~/.godrop (%APPDATA%\GoDrop on Windows),
    not the directory you happened to be standing in.
  • On macOS every question took two presses of enter. One now.

godrop uninstall

Removes what godrop init created, lists it first, and asks. It only deletes
generated files it can prove it wrote, and it refuses outright when the binary
came from apt, dnf, brew or scoop, pointing at those instead. --purge adds
the uploaded files.

Install

curl -fsSL https://godrop.sh/install.sh | sh

Or with Docker:

docker run -d --name godrop --restart always -p 8747:8747 \
  -e GODROP_TOKENS=$(openssl rand -hex 16) \
  -v godrop-data:/data ghcr.io/fatihbaltaci/godrop:v1.1.0

Debian and RPM packages are attached below; they set up the systemd service
for you. Every archive's checksum is listed in SHA256SUMS.