54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
# katdrop
|
|
|
|
a minimal, smooth file transfer service with 10-minute auto-deletion.
|
|
|
|
↗ [katdrop.oiupoyt.space](https://katdrop.oiupoyt.space)
|
|
|
|
> **Backend API**: The official backend is powered by a permanent Cloudflare Tunnel at `https://katdrop-api.oiupoyt.space`.
|
|
|
|
## features
|
|
|
|
- minimal dark interface with smooth interactive particle background
|
|
- real-time backend status indicator (`online` / `offline`)
|
|
- live upload byte progress and percentage
|
|
- drag & drop files anywhere to upload instantly
|
|
- 10-minute auto-deletion timer per file with live countdown
|
|
- safe path verification and collision-free file naming
|
|
- anti-abuse IP rate limiting (120 req/min, 25 uploads/5min)
|
|
- storage quota guard (4GB cap protecting disk exhaustion)
|
|
- delete token authorization (only uploader can delete their file)
|
|
- anti-XSS download isolation (`Content-Security-Policy: default-src 'none'; sandbox` + force attachment)
|
|
- strict CORS domain whitelist (`*.oiupoyt.space`, `localhost`)
|
|
|
|
## configuration
|
|
|
|
The deployed frontend at `https://katdrop.oiupoyt.space` connects out of the box to the official permanent backend at `https://katdrop-api.oiupoyt.space`. No URL parameters or configuration required.
|
|
|
|
To connect to a custom private backend, pass `?api=...`:
|
|
```
|
|
https://katdrop.oiupoyt.space/?api=https://your-custom-backend.com
|
|
```
|
|
|
|
## usage
|
|
|
|
```bash
|
|
# install dependencies
|
|
npm install
|
|
|
|
# start server
|
|
npm start
|
|
```
|
|
|
|
Runs by default on `http://localhost:3000` (or falls back to an available port if 3000 is in use).
|
|
|
|
## endpoints
|
|
|
|
- `GET /health` - health check & uptime
|
|
- `POST /upload` - upload files (`file`)
|
|
- `GET /files` - list active files with remaining TTL
|
|
- `GET /uploads/:filename` - download file
|
|
- `DELETE /delete/:filename` - delete file
|
|
|
|
## license
|
|
|
|
MIT
|