A REST API for uploading, managing, and sharing files, built with Rust and Axum. Live at files.tanciaku.com — self-hosted on a Debian VPS, manually configured from scratch with Nginx as a reverse proxy, Let's Encrypt TLS (A+ rated), and a GitHub Actions pipeline that builds the release binary, runs migrations, and deploys on push to main.
- Hardened server: UFW firewall, Fail2ban, SSH key-only auth, rate limiting on all sensitive endpoints, A+ security headers
- Upload validation (type + size), download, delete, pagination, and per-file metadata with download count tracking
- Time-limited shareable download links with cascade deletion
- JWT auth (HS256), Argon2 password hashing, full integration test suite against a real PostgreSQL database