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 can not 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
5 months ago
.gitignore Refactor the codebase 5 months ago
Dockerfile Fix the Dockerfile 5 months ago
README.md Add a README file 5 months ago
auth_basic.go Refactor the codebase 5 months ago
auth_ldap.go Add support for directory creation 5 months ago
auth_s3.go Refactor the codebase 5 months ago
config.go Refactor the codebase 5 months ago
error.go Refactor the codebase 5 months ago
go.mod Initial commit 5 months ago
go.sum Initial commit 5 months ago
main.go Refactor the codebase 5 months ago
middleware.go Refactor the codebase 5 months ago
s3_file.go Refactor the codebase 5 months ago
s3_fs.go Fix renaming 5 months ago
s3_path.go Refactor the codebase 5 months ago
s3_stat.go Refactor the codebase 5 months ago
webdav.go Refactor the codebase 5 months 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.