Overview
Discover what makes Uploady powerful
Uploady is a lightweight, self‑hosted file transfer service built in **PHP** that exposes a RESTful API for uploading, managing, and retrieving files. The core of the application is a single‑page interface powered by **Bootstrap** and **jQuery**, which leverages HTML5 Drag & Drop and multi‑file selection to deliver a near‑native upload experience. Behind the scenes, all metadata is persisted in **MySQL**, and optional image manipulation is performed via the GD library. The project ships with a comprehensive admin panel that visualizes upload statistics using Chart.js, making it easy for developers to monitor usage patterns without writing custom dashboards.
Robust validation
Role‑based quotas
Automated cleanup
Extensibility hooks
Overview
Uploady is a lightweight, self‑hosted file transfer service built in PHP that exposes a RESTful API for uploading, managing, and retrieving files. The core of the application is a single‑page interface powered by Bootstrap and jQuery, which leverages HTML5 Drag & Drop and multi‑file selection to deliver a near‑native upload experience. Behind the scenes, all metadata is persisted in MySQL, and optional image manipulation is performed via the GD library. The project ships with a comprehensive admin panel that visualizes upload statistics using Chart.js, making it easy for developers to monitor usage patterns without writing custom dashboards.
Key Features
- Robust validation: Four protection layers (MIME type, file extension, size limits, and forbidden names) ensure that only safe files are stored.
- Role‑based quotas: Each user role can be assigned a maximum upload size, facilitating multi‑tenant deployments.
- Automated cleanup: Files can be purged after a configurable number of days or download counts, helping to manage storage costs.
- Extensibility hooks: Custom CSS/JS, multi‑language support, and a simple plugin API allow developers to tailor the UI and add new behaviors without touching core code.
- Analytics integration: Built‑in hooks for Google Analytics and AdSense make it straightforward to embed metrics or monetize the upload service.
Technical Stack
| Layer | Technology |
|---|---|
| Server | PHP 8.x (OOP, Composer dependencies) |
| Database | MySQL / MariaDB |
| Frontend | Bootstrap 5.3 (CDN), jQuery, Chart.js |
| API | Custom REST endpoints (/api/upload, /api/files) protected by an API key |
| Containerization | Docker Compose with a separate MySQL service (db) |
| Deployment | Works on shared hosting, VPS, or Docker‑based infrastructures |
The codebase follows PSR‑4 autoloading and is linted with PHPStan/SonarCloud, ensuring maintainable, high‑quality code that is easy to extend.
Core Capabilities
- File Upload API: Accepts multipart form data, returns JSON metadata (URL, size, MIME type).
- Metadata API: Retrieve file lists, delete files, and fetch download statistics.
- Webhooks: Expose hooks for post‑upload events (e.g., trigger a Lambda function or notify Slack).
- Custom URL Shortener: Planned feature to generate short links for sharing.
- S3 Integration (backlog): Future support will allow offloading storage to AWS S3, enabling horizontal scaling.
Deployment & Infrastructure
Uploady requires a PHP‑capable web server (Apache/Nginx) and MySQL. For rapid prototyping, Docker Compose is fully supported:
services:
app:
image: uploady:latest
depends_on:
- db
db:
image: mysql:8.0
The container exposes port 80 and mounts a persistent volume for uploads, ensuring data survives restarts. The application is stateless beyond file storage and MySQL, making it trivial to scale horizontally behind a load balancer or in Kubernetes with persistent volumes.
Integration & Extensibility
- Plugin system: Developers can drop PHP classes into the
plugins/directory; each plugin registers callbacks for upload events. - Webhooks: Configure external URLs in the admin panel; Uploady POSTs JSON payloads after successful uploads.
- API key rotation: Keys are stored in the database and can be rotated via the admin UI, enhancing security.
- Custom scripts: The
custom.jsandcustom.cssfiles allow overriding default UI behavior without forking.
Developer Experience
The documentation is concise yet thorough, with a dedicated Wiki covering shared‑hosting setup and Docker deployment. The API is documented via curl examples, and the source code contains inline comments that explain business logic. Community support appears active; issues are triaged quickly, and contributors can propose new features through GitHub PRs. Licensing under MIT ensures no copyleft restrictions, allowing integration into proprietary products.
Use Cases
- Internal File Sharing – Companies can deploy Uploady on an intranet to share documents, images, or logs without exposing sensitive data to public cloud services.
- Developer Portals – Tooling vendors can embed Uploady into their dashboards to let users upload binaries or assets.
- Media Workflows – Photographers or designers can host a dedicated upload site for clients to submit high‑resolution files.
- Event Registrations – Organizers can collect participant documents (e.g., IDs, certificates) with role‑based quotas and automated cleanup.
Advantages
- Performance: Pure PHP + MySQL stack is lightweight; no heavy frameworks or ORMs are required.
- Flexibility: The plugin API and custom JS/CSS make it easy to adapt the UI or add domain‑specific logic.
- Licensing: MIT license permits commercial use without royalties.
- Scalability: Stateless design and Docker support enable horizontal scaling; future S3 integration will offload storage.
- Security: Built‑in validation layers, API key protection, and optional download limits reduce attack surface.
In summary, Uploady delivers a feature‑rich, self‑hosted file upload solution that balances simplicity with extensibility, making it an attractive choice for developers needing a quick,
Open SourceReady to get started?
Join the community and start self-hosting Uploady today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
LMS
Self-hosted music streaming with rich metadata and discovery
Seatsurfing
Book desks, seats, and rooms from any device
Blocky
Fast, privacy‑first DNS proxy and ad blocker for local networks
YOURLS
Self-hosted URL shortener with full data control
Fasten
Securely aggregate your health data into a personal record
LinkStack
Self‑hosted, customizable link sharing platform
