# Quoter πŸš€ > Simple file upload proxy with quotas. Upload to S3, thumbnails via Vercel. **Focus**: Upload + Storage. Thumbnails managed by Vercel Edge API for better performance. ## What it does - πŸ“€ **Upload files** to S3/Storj with user quotas - πŸ” **JWT authentication** with session management - πŸ“¦ **File serving** with caching and optimization - 🌐 **CORS support** for web apps ## πŸš€ Quick Start ```bash # Setup cargo build cp .env.example .env # Configure environment cargo run # Test curl http://localhost:8080/ # Health check ``` ## πŸ”§ API | Method | Endpoint | Description | |--------|----------|-------------| | `GET` | `/` | Health check or user info (need auth token) | | `POST` | `/` | Upload file (need auth token) | | `GET` | `/{filename}` | Get file or thumbnail | ### Upload file ```bash curl -X POST http://localhost:8080/ \ -H "Authorization: Bearer your-token" \ -F "file=@image.jpg" ``` ### Get thumbnail ```bash # Legacy thumbnails (fallback only) curl http://localhost:8080/image_300.jpg # πŸ’‘ Recommended: Use Vercel Image API https://yoursite.com/_next/image?url=https://files.dscrs.site/image.jpg&w=300&q=75 ``` ## πŸ—οΈ Architecture & Setup **Simple 3-tier architecture:** - **Upload**: Quoter (auth + quotas + S3 storage) - **Download**: Vercel Edge API (thumbnails + optimization) - **Storage**: S3/Storj (files) + Redis (quotas/cache) ``` Upload: Client β†’ Quoter β†’ S3/Storj Download: Client β†’ Vercel β†’ Quoter (fallback) ``` πŸ’‹ **Simplified approach**: Quoter handles uploads, Vercel handles thumbnails. ## πŸ“‹ Environment Setup ```bash # Required REDIS_URL=redis://localhost:6379 STORJ_ACCESS_KEY=your-key STORJ_SECRET_KEY=your-secret JWT_SECRET_KEY=your-secret # Π”ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с @core # Optional PORT=8080 RUST_LOG=info ``` ## πŸ§ͺ Testing ```bash cargo test # 36 tests passing ./scripts/test-coverage.sh # Coverage report ``` ## πŸ“š Documentation - [`docs/configuration.md`](./docs/configuration.md) - Environment setup - [`docs/architecture.md`](./docs/architecture.md) - Technical details - [`docs/vercel-og-integration.md`](./docs/vercel-og-integration.md) - Vercel integration For detailed setup and deployment instructions, see the docs folder.