FileGator - Simple Self-Hosted File Server

FileGator is your personal file butler, serving up a self-hosted buffet of file management goodness where you're the chef, and your files are the main course – all with the added bonus of keeping your data more locked down than a treasure chest in a dragon's den.

FileGator - Simple Self-Hosted File Server

FileGator is a web-based file management and sharing system that provides users with a user-friendly interface to organize, upload, download, and share files. It's crafted with PHP on the backend and HTML, CSS, and JavaScript on the frontend.

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

What I really like most about FileGator is the simplicity of the interface. There's no deep menu diving that's scary to navigate. Infact, there's only a few things you need to worry about.

  • You can manage files inside your local repository folder (on your server's hard drive) or connect to other storage adapters.
  • 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.

The user interface is very basic making it easy to navigate and find what you are looking for. You can choose to allow guest uploading or only viewing or even lock down the entire app under authentication.

Self host FileGator using Docker Compose

FileGator is easy to setup using the provided Docker Compose example below.

version: '3.3'
services:
    filegator:
        container_name: filegator
        ports:
            - '5517:8080'
        volumes:
            - /docker/filegator/images:/var/www/filegator/repository
            - /docker/filegator/conf/configuration.php:/var/www/filegator/configuration.php
        restart: always
        image: 'filegator/filegator:latest'

Before running the stack, be sure to create a configuration.php file and place it where you plan to mount the volume. Also, you may need to give the folder proper permissions.

Final Notes and Thoughts

I'm pretty good at breaking stuff and I was able to make FileGator freak out by mounting the repository volume to a directory with tons of files. FileGator did NOT like that and was throwing errors.

I think it's safe to say FileGator is not made for large file structures and works best for smaller projects. I didn't stick around and wait to see if it needed to index all the files though however, there was no visual indication that it was indexing anything and the logs also did not provide any clue as to what this error was. The "Unknown error" is truly unknown.

With that being said, I did add files and folders on the back end of the server and it did successfully index and display them on the front end.

Overall, FileGator is a fantastic option for small projects. I have recommended it in the past for events such as weddings and graduation parties and it worked well. I'll write more about that soon too!

If you find FileGator useful, be sure to give it a star on the FileGator Github repo!