explaingit

sigoden/dufs

10,128RustAudience · developerComplexity · 2/5Setup · easy

TLDR

A single-binary file server you run from the terminal that lets you browse, upload, edit, and download files from any folder over a web browser or HTTP client, with optional password protection and WebDAV support.

Mindmap

mindmap
  root((dufs))
    File operations
      Browse and search
      Upload and edit
      Zip download
    Access control
      User accounts
      Per-folder permissions
      Public paths
    Protocols
      HTTP and HTTPS
      WebDAV
      Static site serving
    Install options
      Cargo
      Homebrew
      Docker
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

Share a local folder over your network as a browsable, drag-and-drop upload site in one command.

USE CASE 2

Mount the server as a network drive on Windows, macOS, or Linux using WebDAV for personal cloud storage.

USE CASE 3

Serve a single-page app or static website with HTTPS from a local or remote machine.

USE CASE 4

Transfer large files between machines with resumable uploads and downloads so interrupted transfers don't start over.

Tech stack

Rust

Getting it running

Difficulty · easy Time to first run · 5min

Single binary with no runtime dependencies, install via Cargo, Homebrew, or download a pre-built binary from the releases page.

In plain English

Dufs is a small, self-contained file server you run from the command line. You point it at a folder on your machine, and it makes that folder accessible through a web browser or HTTP client over your local network or the internet. The simplest case is typing a single command to share your current working directory as a read-only site. Beyond basic file browsing, Dufs supports file uploads through a drag-and-drop web interface, in-browser file editing and creation, full-text search across file names, and downloading entire folders as zip archives. Uploads and downloads support resuming interrupted transfers rather than starting over. If you want encrypted connections, you can provide an SSL certificate and run it over HTTPS. Access control lets you restrict what different users can do. You can set up accounts with usernames and passwords and specify per-account and per-folder permissions, granting some users read-write access and others read-only. You can also leave specific paths fully public. Passwords can optionally be stored as hashed values rather than plain text. Dufs also supports WebDAV, a standard protocol that lets you mount the server as a network drive in Windows, macOS, and Linux, making it usable as a simple personal cloud storage system. It can also act as a static web server, including a mode for serving single-page applications such as those built with React or Vue. The tool is written in Rust, which means it compiles to a single binary with no runtime dependencies. Installation is available through Cargo (the Rust package manager), Homebrew on macOS, Docker, or direct binary downloads from the releases page. A command-line reference and examples for common use cases, including integration with the curl tool, are included in the README. The project is actively maintained and available for macOS, Linux, and Windows.

Copy-paste prompts

Prompt 1
I want to use dufs to share a folder on my Mac over my local network with password protection. Show me the exact command.
Prompt 2
Help me configure dufs with two user accounts: one read-only and one read-write, serving a specific directory over HTTPS.
Prompt 3
I want to mount a dufs server as a network drive on Windows using WebDAV. Walk me through the steps.
Prompt 4
Show me how to use dufs as a static file server for a React single-page app, including how to handle client-side routing.
Prompt 5
I need to run dufs in Docker and expose it on port 8080 with basic auth. Write me a docker run command.
Open on GitHub → Explain another repo

← sigoden on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.