Overview
Discover what makes FileGator powerful
FileGator is a **self‑hosted, multi‑user file manager** that exposes a web UI for performing CRUD operations on local or remote storage. From a developer’s point of view it is a lightweight PHP application that abstracts file system interactions behind a REST‑like interface while still allowing full control over authentication, permissions and storage adapters. The core idea is to give teams or individual developers a secure, audit‑ready way to share and manage files without exposing the underlying server shell.
Granular access control
Chunked uploads
Storage abstraction
Built‑in compression
Overview
FileGator is a self‑hosted, multi‑user file manager that exposes a web UI for performing CRUD operations on local or remote storage. From a developer’s point of view it is a lightweight PHP application that abstracts file system interactions behind a REST‑like interface while still allowing full control over authentication, permissions and storage adapters. The core idea is to give teams or individual developers a secure, audit‑ready way to share and manage files without exposing the underlying server shell.
Key Features
- Granular access control – Roles (admin, editor, viewer) and per‑user home directories are enforced at the PHP layer. Permissions can be configured via a JSON schema or the built‑in admin UI.
- Chunked uploads – Files are streamed in 1 MiB chunks, enabling uploads of gigabyte‑sized assets even on low‑memory servers. The upload API also supports pause/resume, progress callbacks and server‑side integrity checks.
- Storage abstraction – In addition to the local file system, FileGator can plug into S3, Google Cloud Storage, FTP/SFTP, and other adapters via a simple service interface. This is useful for scaling out to object stores or maintaining separate staging/production repositories.
- Built‑in compression – ZIP creation and extraction are handled server‑side, allowing batch downloads or archive uploads with minimal client effort.
- API hooks – Webhooks can be triggered on upload, delete or rename events, enabling integration with CI/CD pipelines, notification services or custom business logic.
Technical Stack
| Layer | Technology |
|---|---|
| Backend | PHP 8.1+, Laravel‑like routing, PSR‑4 autoloading |
| Frontend | Vue 3 (Composition API) bundled with Vite, Tailwind CSS for styling |
| Storage | Local FS (POSIX), S3 SDK, GCS SDK, custom adapters via StorageAdapterInterface |
| Database | SQLite (default) or MySQL/PostgreSQL for user & permission tables |
| Auth | JWT‑based session tokens, optional LDAP/SSO via OAuth2 provider |
The application follows a Model‑View‑Controller pattern, with controllers exposing JSON endpoints that the Vue client consumes. The file operations are wrapped in a service layer (FileService) that performs permission checks, logs actions and delegates to the chosen storage adapter.
Core Capabilities & Extensibility
Developers can extend FileGator by implementing new storage adapters or middleware. The StorageAdapterInterface defines methods such as list(), read(), write() and delete(). Adding a custom adapter is as simple as creating a class that implements the interface and registering it in config/storage.php. For event handling, the built‑in event dispatcher allows listening to events like FileUploaded or FileDeleted, which can trigger external processes or webhook calls.
The UI exposes a REST‑like API under /api/* that can be consumed by any client. Authentication is handled via session cookies or bearer tokens, making it straightforward to integrate with existing auth systems. The project ships with a Swagger/OpenAPI spec generated from annotations, giving developers a ready‑made contract for automated testing or SDK generation.
Deployment & Infrastructure
FileGator is intentionally lightweight: a single PHP file can be deployed behind any standard LAMP/LEMP stack, or containerized with Docker. The official Docker image is built on php:8.1-fpm-alpine and exposes port 80, making it trivial to spin up in Kubernetes or Docker‑Compose:
services:
filegator:
image: ghcr.io/filegator/filegator:latest
ports: [8080:80]
For scalability, the stateless nature of PHP requests means multiple instances can run behind a load balancer. The storage adapters support remote object stores, so the application can be scaled horizontally without sharing a local file system. Persistent storage for user data is optional; SQLite works out of the box, but switching to MySQL/PostgreSQL only requires updating config/database.php.
Developer Experience
- Configuration – All settings are stored in
.envfiles andconfig/*.php, following Laravel conventions. This makes it easy to override defaults for different environments. - Documentation – The README contains installation steps, environment variables and API reference. Additionally, a dedicated
/docsroute serves Swagger UI for interactive exploration. - Community – The project is MIT‑licensed and actively maintained. Issues are triaged quickly, and pull requests are welcomed. A growing list of sponsors indicates a healthy ecosystem.
- Testing – Code coverage badges and CI pipelines (GitHub Actions) ensure that new features do not break existing functionality. Developers can run
phpunitlocally to validate logic before merging.
Use Cases
- Internal file sharing – Teams can host a dedicated FileGator instance to share code snippets, design assets or documentation without exposing SSH access.
- Backup & restore – Automated backup jobs can push archives to FileGator, which then exposes them for quick download or restoration.
- Content delivery – A website can expose a public read‑only FileGator instance to serve downloadable resources (e.g., PDFs, datasets) with fine‑grained permission control.
- CI/CD artifact storage – Build pipelines can upload build artifacts to FileGator; webhooks notify downstream services or trigger deployment scripts.
Advantages
Open SourceReady to get started?
Join the community and start self-hosting FileGator today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Restreamer
Free, self‑hosted live stream distribution platform
cState
Fast, lightweight status pages for any project
Typebot
Build advanced chatbots without code
BigTree CMS
Extensible PHP/MySQL CMS for effortless content creation
ToolJet
Build internal apps and AI agents in minutes
Luanti
Open‑source voxel engine for building, exploring, and modding
