explaingit

zfile-dev/zfile

10,746JavaAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

ZFile is a self-hosted web app that connects Amazon S3, OneDrive, Google Drive, and other storage in one browser interface, browse, preview, and share files without switching between provider websites.

Mindmap

mindmap
  root((ZFile))
    What it does
      Single file browser
      Multi-storage access
      In-browser previews
    Storage backends
      Amazon S3
      OneDrive SharePoint
      Google Drive
      FTP and SFTP
    Features
      Shareable links
      Multi-user accounts
      Access restrictions
    Tech stack
      Java Spring Boot
      Vue frontend
      Docker supported
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Browse files across Amazon S3, OneDrive, and Google Drive from a single web interface without switching apps.

USE CASE 2

Generate shareable links with optional expiry times for files on any connected storage backend.

USE CASE 3

Set up a team file manager with per-user access restrictions on storage sources and folders.

USE CASE 4

Preview images, videos, PDFs, and Office documents in the browser without downloading them first.

Tech stack

JavaSpring BootVueMySQLH2Docker

Getting it running

Difficulty · moderate Time to first run · 30min

Docker Compose is provided, but you need API credentials for each cloud storage provider you connect.

In plain English

ZFile is a self-hosted file management web application that lets individuals and small teams browse files across multiple cloud storage services through a single interface. Instead of switching between different provider websites, you connect each storage account to ZFile once and browse everything in one place. The application connects to a wide range of storage backends: Amazon S3-compatible services, OneDrive, SharePoint, Google Drive, local server storage, FTP, and SFTP servers. Once connected, files appear in a browser-based interface similar to a desktop file manager. You can view images in a gallery layout, play audio and video files, read text documents, preview PDFs, open Office files, and view 3D model files directly in the browser without downloading them first. For sharing, ZFile can generate direct links or short links to individual files, with optional expiry times. The interface is responsive and works on phones, tablets, and computers. Keyboard shortcuts are available for selecting multiple files at once, including standard multi-select and range-select patterns. ZFile supports multiple user accounts. An administrator can create additional users and restrict which storage sources or folders each person can see or upload to. A donor version of the software adds speed-limited downloads and the ability to control which file types specific users can access. The application is built in Java using Spring Boot on the backend and Vue for the frontend. It uses either MySQL or H2 as the database. Docker and Docker Compose are supported for both amd64 and arm64 machines, and a one-line installation script is provided for quick setup. The README is written in Chinese, and a documentation site at docs.zfile.vip covers full setup and configuration details.

Copy-paste prompts

Prompt 1
Show me a docker-compose.yml to self-host ZFile and connect it to an Amazon S3 bucket and an SFTP server.
Prompt 2
How do I create a new user in ZFile and restrict them to only see a specific folder on my storage?
Prompt 3
How do I generate a short shareable link in ZFile with a 24-hour expiry for a file in my S3 bucket?
Prompt 4
What credentials does ZFile need to connect to Google Drive, and where do I enter them in the admin panel?
Open on GitHub → Explain another repo

← zfile-dev on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.