Bagage is the bridge between our users and garage, it enables them to synchronize files that matter for them from their computer to garage through WebDAV
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Quentin 4982bdd839
Fix the Dockerfile
2 years ago
.gitignore Refactor the codebase 2 years ago
Dockerfile Fix the Dockerfile 2 years ago
README.md Add a README file 2 years ago
auth_basic.go Refactor the codebase 2 years ago
auth_ldap.go Add support for directory creation 2 years ago
auth_s3.go Refactor the codebase 2 years ago
config.go Refactor the codebase 2 years ago
error.go Refactor the codebase 2 years ago
go.mod Initial commit 2 years ago
go.sum Initial commit 2 years ago
main.go Refactor the codebase 2 years ago
middleware.go Refactor the codebase 2 years ago
s3_file.go Refactor the codebase 2 years ago
s3_fs.go Fix renaming 2 years ago
s3_path.go Refactor the codebase 2 years ago
s3_stat.go Refactor the codebase 2 years ago
webdav.go Refactor the codebase 2 years ago

README.md

bagage

This is a technical preview, use it a your own risk, expect bugs and missing features.

Bagage will be a service to access your documents everywhere.

Currently, it is only a WebDAV to S3 proxy. Later, it may propose a web interface and support synchronization with the Nextcloud client.

how it works

bagage exposes a webdav endpoint behind an HTTP basic auth. Credentials provided through basic auth are used to authenticate on the LDAP server, then 2 keys garage_s3_access_key and garage_s3_secret_key are fetched from the user's LDAP profile to authenticate against the S3 server.

For now, these entries must be manually/externally added to the LDAP server prior using the service.

configuration

bagage is configured through environment variables. You can get all the keys and their default values in the config.go file.

running it

You need a S3 endpoint and a LDAP server running. Once you correctly set your environment variables, you can simply run it:

go run .

docker

A simple dockerfile is proposed to build a binary if you want.