erugo is a powerful, self-hosted file-sharing platform built with PHP and Laravel with a Vue.js frontend. It offers secure, customizable file-transfer capabilities through an elegant user interface, giving you complete control over your data while providing a seamless experience for both senders and recipients.
A clean, intuitive upload interface showing file selection and progress
Share details view with file listing and expiration information
Manage shares with ease, including share expiration, maximum downloads, and more
- Effortless Deployment: Easy to deploy on Docker with the provided docker-compose file
- Human-Friendly Share Links: Easy-to-read URLs like
https://yourdomain.com/shares/quiet-cloud-shrill-thunder
- Secure Access Control: Only authorized users can create shares, while anyone with a share link can download
- Simple Data Management: SQLite database for efficient metadata storage
- Flexible Configuration: Configure maximum share size, branding, expiry, and more
- Interactive Setup: User-friendly first-run configuration when the web interface is first loaded
- Modern Interface: Clean, intuitive web UI
- Open Source: MIT licensed and ready for white-labeling
You can use the example docker-compose.yaml below to run erugo in a container.
⚠️ WARNING: COMING FROM THE GO VERSION? READ THIS⚠️ If you are migrating from the Go version of erugo, please be aware that there are significant changes in the architecture and configuration. The new version is built with PHP and Laravel and is entirely incompatible with the Go version. Set this up as a brand new installation.
services:
app:
image: wardy784/erugo:latest
restart: unless-stopped
volumes:
- ./storage:/var/www/html/storage
ports:
- "9998:80"
networks:
- erugo
networks:
erugo:
driver: bridge
The above docker-compose.yml provides a basic configuration starting point that will get erugo up and running with a default sqlite database.
docker compose up -d
erugo can be customized via the web interface.
- General settings
- Application name
- Login message
- Share settings
- Maximum share size
- Expiration time
- Cleanup delay (how long after expiration the share is deleted)
- Branding
- Background images
- Custom logo image and size
- Hide powered by erugo text
- Manage user interface colors
- SMTP settings (not implemented yet)
- SMTP host
- SMTP port
- SMTP encryption
- SMTP username
- SMTP password
- SMTP from name
- Log in to the web interface
- Select files for upload
- Share the generated link with your recipient
Recipients simply need to:
- Click the share link
- Download the files through the web interface
- Log in to the web interface
- Click on the cog icon in the bottom right corner
- Click on the "My Shares" tab
You can extend share expiration, expire shares, set maximum downloads, and more.
As an open-source project, erugo can be tailored to your needs:
- Customize the UI to match your brand
- Modify URL structures and authentication methods
- Extend functionality through code modifications
erugo is a Laravel application and uses Laravel Sail to run the development environment.
Run the following commands to start the server, run migrations, ans start vite in dev mode.
sail up -d
sail artisan migrate
sail artisan db:seed
npx vite
To build the docker image yourself, run the following command.
docker build -t erugo:local -f docker/alpine/Dockerfile .
If you would like to push the image to Docker Hub, run the following command. You will need to have a Docker Hub account and be logged in.
DOCKER_HUB_USERNAME=<your-docker-hub-username> ./publish-docker-image.sh
We welcome community contributions! Feel free to:
- Submit bug reports and feature requests
- Create pull requests
- Engage in discussions
erugo is released under the MIT License, ensuring maximum flexibility for both personal and commercial use.
🚀 Ready to start? Download erugo and begin sharing files securely in minutes!