Skip to main content

FileFy

Python Version License FileFy - Modern Cloud File Manager

A professional web-based File Manager Written in Python. Features a Beautiful Dark Theme UI, File Upload/Download, Remote URL Downloads With Progress Tracking, and Comprehensive File Operations.

Modern Cloud File Manager - FileFy
Modern Cloud File Manager - FileFy

Features

  • Professional Dark Theme UI - Modern, responsive design
  • File Upload - Drag & drop or click to upload files. Uploads are chunked, with per-file progress, pause / resume / cancel controls, and they survive transient connection drops.
  • File Download - Download files directly from the browser, with HTTP Range support so the in-browser transfer manager can pause and resume large local downloads.
  • Remote Download - Download files from URLs with progress tracking and pause / resume / cancel support. Screenshot
  • Compress - Right-click any file or folder and create an archive (.zip, .tar, .tar.gz) directly on the server.
  • Transfer Center - Centered, project-themed panel that shows every in-flight transfer (upload, download, remote download). It can be minimised to the sidebar and never gets stuck on a Cancelled / Error state — every row has Pause, Resume, Cancel and Dismiss controls.
  • Cloudflare Tunnel - Optional --tunnel flag that publishes the server through a free *.trycloudflare.com URL alongside the local one. Requires the cloudflared binary to be installed on PATH.
  • File Operations - Copy, move, rename, delete files and folders
  • Search - Quick file search functionality
  • Context Menu - Right-click menu with common actions
  • Keyboard Shortcuts - Ctrl+C, Ctrl+V, F2, Del, F5
  • File Preview - Preview text files and images
  • Disk Usage - View disk space information

Quick Start

Install from PyPI (One Command!)

pip install filefy

Run the File Manager

# Start with default settings (port 5000, home directory)
filefy

# Custom port
filefy --port 8080

# Custom directory
filefy --dir /path/to/directory

# Bind to specific host
filefy --host 127.0.0.1 --port 3000

# Enable debug mode
filefy --debug

# Also expose the server on a public Cloudflare tunnel
# (install cloudflared first: https://github.com/cloudflare/cloudflared)
filefy --tunnel

Then open your browser and go to: http://localhost:5000

Installation Methods

Method 1: pip (Recommended)

pip install filefy

Method 2: From Source

git clone https://github.com/Pymmdrza/filefy.git
cd filefy
pip install -e .

Method 3: Using pipx (Isolated Environment)

pipx install filefy

Method 4: Docker (GitHub Container Registry)

Pre-built multi-arch (linux/amd64, linux/arm64) images are published on every push to the default branch and on every v* tag at ghcr.io/pymmdrza/filefy.

# Pull and run the latest image, mounting the host directory you want to manage
docker run -d \
  --name filefy \
  -p 5000:5000 \
  -v "$PWD/data:/data" \
  ghcr.io/pymmdrza/filefy:latest

Open http://localhost:5000 to use the file manager. The container exposes the following environment variables (all optional):

Variable Default Description
FILEFY_HOST 0.0.0.0 Interface to bind the server to
FILEFY_PORT 5000 Port to listen on (inside the container)
FILEFY_DIR /data Base directory exposed by the manager

Pin a specific version by tag, e.g. ghcr.io/pymmdrza/filefy:v1.0.0.

Docker Compose

A ready-to-use docker-compose.yml is included:

docker compose up -d

This will mount ./data into the container and expose the UI on http://localhost:5000. Replace the image: line with build: . to build the image locally from the source tree instead of pulling from GHCR.

Build the image yourself

git clone https://github.com/Pymmdrza/filefy.git
cd filefy
docker build -t filefy:local .
docker run --rm -p 5000:5000 -v "$PWD/data:/data" filefy:local

CLI Usage

usage: filefy [-h] [-H HOST] [-p PORT] [-d DIR] [--debug] [--tunnel] [-v]

filefy - Professional Web-Based File Manager

options:
  -h, --help            show this help message and exit
  -H, --host HOST       Host to bind the server to (default: 0.0.0.0)
  -p, --port PORT       Port to run the server on (default: 5000)
  -d, --dir DIR         Base directory for file management (default: home)
  --debug               Enable Flask debug mode
  --tunnel              Also publish the server through a Cloudflare quick
                        tunnel and print the public URL alongside the local
                        URL. Requires the 'cloudflared' binary on PATH.
  -v, --version         show program's version number and exit

Examples:
  filefy                         Start with default settings
  filefy -p 8080                 Use port 8080
  filefy --host 127.0.0.1        Only allow local connections
  filefy -d /home/user/files     Set base directory
  filefy --debug                 Enable Flask debug mode
  filefy --tunnel                Also expose a public Cloudflare URL

Python API

You can also use filefy programmatically:

from filefy import app, create_app
from filefy.server import run

# Option 1: Run with default settings
run()

# Option 2: Run with custom settings
run(host='127.0.0.1', port=8080, base_dir='/home/user/files')

# Option 3: Get Flask app for custom deployment
app = create_app(base_dir='/var/www/files')
# Use with gunicorn, waitress, etc.

Using with Gunicorn

pip install gunicorn
gunicorn "filefy:create_app()" -b 0.0.0.0:8000 -w 4

Using with Waitress (Windows)

pip install waitress
waitress-serve --listen=0.0.0.0:8000 filefy:app

Development

Setup Development Environment

git clone https://github.com/Pymmdrza/filefy.git
cd filefy
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e ".[dev]"

[!NOTE] More details about API

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Made by MMdrza

Metadata

Release files for filefy 2.0.25

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for filefy 2.0.25
File Size Uploaded
filefy-2.0.25.tar.gz 95.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for filefy 2.0.25
File Interpreter ABI Platform
filefy-2.0.25-py3-none-any.whl Python 3 none any Details

Total release size: 186.5 kB

Release files / filefy-2.0.25.tar.gz

Download URL filefy-2.0.25.tar.gz
Size 95.9 kB
Tags Source
SHA-256 checksum
How to use checksums
48c785ef20bb1392d3cba44866c3ce8f062f8ebb98b420d73ad05ba340eef756
BLAKE2b-256 checksum
How to use checksums
7bc2e1cc5bc32218095f11567a9b0c58b48e5bb4ab34d2dc550e1d87664116bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 26, 2026.

Transparency log

Release files / filefy-2.0.25-py3-none-any.whl

Download URL filefy-2.0.25-py3-none-any.whl
Size 90.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc0c87d9c93d75c4c2619916931197e79fec645a1e6402b9390e4143f0957d9f
BLAKE2b-256 checksum
How to use checksums
90e976c94820496663f8d9656f90fb65dc56ada10d8b0682310df3702ab75dc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.25 This release

2 release files

2.0.16

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.4

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page