filegator/README.md

126 lines
4.6 KiB
Markdown
Raw Normal View History

2019-06-14 09:36:58 +02:00
<p align="center">
2019-06-14 13:49:59 +02:00
<img src="https://raw.githubusercontent.com/filegator/filegator/master/dist/img/logo.gif">
2019-06-14 09:36:58 +02:00
</p>
2019-06-13 18:52:40 +02:00
2019-06-14 10:04:13 +02:00
<p align="center">
<a href="https://travis-ci.org/filegator/filegator"><img src="https://travis-ci.org/filegator/filegator.svg?branch=master" alt="Build Status"></a>
2019-06-14 11:04:13 +02:00
<a href="https://codecov.io/gh/filegator/filegator"><img src="https://codecov.io/gh/filegator/filegator/branch/master/graph/badge.svg" alt="Code Coverage"></a>
2019-06-14 10:04:13 +02:00
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License"></a>
</p>
2019-06-14 09:53:15 +02:00
2019-06-14 09:38:55 +02:00
2019-06-13 18:52:40 +02:00
## FileGator - Powerful Multi-User File Manager
2019-06-18 13:02:55 +02:00
FileGator is a free, open-source PHP script for managing files and folders.
2019-08-07 11:37:57 +02:00
You can manage files inside your local repository folder (on your server's hard drive) or connect to other storage adapters (see below).
2019-06-18 13:02:55 +02:00
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.
2019-06-13 18:52:40 +02:00
2019-06-15 09:23:43 +02:00
## Demo
2019-06-16 12:10:36 +02:00
[https://demo.filegator.io](https://demo.filegator.io)
This is read-only demo with guest account enabled.
2019-06-21 12:20:37 +02:00
- you can log in as `john/john` to see John's private files
- or `jane/jane` as readonly + download user.
2019-06-15 09:23:43 +02:00
2019-06-18 16:08:32 +02:00
## Documentation
[Check out the documentation](https://docs.filegator.io/)
2019-06-13 18:52:40 +02:00
## Features & Goals
2019-06-24 19:14:31 +02:00
- Multiple storage adapters (Local, FTP, Amazon S3, Dropbox, DO Spaces, Azure Blob and many others via [Flysystem](https://github.com/thephpleague/flysystem))
2019-06-14 11:23:28 +02:00
- Multiple auth adapters with roles and permissions (Store users in json file or database)
- Multiple session adapters (Native File, Pdo, MongoDB, Memcached and others via [Symfony](https://github.com/symfony/symfony/tree/master/src/Symfony/Component/HttpFoundation/Session/Storage/Handler))
2019-06-14 15:24:25 +02:00
- Single page front-end (built with [Vuejs](https://github.com/vuejs/vue), [Bulma](https://github.com/jgthms/bulma) and [Buefy](https://github.com/buefy/buefy))
- Chunked uploads (built with [Resumable.js](https://github.com/23/resumable.js))
2019-06-13 18:52:40 +02:00
- Zip and bulk download support
- Highly extensible, decoupled and tested code
2019-06-14 11:23:28 +02:00
- No database required
- Framework free [](https://www.youtube.com/watch?v=L5jI9I03q8E)
2019-06-13 18:52:40 +02:00
## Requirements
2019-06-14 10:14:45 +02:00
- PHP 7.1.3+
2019-06-13 18:52:40 +02:00
2019-06-19 10:00:27 +02:00
## Download precompiled build
2019-08-30 11:46:02 +02:00
Precompiled build is created for non-developers. In this version, the frontend (javascript) is compiled for you and the source code is removed so the final archive contains only minimum files.
2019-08-01 10:21:13 +02:00
- Latest: [v7.0.1](https://github.com/filegator/static/raw/master/builds/filegator_v7.0.1.zip)
2019-06-19 10:00:27 +02:00
- Unzip files and upload them to your PHP server
2019-06-21 11:59:42 +02:00
- Make sure you webserver can read and write to `/storage` and `/private` folders
- Set the website document root to `/dist` directory. This is also known as 'public' folder.
- Visit web page, if something goes wrong check `/private/logs/app.log`
- Login with default credentials `admin/admin123`
2019-06-19 10:00:27 +02:00
- Change default admin's password
## Project setup for development (Linux)
2019-06-21 11:59:42 +02:00
You must have `git`, `php`, `npm`, and `composer` installed.
2019-06-19 10:00:27 +02:00
```
git clone git@github.com: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
```
2019-07-11 16:16:27 +02:00
We also have a sample docker image [here](https://github.com/filegator/demo)
2019-06-19 10:00:27 +02:00
## Compiles and hot-reloads
The following command will launch backend and frontend on ports 8081 and 8080:
```
npm run serve
```
2019-06-21 11:59:42 +02:00
Once everything is ready visit: `http://localhost:8080`
2019-06-19 10:00:27 +02:00
## Run tests & static analysis
2019-08-27 15:32:59 +02:00
Testing requires xdebug and sqlite php extensions.
2019-06-19 10:00:27 +02:00
```
vendor/bin/phpunit
vendor/bin/phpstan analyse ./backend
2019-06-25 19:16:57 +02:00
npm run lint
2019-06-26 14:58:38 +02:00
npm run e2e
2019-06-19 10:00:27 +02:00
```
## Deployment
2019-06-21 11:59:42 +02:00
Set the website document root to `/dist` directory. This is also known as 'public' folder.
2019-06-19 10:00:27 +02:00
2019-08-30 11:46:02 +02:00
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 cant access any of your important files through the browser.
2019-06-20 13:18:04 +02:00
## Show your support
Please ⭐️ this repository if this project helped you!
2019-06-19 10:00:27 +02:00
2019-06-13 18:52:40 +02:00
## Security
2019-06-20 13:27:15 +02:00
2019-06-13 18:52:40 +02:00
If you discover any security related issues, please email alcalbg@gmail.com instead of using the issue tracker.
2019-06-20 13:27:15 +02:00
## License
Copyright (c) 2019 [Milos Stojanovic](https://github.com/alcalbg).
This project is MIT licensed.