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 224cb5e217 Fix cache directory err check+dockerfile 1 year ago
internal/encoding/ssh/filexfer Working on SFTP 1 year ago
s3 It seems to work 1 year ago
sftp It seems to work 1 year ago
.dockerignore Better error management 1 year ago
.gitignore Working on SFTP 1 year ago
Dockerfile Fix cache directory err check+dockerfile 1 year ago
README.md Add a README file 1 year ago
auth_basic.go Refactor the codebase 1 year ago
auth_ldap.go Path + format 1 year ago
auth_s3.go Refactor the codebase 1 year ago
config.go It seems to work 1 year ago
error.go Refactor the codebase 1 year ago
go.mod Working on SFTP 1 year ago
go.sum Working on SFTP 1 year ago
main.go Fix cache directory err check+dockerfile 1 year ago
middleware.go Refactor the codebase 1 year ago
webdav.go It seems to work 1 year 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.