A PHP file-uppie thingy. Share your files and notes easily. Keep your data safe with top-notch security.
– new feature: mind-blowing P2P file sharing!! transfer files directly between devices on the same network or hotspot - no need to install apps!
1️⃣ Grab the code: from Github
2️⃣ Unzip and upload to your server: cPanel - how to upload files with FTP
3️⃣ Open your website in your browser and set a username/password for the admin account (
No tricky database configuration needed - it uses SQLite!
- Login.
- Upload files or write notes.
- Generate a unique link to the download (choose an expiry if you want).
- Share the link!
- Seamless integration with S3 - makes connecting to cloud storage easy.
- Zero-setup magic – Database is automatically created using SQLite.
- Fort Knox security – bcrypt passwords, one-time vouchers, expiring tokens.
- Dead simple – Upload, share, done. No tutorials needed.
- All-in-one party – Files, notes, auth, storage – bundled!
- Multiple File Uploader (
↗️ screenshot) - User Management and Flexible Permissions (
↗️ screenshot) - Instant-access vouchers to easily share your upload rights with friends (
↗️ screenshot) - Flexible storage connectors - local filesystem or S3 (
↗️ screenshot) - Data migration tool for migrating data between S3 buckets (
↗️ screenshot) - De-duplicator tool for cleanup (
↗️ screenshot) - Token-based sharing for files & notes (
↗️ screenshot) (↗️ screenshot) - Batch file sharing - share multiple files with a single link (
↗️ screenshot) - URL Shortener - create short, memorable links with configurable expiration (
↗️ screenshot) - Local filesystem storage or S3-compatible API support (
↗️ screenshot) - Docker-ready configuration for dev & prod
- Automatic preview thumbnails for files (images, videos, documents) with configurable background queue processing (CLI worker or AJAX for shared hosting) (
↗️ screenshot) - P2P File Sharing – Share via QR code or URL, files flow straight from sender to receiver!
Phuppi supports multiple storage backends, making it easy to keep your data in the cloud:
- Local Filesystem - Default storage on your server
- Amazon S3 - AWS Simple Storage Service
- Digital Ocean Spaces - S3-compatible object storage
- MinIO - Self-hosted S3-compatible storage (great for local development)
- Any S3-Compatible Provider - Works with any service implementing the S3 API
All cloud storage options support the migration tool for moving data between connectors, including the new transfer limit feature for managing bandwidth usage.
Phuppi is made to be easy for owners to upload and modify. It has a lean file structure and avoids bloated libraries and complicated build tools. You can make changes to the code using the most modern libraries and techniques, and your changes are reflected as soon as you refresh the page!
- Framework: Flight micro-framework for PHP
- Database: SQLite (configuration not required)
- Storage: Local files or S3-Compatible Cloud Storage
- Security: bcrypt, sessions, tokens
- Templating: Latte templates for PHP
- Frontend: Preact standalone edition
# 1️⃣ Grab the code
git clone https://github.com/AntzCode/phuppi.git
cd phuppi
# 2️⃣ customise the settings
cp .env.example .env
nano .env # or right-click and open with your IDE
# 3️⃣ Fire up Docker
docker compose up -d --build
# 4️⃣ Set it up
docker exec -it phuppi php src/bootstrap.php install
# 5️⃣ Boom! Open http://localhostPro tip: add minio to your hosts file if you want to use minio local S3 containers 🔐
echo "127.0.0.1 minio" | sudo tee -a /etc/hosts
To generate API documentation using phpDocumentor:
docker compose run --rm phpdoc phpdoc -d src -t docsThe generated documentation will be available in the docs/ directory. Open docs/index.html in your browser to view it.
Love it? Fork, tweak, PR! Check CONTRIBUTING.md.
GPLv3 – See LICENSE.
You are free to use, study, and modify this software. If you distribute the program or a derivative, you must provide the full source code and license the entire work under GPL‑v3 (or a later version), ensuring the same rights for downstream users.
Ready to share securely? Let's go! 🚀
