Filez.io is a simple personal file cloud storage solution built using Laravel Sail, Jetstream, Inertia.js, Vue 3, MySQL, MinIO, and Nginx. It provides an easy-to-use interface for managing and storing files securely.
The project uses the following technologies:
- Laravel Sail: A lightweight development environment for running Laravel applications using Docker.
- Jetstream: A beautifully designed application scaffolding for Laravel, providing a robust starting point for building your application.
- Inertia.js: A modern approach to building single-page applications using server-side routing and Vue.js.
- MySQL: A popular open-source relational database management system.
- MinIO: A high-performance object storage system, used as a local bucket storage.
- Nginx: A web server and reverse proxy server used to handle routing and serve the application.
- Mailpit: A fake SMTP server for testing emails.
- Docker and Docker Compose
- bash for running the
install.sh
script
Follow the instructions below to set up and run the Filez.io project:
-
Copy the
./env.example
file to./.env
and update the environment variables if needed (note that you can run the application with de provided example). -
Run the
./install.sh
script. This script will pull a Docker image to install the project dependencies usingcomposer install
and build the application. The script will attempt to run the sudo command at the end of the process to reset the project permissions. -
Start the application by running
./vendor/bin/sail up
. This command will start all the containers and create the MinIO bucket for file storage. -
Run the database migrations by executing
./vendor/bin/sail artisan migrate
. This will set up the necessary database tables. -
Optionally, you can run the database seeder to create a test user by running
./vendor/bin/sail artisan db:seed
. It will create a user with the following credentials:- Email:
[email protected]
- Password:
password
- Email:
-
Access the project by opening your web browser and visiting http://localhost:80.
Please note that the application will be accessible at http://localhost
, which is configured through Nginx.
Additionally, you can access the MinIO storage at http://static.localhost
, which is also handled by Nginx.
You can view the sent emails in Mailpit by visiting http://localhost:8025. Note that it is used only for the password recovery feature.
The project uses PHPUnit for testing. You can run the tests by executing ./vendor/bin/sail artisan test
.
And you can run the tests with coverage by running ./vendor/bin/sail artisan test --coverage-html ./coverage
.
This project is licensed under the MIT License.