Giter Site home page Giter Site logo

filegator / filegator Goto Github PK

View Code? Open in Web Editor NEW
1.9K 35.0 348.0 5.06 MB

Powerful Multi-User File Manager

Home Page: https://filegator.io

License: MIT License

PHP 57.91% JavaScript 27.13% Vue 14.42% Dockerfile 0.54%
file filesystem uploader amazon-s3 storage storage-manager file-manager filemanager files fileserver

filegator's Introduction

Live demo Build Status PHP master Build Status Node master Code Coverage License

FileGator - Powerful Multi-User File Manager

FileGator is a free, open-source, self-hosted web application 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, edit, create, delete, preview, 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.

Screenshot

Sponsors & Backers

FileGator is a free, open-source project. It's an independent project with its ongoing development made possible entirely thanks to the support by these awesome backers. If you'd like to join them, please consider:

Demo

https://demo.filegator.io

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.

Typical use cases

  • 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

Documentation

Check out the documentation

Features & Goals

  • 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, database or use WordPress)
  • 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

Limitations

  • Symlinks are not supported by the underlying Flysystem
  • File ownership is not supported (chown)

Docker

Check out the official docker image with instructions on how to use it

Docker quick start:

docker run -p 8080:8080 -d filegator/filegator
visit: http://127.0.0.1:8080 login as admin/admin123

Download & Installation

See install instructions. Get $100 in (server credits here) so you can play around.

Project setup for development (Docker)

git clone https://github.com/filegator/filegator.git
cd filegator
docker compose -f docker-compose-dev.yml up

Once everything is ready visit: http://localhost:8080 and login as admin/admin123, Ctrl+c to stop.

See docker-compose-dev.yml for more informations about configurations and dependencies.

Project setup for development (Linux)

You must have git, php, npm, and composer installed.

git clone https://github.com/filegator/filegator.git
cd filegator
cp configuration_sample.php configuration.php
chmod -R 775 private/
chmod -R 775 repository/
composer install --ignore-platform-reqs
npm install
npm run build
npm run serve

Once everything is ready visit: http://localhost:8080 and login as admin/admin123

Run tests & static analysis

Testing requires xdebug, php-zip and sqlite php extensions.

vendor/bin/phpunit
vendor/bin/phpstan analyse ./backend
npm run lint
npm run test:e2e

Deployment

Set the website document root to filegator/dist directory. This is also known as 'public' folder.

NOTE: For security reasons filegator/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. If you run the script from the root folder, you will see the message 'Development mode' as a security warning.

Show your support

Please ⭐️ this repository if this project helped you!

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

License

Copyright (c) 2019 Milos Stojanovic.

This project is MIT licensed.

filegator's People

Contributors

adi82bdg avatar ahaenggli avatar ajbassa avatar alcalbg avatar andreitelteu avatar bagriydmitriy avatar dependabot[bot] avatar devteam21 avatar drerfinder avatar enyedi avatar gallisiardi avatar gjsbrt avatar gui13 avatar helmiau avatar iwiniwin avatar jinhee-kim avatar karzac avatar krishnapg avatar lzkill avatar maisondasilva avatar nesetdemir avatar norweeg avatar pauloklaus avatar peter279k avatar peterr-k avatar tobiasgruber1995 avatar ufukart avatar vagra avatar vaidas777 avatar vdvcoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

filegator's Issues

Upload problem when filename contains national characters

If uploaded filename is "ąčęėįšųū.txt" the uploaded filename on the server becomes ".txt".

If uploaded filename is "456-ąčęėįšųū.txt" uploaded filename on the server is "456-ąčęėįšųū.txt", but all folder and files disappear from the filegator listing.

Filegator 7.0.1, Ubuntu 18.04 with apache2.4 and php 7.2

More settings from configuration.php via web page for admin

Hello,

would be nice, if more settings from configuration.php will be available for admins via web site.
For example:

  • language
  • date format
  • logo
  • app name
  • max upload size, chunk size, default archive name, editable files, basically all from the configuration.php

thank you all for your time!

How do i attach the s3 storage adapter?

i looked at your documentation already , as well as the flysystems doc . i installed the ("composer require league/flysystem-aws-s3-v3"). But still am confused where to put the html code you gave in your doc , I tried putting it in the configuration.php file doesnt work.

can anyone help me try install the s3 adapter

Sorting of files is broken in Firefox

Changing of default sorting parameters (eg. sorting files by size, or by modification time) or changing of sorting order (ascending <-> descending) doesn't work in Firefox browser.

user accounts: disable password changing

Hey there :-)

First of all, thank you very much for FileGator :-D

I wanted to ask if it's possible to disable password changing for users ... or everyone ;-)

Regards,
Robert

Archiver Service throwing an error

Hello,

This is for Filegator v 7.3.4

Here's my environment:

  • Centos 7.7.1908
  • nginx 1.16.1
  • php 7.3.16

When using the zip feature it throws an error:
POST request ?r=/zipitems throws a 500 error

Javascript Console
File: vue-router.esm.js:2051

Uncaught (in promise) 
name: "NavigationDuplicated"
message: "Navigating to current location ("/") is not allowed"

any help on setting this up

All other feauters (create/delete/edit/move file(s), download, upload etc) work as expected.

Thanks

additional simple login security

Hello,

is it possible to block an IP for e.g. 1 hour after 3 unsuccessful logins? And after another 2 unsuccessful logins, to ban them forever? And with a corresponding note. (without cookies)

Is there anything like that? If so, how can I implement it?
If not, is there another login security solution? ( I don't like google-recaptcha!!! )

Note: I use the precompiled build

thank you

"Copy link" doesn't work

Hi

how exactly should work Copy link function? When I'm logged, copy link of a file and open it in anonymous window I see only text "Not Found", there is nothing in the app.log.

When I copy link in the window where I'm logged in, it only refresh page in folder where I was (not in the folder with the linked file).

thx

Text not available for translation

Hi

1.
Not sure if this is case for the other languages (I guess it is), but these two Download texts need separate translation, because first one is a verb and second one is a noun.
a)
image
b)
image

2.
Role names are not translated in users list but they are translated when editing a user. Also "Guest" need to be added to translation.

a)
image
b)
image

thank you!

[Giveaway Frenzy] - free cat-gator-sticker-thing?

We're running a free giveaway! Yay!

Please note that I have a limited stash, so to make this as fair as possible I will send only two prizes per continent. You can win either:

  1. One high-quality FileGator sticker as shown at the picture below
  2. One perfectly healthy, semi-wild Russian blue cat (with feeding instructions) as shown at the picture below

it's 100% free, no strings attached

Few simple rules:

  • first come - first served (the first person who sends an email get's the prize)
  • It's up to me to decide which prize you get
  • max two prizes per continent
  • delivery by standard mail

Join our free giveaway by doing the following:

  • star this repository on GitHub
  • send your GitHub username, name and full address to [email protected]
  • make sure you are not allergic to cats :)

cat

Favicon and hide password don't work

Hi,
The favicon doesn't work (work on the online demo but not in the download version).
I also see that when i want to change a user password the eye to hide it doesn't work first time but only activate/disactivate two times (Firefox,chrome, Edge and IE)

Cannot apply indonesian lang

I've translate this project to Indonesian, and pull with ur help .. and trying to apply today, but as u see in here (Screenshoot)

#TR unknow error and all of variable string is TR

Capture

Number total of element is incorrect when there is only one item

Describe the bug
when there is only 1 element number of total element is true instead of 1

To Reproduce
Given I installe the projet
When I uploaded my first file
Then i can see Selected: 0 of true instead of Selected: 0 of 1
And if I select the item i get Selected: 1 of true instead of Selected: 1 of 1

When If i upload another file
Then the total is correct
When I remove the 2nd file (to have only 1)
Then the bug still appear
When i remove all files
Then the total is correct
When I create a new folder
Then the bug still appear

So i can conclued bug exist when there is only 1 element.

Expected behavior
to have Selected: ${x} of 1 when there is only one element

Screenshots
https://upload.frogg.fr/?r=/download&path=L2J1Zy5wbmc%3D

Environment

  • FileGator Version 7.14
  • Server: Apache 2.4 on Debian Linux
  • PHP Version 7.2
  • Browser Opera/Chrome/IE

Additional context
It seem to be a data type trouble 1 is sent as bool 1 = true instead of int 1 = 1
Can be seen there https://upload.frogg.fr/

Local & Remote Storage

Hello,
Quick question, is there any way for configuring local and remote storage in our case S3?
thank you

Multiple storages

Hello,

Is there some way you could add support for multiple storages? I want to connect multiple s3 buckets, so I can give users access to their own bucket. Otherwise I need to install FileGator multiple times per user, which will very annoying to maintain.

Readable URLs?

Looking to be able to easily recognize urls when pasting a few of them in an email. Since its dynamically generating the urls, its impossible to know what file it is when going back through emails or going through a list. Possible to list the filename in it?

Bug report: File links and file expose over the web

Bug 1:
When you create a new user (user B) with separate folder to other users (user A). The file link generated by the user A allow to be used by user B when they have same file uploaded.

Expected behavior

  • It would be better if each user file have unique file link.
  • The file link generated by the user A should not be used by user B when they have same file uploaded.

Bug 2:
The default file storage or folder (/repository) is accessible on the web.
Example: www.domain.com/filegator/repository/
The files are visible and downloadable by anyone.

Expected behavior

  • By default the folder (/repository) permission and execution must set to restricted access by public.

Freature request: redirect on / instead of login page when logout

Is it possible to redirect on / instead of login page when you log out ?

  • Case guest has no rights :
    When you log out, the app will show the login page. (same as actual)

  • Case guest has rights (read for example)
    When you log out, the app show the folder content instead of the login page.

Thanks.

Digitalocean Spaces

Digitalocean Spaces storage adapter is not working. Facing 500 server error.

To Reproduce:
Steps to reproduce the behavior:

  1. Download and extract the latest release
  2. Run composer require league/flysystem-aws-s3-v3
  3. Access the app
  4. See 500 server error on browser

Expected behavior:
App loads fine and files should be stored on Digitalocean Spaces

Logs:
Webserver logs:

PHP Fatal error: Uncaught Error: Class 'Filegator\App' not found in /var/www/html/dist/index.php:49

Stack trace:
#0 {main}
thrown in /var/www/html/dist/index.php on line 49

Environment:

  • FileGator Version: 7.1.2
  • Server: Apache 2.4 on Ubuntu server 18.04
  • PHP Version: 7.2
  • Browser: Chrome, Firefox

Additional context:
The app works fine when we extract and use it directly without any changes. The error is encountered only after installing the composer package.

Auto Login

First of all thank you for the amazing repository. Looks fabulous.

I am looking to use this file manager as a part of another application. I would like to authenticate user to use the file manager when user is authenticated on the parent application.

So, what I am looking for is similar:

if( is_logged_in_parent() ){
    $auth->authenticate();
}else{
   $auth->forget();
}

Will it need a new type of adapter?

Step by step

Hi,
I'm new in GitHub.
I'd like to personalize my version of file gator (colors, language, logo).
I see the development section on your website but I don't understand very well.
Is possible build only on Linux?
Exist any guide that help me for customize?
Thank you very much

Pagination

Where i define pagination by default?

WordPress Auth Adapter

Can someone please try this new WordPress Auth adapter and send some feedback:

Thanks!

FileGator v4.3.2

Hi
I bought filegator from Codecanyon few years back and got the ver FileGator v4.3.2 from you the last time. However the free download ver 7.33 is totally different from the commercial version. How do I get any updated version after FileGator v4.3.2. Thank you

The display is taking too much viewport in mobile

Hai, thank you for the project. This seems the most promising php file manager (been using responsive file manager, tinyfilemanager, and some others) out there.

The display list is taking too much viewport in mobile. I think it's better to use a single line for a file display in mobile. With the current it takes a table of 3 row just to display a file in mobile view.

Thank you 😃

Do not include configuration.php, so settings won't be overwritten during update

Hello,

if possible please do not include configuration.php in release files and add code to create it when missing as copy of the configuration_sample.php file. Or maybe it should be renamed as configuration_default.php.
Thanks to this configuration.php won't be overwriten during update when all files are copied via ftp etc.

thanks

overwrite file

Hi

I have the download filegator, and have it set up on my site.
I want when a file uploads that it overwrites the old one.
I have looked in your FAQ but cannot find the file "upload.class.php" which is mentioned in the FAQ

Is there a way I can force the uploaded file to overwrite the current file of the same name?
Small code customization is required for this, inside include/blueimp/server/php/upload.class.php

replace this:
$file_name = $this->upcount_name($file_name);

with this:
unlink($this->options['upload_dir'].$file_name);

Missing vendor dir when cloning repo

When cloning the repo and building the app is unable to start due to vendor folder that is missing. Seems that you should remove vendor from .gitignore

change date format

Hi,
is it possible to change the date format to "dd.mm.yyyy" and the time format to 24h ?
It currently looks like this: "yy/mm/dd/" and "pm/am:mm:ss"

currently looks:
grafik

thank you, best regards

Add Link sharing feature

Would you please add link sharing feature?

Sometimes we need to share files with some one , who do not have account or their account have diffirent path so they can not access the file

Using Symlinks

We have just updated to the most recent version of FileGator on a Windows 2012 R2 server running Apache.

There was a documented workaround for getting a previous version of FileGator to navigate symLink directories. We would like to be able to do this again in the new version in order to support common user directories.

Thank you

Fix docs

Dev docs actually are:

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

Fixed:

git clone https://github.com/filegator/filegator.git
cd filegator
cp configuration_sample.php configuration.php
sudo chmod -R 777 private/
sudo chmod -R 777 repository/
apt install composer
composer install
npm install --unsafe-perm
npm run build

Fixed link using https, install composer missing apt, add --unsafe-perm to fix install issue with cypress

Permissions on folder manipulation

I want to allow my users to both write files (copy, move, rename, and delete) and upload files. But I want to forbid folder manipulation (i.e. create, copy, move, rename and delete folders).

Is this possible with Filegator?

Usage

Have installed FileGator - struggling with findinig documentation for configuration.

Essentially I'd like the home directory for browsing to point to /Files on my server - can't seem to find a way to do that?

Thanks

David

public_html as home folder

Hello,

I was using older versions of Filegator, where it was possible to set home folder out of filegator's own folder, and that was relatively easy to do, just by fiddling with configuration file. Unfortunately I can't see this option in current version of Filegator. I installed Filegator in public_html/filegator. Filegator's home folder is set for html_public/filegator/repository. Is it possible to set home folder as public_html?

Thanks and best regards!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.