Skip to content
/ mindav Public

A self-hosted file backup server which bridges WebDAV protocol with @minio written in @totoval. Webdav ❤️ Minio

License

Notifications You must be signed in to change notification settings

totoval/mindav

Repository files navigation

MinDAV

GitHub tag (latest SemVer) GitHub last commit Go Report Card Travis (.org) GitHub top language GitHub Docker Cloud Build Status

About MinDAV

MinDAV is a self-hosted file backup server which bridges WebDAV protocol with Minio.

WebDAV ❤️ Minio

Why them?

WebDAV

Web Distributed Authoring and Versioning (WebDAV) is an extension of the Hypertext Transfer Protocol (HTTP) that allows clients to perform remote Web content authoring operations.

There're many cloud storages that support WebDAV protocol, such as dropbox, owncloud, nextcloud, etc.

WebDAV provides a simple port for your files.

Minio

The 100% Open Source, Enterprise-Grade, Amazon S3 Compatible Object Storage

Minio is reliable for your files.

Architecture

mindav architecture

One Click Start

git clone git@github.com:totoval/mindav.git
cd mindav
cp .env.example.json .env.json
docker-compose up -d

Now you can connect the MinDAV by using your favorite WebDAV clients, such as Cyberduck:
cyberduck client

Getting Started

Assumed that you already have your Minio server running. Or Quick Run Minio Server

  • cp .env.example.json .env.json
  • Config your Minio in your .env.json file
    {
      "WEBDAV_DRIVER": "minio",
      "WEBDAV_USER": "totoval",
      "WEBDAV_PASSWORD": "passw0rd",
      "MINIO_ENDPOINT": "play.min.io:9000",
      "MINIO_ACCESS_KEY_ID": "access_key_id",
      "MINIO_SECRET_ACCESS_KEY": "secret_access_key",
      "MINIO_BUCKET": "bucket_name",
      "MINIO_USE_SSL": false,
      "MEMORY_UPLOAD_MODE": false
    }
  • Run go run main.go or the run the binary
  • Now you can connect the MinDAV by using your favorite WebDAV clients

Quick Run Minio Server

docker run --name minio --rm -it \ 
    -p "9000:9000" \ 
    -v "./minio/data:/data" \ 
    -v "./minio/config:/root/.minio" \ 
    minio/minio:latest \ 
    server /data

Supported Clients(KNOWN):

OSX's finder is not support for rename operate!

MEMORY_UPLOAD_MODE

If the host has a large memory, then set to true could improve upload performance.

Roadmap

  • Memory filesystem support
  • File filesystem support
  • Minio filesystem support
  • User system

Thanks