FileEX is a lightweight, high-performance web-based file explorer designed for local networks. It allows you to browse, preview, and manage your host computer's files from any device (phone, tablet, or another PC) on your Wi-Fi.
Built for speed and simplicity, FileEX avoids heavy frontend frameworks, delivering a "blazing fast" experience through FastAPI and Vanilla JavaScript wrapped in a sleek Cyberpunk Aesthetic.
- Dark Mode Void: Deep obsidian backgrounds with sharp electric cyan accents and glassmorphism elements.
- Desktop Sidebar: A fixed navigation sidebar with a dynamically loaded list of your local drives (C:, D:, etc.) for instant access, resembling a native file manager.
- Storage Dashboard: A dedicated dashboard view showing drive usage progress bars, free space stats, and quick system utilities (Trash, Clear Recents, Lock Terminal).
- Dynamic Thumbnails: Instant 100x100 previews for images and videos using Pillow and FFmpeg.
- Plyr Media Engine: Integrated Plyr video and audio player for a modern, 100% offline media playback experience.
- Pan & Zoom Controls: Use your mouse wheel to zoom into images, and click-and-drag to pan around. Keyboard shortcuts (
+,-,0) are also supported. - Glassmorphism Toolbar: Hovering action toolbar for zooming, rotating, and instantly downloading media.
- Touch & Keyboard Support: Navigate through media in a folder using Arrow keys or touch-swipe gestures. Swipe down to dismiss the viewer on mobile devices.
- Raw Source View: Click any code or text file (
.txt,.json,.py,.js, etc.) to view its raw source code inside a clean<pre>block. - Visual Render Mode: For HTML, SVG, or Markdown files, click the "RENDER PREVIEW" button to view the visual output safely inside a strict
sandbox=""iframe that blocks all scripts and forms.
- On-the-Fly Browsing: Explore contents of
zip,7z,rar, andtarfiles without extracting them. - Partial Extraction: Stream or download a single file (like an image inside a 2GB zip) instantly.
- Live Search: Instantly filter archive contents using the sticky search bar.
- Masonry Gallery: View a beautiful, responsive multi-column grid of all images and videos inside the archive.
- Archive Navigation: Seamlessly navigate to the "next" or "previous" image/video while inside the archive using UI arrows or keyboard keys.
- Path Highlighting & Icons: Distinct color-coded icons for different file types and faded directory paths for effortless scanning.
- Download Archive: Instantly download the entire archive via a quick-action button in the header.
- Safe Deletion: Files aren't permanently deleted; they are moved to a local
Trashfolder with detailed metadata. - One-Click Restore: Restore items to their original location with a single click, even across different drives.
- Metadata Tracking: Records original path and deletion timestamp.
- Strict Configuration: No hardcoded secrets. The app refuses to boot without properly configured
SECRET_KEYandACCESS_PINenvironment variables. - Brute-Force Protection: The
/loginendpoint features IP-based rate limiting to block brute-force PIN guessing. - Path Traversal Blocking: Advanced path normalization strictly blocks attempts to escape restricted directories, including bypassing via Windows UNC paths (
\\?\). - Safe Archive Extraction: Archive streaming uses memory-efficient generators to prevent RAM exhaustion (DoS attacks) when previewing massive files.
- Read-Only Mode: A global toggle to disable all write/delete operations for guest access.
- Infinite Scroll: Paginated directory listings for fast navigation through massive folders.
- Low Footprint: No build tools, no
node_moduleson the frontend, and minimal backend dependencies. - GZip Compression: All API responses are compressed to save bandwidth on slow Wi-Fi.
- Backend: FastAPI (Python 3.9+), Uvicorn, Pillow, FFmpeg.
- Frontend: Vanilla JavaScript (ES6 Modules), HTML5, CSS3 (Modern Flexbox/Grid), Plyr.
- Python 3.9+
- FFmpeg (Required for video thumbnails and streaming).
- Windows:
choco install ffmpegor download from ffmpeg.org. - Linux:
sudo apt install ffmpeg.
- Windows:
# Clone the repository
git clone https://github.com/RenX86/FileEX-Web.git
cd FileEX-Web
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env to set your SECRET_KEY and ACCESS_PIN (Required)Windows (Convenience Script):
./FileEX.ps1Manual:
uvicorn app.main:app --host 0.0.0.0 --port 6979 --reloadFileEX is fully Docker-ready for isolated environments.
Using Docker Compose:
docker-compose up -dThe application will be available at http://localhost:6979. You can map your host drives to the /mnt directory in the container via docker-compose.yml.
| Variable | Description | Default |
|---|---|---|
SECRET_KEY |
Key for session encryption (Required). | - |
ACCESS_PIN |
PIN required to access the dashboard (Required). | - |
READ_ONLY |
If True, blocks all delete/restore actions. |
True |
TRASH_DIR |
Path to store deleted files and metadata. | ./Trash |
DEBUG |
Enables FastAPI debug mode. | False |
app/
├── api/ # API Router & Endpoints (Auth, Files, Archives)
├── core/ # Config, Constants, and Security Middleware
├── services/ # DriveService (FS logic, Trash, Drives)
├── utils/ # Security validation & Formatters
static/
├── js/modules/ # ES6 Modules (Actions, API, UI, Viewer)
├── css/modules/ # Modular CSS (Grid, Cards, Modals)
templates/ # Jinja2 Templates (Base, Login, Dashboard)
This tool is intended for local network use only. Exposing this to the public internet without additional security layers (like a Reverse Proxy with SSL) is not recommended.
Developed with ❤️ for speed.