FileGator is a free, open-source PHP script for managing files and folders.
You can manage files inside your local repository folder (on your server's hard drive) or connect to other storage adapters (see below).
FileGator has multi-user support so you can have admins and other users managing files with different access permissions, roles and home folders.
All basic file operations are supported: copy, move, rename, create, delete, zip, unzip, download, upload.
If allowed, users can download multiple files or folders at once.
File upload supports drag&drop, progress bar, pause and resume. Upload is chunked so you should be able to upload large files regardless of your server configuration.
Preview and edit files (New!)
Image gallery (New!)
- share a folder with colleagues, your team, friends or family
- give students access to upload their work
- allow workers to upload field data / docs / images
- use as cloud backup
- manage cdn with multiple people
- use as ftp/sftp replacement
- manage s3 or other 3rd party cloud storage
- use to quickly zip and download remote files
This is read-only demo with guest account enabled.
- you can log in as
john/john
to see John's private files - or
jane/jane
as readonly + download user.
- Multiple storage adapters (Local, FTP, Amazon S3, Dropbox, DO Spaces, Azure Blob and many others via Flysystem)
- Multiple auth adapters with roles and permissions (Store users in json file or database)
- Multiple session adapters (Native File, Pdo, Redis, MongoDB, Memcached and others via Symfony)
- Single page front-end (built with Vuejs, Bulma and Buefy)
- Chunked uploads (built with Resumable.js)
- Zip and bulk download support
- Highly extensible, decoupled and tested code
- No database required
- Framework free ™
- PHP 7.1.3+
Precompiled build is created for non-developers. In this version, the frontend (html, css and javascript) is compiled for you and the source code is removed so the final archive contains only minimum files.
Download & install instructinos
You must have git
, php
, npm
, and composer
installed.
git clone [email protected]:filegator/filegator.git
cd filegator
cp configuration_sample.php configuration.php
sudo chmod -R 777 private/
sudo chmod -R 777 repository/
composer install
npm install
npm run build
We also have a sample docker image here
The following command will launch backend and frontend on ports 8081 and 8080:
npm run serve
Once everything is ready visit: http://localhost:8080
Testing requires xdebug and sqlite php extensions.
vendor/bin/phpunit
vendor/bin/phpstan analyse ./backend
npm run lint
npm run e2e
Set the website document root to /dist
directory. This is also known as 'public' folder.
NOTE: For security reasons /dist
is the ONLY folder you want to be exposed through the web. Everything else should be outside of your web root, this way people can’t access any of your important files through the browser.
Please ⭐️ this repository if this project helped you!
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Copyright (c) 2019 Milos Stojanovic.
This project is MIT licensed.