CLOSEFILES // EPHEMERAL LOCKER

Files that close themselves.

CloseFiles is a self-hosted locker for text and files. Drop content, get a 4-character code, share it — and everything is gone when the timer ends. No accounts, no tracking, no secrets storage. This site is the project's landing page; the API runs wherever you host it.

4-char codeReadable aloud — no 0/O, 1/I, U in the alphabet.
24h auto-closeEverything expires and is purged from disk and database.
500 MB / upload10 files × 50 MB each, streamed — never buffered.
QR shareEvery drop ships with a scannable, downloadable QR code.

Run it yourself

git clone https://github.com/Hashim-Zj/closefiles.git
cd closefiles
npm install
npm run build
npm start          # serves on http://localhost:3000

Zero native dependencies — storage is Node's built-in node:sqlite. Docker and docker-compose files ship in the repo, with a Caddy reverse proxy in front.

API

Once your instance is up, interactive OpenAPI docs are at /docs on your own host, or read the raw spec: openapi.yaml (bundled with this site).

curl -X POST http://localhost:3000/api/v1/drops \
  -H "Content-Type: application/json" \
  -d '{"text":"deploy notes","expires_in":"1h"}'

Where does the data go?

Only on the server that hosts your instance — SQLite database plus blob files, both auto-purged when they expire. This Pages site stores nothing: it is a static landing page. The service itself is self-hosted by design.

Deploy guide for a Linux server: docs/DEPLOY.md · full docs in the repository.