https://github.com/totoval/mindav
A self-hosted file backup server which bridges WebDAV protocol with @Minio written in @Totoval. Webdav ❤️ Minio
https://github.com/totoval/mindav
backup file filestorage memory minio photo s3 sync totoval webdav
Last synced: 2 months ago
JSON representation
A self-hosted file backup server which bridges WebDAV protocol with @Minio written in @Totoval. Webdav ❤️ Minio
- Host: GitHub
- URL: https://github.com/totoval/mindav
- Owner: totoval
- License: apache-2.0
- Created: 2019-04-22T17:43:27.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-04-27T13:06:22.000Z (about 5 years ago)
- Last Synced: 2024-11-05T21:45:46.126Z (7 months ago)
- Topics: backup, file, filestorage, memory, minio, photo, s3, sync, totoval, webdav
- Language: Go
- Homepage:
- Size: 1.26 MB
- Stars: 87
- Watchers: 2
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MinDAV


[](https://goreportcard.com/report/github.com/totoval/mindav)



## 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](https://docs.min.io/docs/minio-erasure-code-quickstart-guide.html) for your files.***## Architecture
## One Click Start
```bash
git clone [email protected]: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](http://cyberduck.io):## Getting Started
> Assumed that you already have your [Minio](https://github.com/minio/minio) server running. Or [Quick Run Minio Server](#quick-run-minio-server)
* `cp .env.example.json .env.json`
* Config your Minio in your `.env.json` file
```json
{
"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
```sh
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):
* [Cyberduck](http://cyberduck.io) for `macOS`, `Windows`
* [PhotoSync](http://www.photosync-app.com) for `iOS`, `Android`
* [FE File Explorer](http://www.skyjos.com) for `iOS`, `Android`, `macOS`
* [Filezilla](https://filezilla-project.org/) for `macOS`, `Windows`, `Linux`
* [rclone](https://rclone.org/webdav/) for `macOS`, `Windows`, `Linux`
* And More...
> `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
- [x] Memory filesystem support
- [x] File filesystem support
- [x] Minio filesystem support
- [x] User system## Thanks
* [Totoval](https://github.com/totoval/totoval)