Usage: dufs [OPTIONS] [root]
Arguments:
- [root] Specific path to serve [env: DUFS_ROOT=] [default: .]
+ [root] Specific path to serve [default: .]
Options:
- -b, --bind <addrs> Specify bind address or unix socket [env: DUFS_BIND=]
- -p, --port <port> Specify port to listen on [env: DUFS_PORT=] [default: 5000]
- --path-prefix <path> Specify a path prefix [env: DUFS_PATH_PREFIX=]
- --hidden <value> Hide paths from directory listings, separated by `,` [env: DUFS_HIDDEN=]
- -a, --auth <rules> Add auth for path [env: DUFS_AUTH=]
- --auth-method <value> Select auth method [env: DUFS_AUTH_METHOD=] [default: digest] [possible values: basic, digest]
- -A, --allow-all Allow all operations [env: DUFS_ALLOW_ALL=]
- --allow-upload Allow upload files/folders [env: DUFS_ALLOW_UPLOAD=]
- --allow-delete Allow delete files/folders [env: DUFS_ALLOW_DELETE=]
- --allow-search Allow search files/folders [env: DUFS_ALLOW_SEARCH=]
- --allow-symlink Allow symlink to files/folders outside root directory [env: DUFS_ALLOW_SYMLINK=]
- --allow-archive Allow zip archive generation [env: DUFS_ALLOW_ARCHIVE=]
- --enable-cors Enable CORS, sets `Access-Control-Allow-Origin: *` [env: DUFS_ENABLE_CORS=]
- --render-index Serve index.html when requesting a directory, returns 404 if not found index.html [env: DUFS_RENDER_INDEX=]
- --render-try-index Serve index.html when requesting a directory, returns directory listing if not found index.html [env: DUFS_RENDER_TRY_INDEX=]
- --render-spa Serve SPA(Single Page Application) [env: DUFS_RENDER_SPA=]
- --assets <path> Use custom assets to override builtin assets [env: DUFS_ASSETS=]
- --tls-cert <path> Path to an SSL/TLS certificate to serve with HTTPS [env: DUFS_TLS_CERT=]
- --tls-key <path> Path to the SSL/TLS certificate's private key [env: DUFS_TLS_KEY=]
- --log-format <format> Customize http log format [env: DUFS_LOG_FORMAT=]
- --completions <shell> Print shell completion script for <shell> [env: DUFS_COMPLETIONS=] [possible values: bash, elvish, fish, powershell, zsh]
+ -b, --bind <addrs> Specify bind address or unix socket
+ -p, --port <port> Specify port to listen on [default: 5000]
+ --path-prefix <path> Specify a path prefix
+ --hidden <value> Hide paths from directory listings, separated by `,`
+ -a, --auth <rules> Add auth for path
+ --auth-method <value> Select auth method [default: digest] [possible values: basic, digest]
+ -A, --allow-all Allow all operations
+ --allow-upload Allow upload files/folders
+ --allow-delete Allow delete files/folders
+ --allow-search Allow search files/folders
+ --allow-symlink Allow symlink to files/folders outside root directory
+ --allow-archive Allow zip archive generation
+ --enable-cors Enable CORS, sets `Access-Control-Allow-Origin: *`
+ --render-index Serve index.html when requesting a directory, returns 404 if not found index.html
+ --render-try-index Serve index.html when requesting a directory, returns directory listing if not found index.html
+ --render-spa Serve SPA(Single Page Application)
+ --assets <path> Use custom assets to override builtin assets
+ --tls-cert <path> Path to an SSL/TLS certificate to serve with HTTPS
+ --tls-key <path> Path to the SSL/TLS certificate's private key
+ --log-format <format> Customize http log format
+ --completions <shell> Print shell completion script for <shell> [possible values: bash, elvish, fish, powershell, zsh]
-h, --help Print help information
-V, --version Print version information
```
2022-08-06T07:04:37+08:00 INFO - 127.0.0.1 admin "GET /" 200
```
+## Environment variables
+
+All options can be set using environment variables prefixed with `DUFS_`.
+
+`dufs --port 8080 --allow-all` is equal to `DUFS_PORT=8080 DUFS_ALLOW_ALL=true dufs`.
+
### Customize UI
Dufs allows users to customize the UI with your own assets.
.arg(
Arg::new("root")
.env("DUFS_ROOT")
+ .hide_env(true)
.default_value(".")
.value_parser(value_parser!(PathBuf))
.help("Specific path to serve"),
.arg(
Arg::new("bind")
.env("DUFS_BIND")
+ .hide_env(true)
.short('b')
.long("bind")
.help("Specify bind address or unix socket")
.arg(
Arg::new("port")
.env("DUFS_PORT")
+ .hide_env(true)
.short('p')
.long("port")
.default_value("5000")
.arg(
Arg::new("path-prefix")
.env("DUFS_PATH_PREFIX")
+ .hide_env(true)
.long("path-prefix")
.value_name("path")
.help("Specify a path prefix"),
.arg(
Arg::new("hidden")
.env("DUFS_HIDDEN")
+ .hide_env(true)
.long("hidden")
.help("Hide paths from directory listings, separated by `,`")
.value_name("value"),
.arg(
Arg::new("auth")
.env("DUFS_AUTH")
+ .hide_env(true)
.short('a')
.long("auth")
.help("Add auth for path")
.arg(
Arg::new("auth-method")
.env("DUFS_AUTH_METHOD")
+ .hide_env(true)
.long("auth-method")
.help("Select auth method")
.value_parser(PossibleValuesParser::new(["basic", "digest"]))
.arg(
Arg::new("allow-all")
.env("DUFS_ALLOW_ALL")
+ .hide_env(true)
.short('A')
.long("allow-all")
.action(ArgAction::SetTrue)
.arg(
Arg::new("allow-upload")
.env("DUFS_ALLOW_UPLOAD")
+ .hide_env(true)
.long("allow-upload")
.action(ArgAction::SetTrue)
.help("Allow upload files/folders"),
.arg(
Arg::new("allow-delete")
.env("DUFS_ALLOW_DELETE")
+ .hide_env(true)
.long("allow-delete")
.action(ArgAction::SetTrue)
.help("Allow delete files/folders"),
.arg(
Arg::new("allow-search")
.env("DUFS_ALLOW_SEARCH")
+ .hide_env(true)
.long("allow-search")
.action(ArgAction::SetTrue)
.help("Allow search files/folders"),
.arg(
Arg::new("allow-symlink")
.env("DUFS_ALLOW_SYMLINK")
+ .hide_env(true)
.long("allow-symlink")
.action(ArgAction::SetTrue)
.help("Allow symlink to files/folders outside root directory"),
.arg(
Arg::new("allow-archive")
.env("DUFS_ALLOW_ARCHIVE")
+ .hide_env(true)
.long("allow-archive")
.action(ArgAction::SetTrue)
.help("Allow zip archive generation"),
.arg(
Arg::new("enable-cors")
.env("DUFS_ENABLE_CORS")
+ .hide_env(true)
.long("enable-cors")
.action(ArgAction::SetTrue)
.help("Enable CORS, sets `Access-Control-Allow-Origin: *`"),
.arg(
Arg::new("render-index")
.env("DUFS_RENDER_INDEX")
+ .hide_env(true)
.long("render-index")
.action(ArgAction::SetTrue)
.help("Serve index.html when requesting a directory, returns 404 if not found index.html"),
.arg(
Arg::new("render-try-index")
.env("DUFS_RENDER_TRY_INDEX")
+ .hide_env(true)
.long("render-try-index")
.action(ArgAction::SetTrue)
.help("Serve index.html when requesting a directory, returns directory listing if not found index.html"),
.arg(
Arg::new("render-spa")
.env("DUFS_RENDER_SPA")
+ .hide_env(true)
.long("render-spa")
.action(ArgAction::SetTrue)
.help("Serve SPA(Single Page Application)"),
.arg(
Arg::new("assets")
.env("DUFS_ASSETS")
+ .hide_env(true)
.long("assets")
.help("Use custom assets to override builtin assets")
.value_parser(value_parser!(PathBuf))
.arg(
Arg::new("tls-cert")
.env("DUFS_TLS_CERT")
+ .hide_env(true)
.long("tls-cert")
.value_name("path")
.value_parser(value_parser!(PathBuf))
.arg(
Arg::new("tls-key")
.env("DUFS_TLS_KEY")
+ .hide_env(true)
.long("tls-key")
.value_name("path")
.value_parser(value_parser!(PathBuf))
app.arg(
Arg::new("log-format")
.env("DUFS_LOG_FORMAT")
+ .hide_env(true)
.long("log-format")
.value_name("format")
.help("Customize http log format"),
)
.arg(
Arg::new("completions")
- .env("DUFS_COMPLETIONS")
.long("completions")
.value_name("shell")
.value_parser(value_parser!(Shell))