Skip to content

rexlx/webdav

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

webdav

file server written in go; serve files over http/https using webdav.

rxlx ~ $ webdav -h
Usage of webdav:
  -anon
    	anonymous connections allowed (user auth disabled)
  -both
    	run an http server and https server
  -cert string
    	path to your cert (default "cert.pem")
  -dir string
    	Directory to serve from. Default is CWD (default "./")
  -insecure
    	disable TLS
  -key string
    	path to your key (default "key.pem")
  -log string
    	syslog server or /path/to/file to log to (default "webdav.log")
  -monitor
    	enable metric logging; memory, heap, numGC, etc
  -p int
    	http port (plain) (default 6200)
  -poll int
    	how often to poll runtime stats (default 30)
  -ps int
    	https port (tls) (default 6201)
  -quiet
    	only log errors
  -uniq string
    	if using syslog, a unique process name for easier debugging (default "__DAV__")
  -v	show version number
  
 **NOTE** you'll need a cert.pem and key.pem for tls to work

# example runs in TLS only mode, allows anonymous connections, logs to a remote server, but only errors
# the uniq flag is just a way to grep through your remote logs easier. finally , run on port 6201 and monitor the
# runtime stats every 30 minutes
# EXAMPLE:
 webdav -dir ./share/ -anon -log udp@192.168.86.42:514 -quiet -uniq "MySpecialProcess01" \
        -cert ./cert.pem -key ./key.pem -ps 6201 -monitor -poll 1800

install / config

Basic Auth Config: unless modified / recompiled, webdav will look for the environment variables listed below. They must be present server side for basic auth to work. The actual values can be whatever, just keep DUSR and DAT unless you know what you're doing.
export DUSR="cowpower"                                # webdav user
export DAT="a961431417E^Cab5d9fDe53752ec81937dc944*5" # webdav access token

TO INSTALL

if you're compiling from source, you'll need to install go (dont worry, it's easy) -> https://go.dev/doc/install. otherwise just download the binary and add it to your path.

mkdir $HOME/bin/
git clone https://github.com/rexlx/webdav.git
cd webdav/
go build webdav.go
mv webdav $HOME/bin/   # or whatever path location you'd like
# if you have no use for the source code, optionally:
cd ../;rm -rf ./webdav/;cd $HOME;ls $HOME/bin/

# finally, verify installed and on the PATH with:
webdav -h

future Updates in the works

Support for json configuration files to reduce CLI args. More robust user authentication. add logging levels.