/uploader

Image/Video Hosting powered by Cloudflare

Primary LanguageAstroGNU Affero General Public License v3.0AGPL-3.0

Image Uploader

A modern, full-stack web application for image and video uploading, built with Astro and deployed on Cloudflare.

🚀 Technologies

  • Astro: Core web framework
  • Svelte: Used for interactive components
  • TypeScript: For type-safe JavaScript
  • Cloudflare Workers: Serverless deployment platform
  • Cloudflare KV: Key-value storage
  • CSS: Custom styling with animations
  • Service Worker: Offline functionality and caching
  • MDX: Markdown with JSX support
  • Modern Web APIs: Fetch, FormData, IntersectionObserver, etc.
  • LocalStorage: Client-side data persistence
  • ShareX: Integration for easy screenshot sharing
  • Vite: Build tooling

🌟 Features

  • Image and video upload (up to 100MB)
  • EXIF data stripping for images
  • File preview before upload
  • Gallery view of uploaded files
  • Shareable links for uploads
  • Deletion capability for uploaded files
  • Rate limiting to prevent abuse
  • Responsive design for various screen sizes
  • Offline support

🛠 Setup

  1. Clone the repository
  2. Install dependencies with npm install
  3. Configure your Cloudflare account and KV namespace
  4. Set up environment variables
  5. Run locally with npm run dev
  6. Deploy to Cloudflare with npm run deploy

📚 API

The application provides a simple API for file uploads and deletions. Check the /src/pages/api directory for implementation details.

🔒 Security

  • File size limits
  • Rate limiting
  • EXIF data removal from images

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check issues page.