Quickstart
Set up jalco-drop on Cloudflare in a few minutes, or as a Docker container on any server.
You need Node 22.18 or newer. Pick where it runs.
The fastest way is the button. It forks the repo into your GitHub account, creates the R2 bucket, asks for an ADMIN_TOKEN (any long random string; save it in a password manager) and deploys to a workers.dev address. Add your own domain afterwards under the Worker’s Domains & Routes.
To set it up from your terminal instead:
You need a Cloudflare account with the domain you want to serve from, R2 enabled, and Browser Rendering (on the Workers Free plan, 10 browser minutes a day, about one preview card per upload).
Create the project
npx jalco-drop init my-dropSetup copies the project and asks for your domain, your name, a site name, an accent colour, a code theme and where / should redirect. Every question has a default.
Deploy
Answer yes when setup offers to deploy. It signs in to Cloudflare, creates the R2 bucket, deploys the Worker, and prints a new admin token once. Save it in a password manager.
Upload something
export JALCO_DROP_URL=https://drop.example.com
export JALCO_DROP_TOKEN=<your admin token>
bin/jalco-drop README.mdOn Render, the button runs the image with a 10 GB disk and generates the admin token for you. Render needs a paid plan for disks.
On your own server:
You need Docker and a server with a domain pointed at it.
Create the project
npx jalco-drop init my-drop --target dockerSetup writes .env (with a fresh admin token) and docker-compose.yml.
Start it
cd my-drop
docker compose up -d --buildThe image includes Chromium, so preview cards work out of the box. Files go to the drop-data volume.
Put TLS in front
Point your domain at the server through a reverse proxy with TLS, such as Caddy, nginx or Cloudflare Tunnel, forwarding to port 3000.