Dacite
Hash-based file storage and upload.
Getting Started
These instructions will help you get the project up and running and are required before moving on.
Flags
Name |
Type |
Default |
Description |
--port |
int |
8000 |
Port to bind web server to. |
--root |
string |
none. |
Path of root directory to store files. |
--algo |
string |
SHA1 |
Hash algo to use for files. (One of MD4 , MD5 , SHA1 , SHA224 , SHA256 , SHA384 , SHA512 , MD5 , SHA1 , RIPEMD160 , SHA3_224 , SHA3_256 , SHA3_384 , SHA3_512 , SHA512_224 , SHA512_256 , BLAKE2s_256 , BLAKE2b_256 , BLAKE2b_384 , BLAKE2b_512 , zeebo/blake3 ) |
--max-file-size |
int |
20 |
Size in MB to limit user uploads to. |
--max-folder-depth |
int |
6 |
Max depth of folders to make in /data. 0 for hash_len/2. |
Creating External Auth Credentials
In order to get started with Dacite, you will need to create an app on your Identity Provider(s) of choice. See the nektro/go.oauth2 docs for more detailed info on this process on where to go and what data you'll need.
Here you can also fill out a picture and description that will be displayed during the authorization of users on your chosen Identity Provider. When prompted for the "Redirect URI" during the app setup process, the URL to use will be http://dacite/callback
, replacing dacite
with any origins you wish Dacite to be usable from, such as example.com
or localhost:8000
.
Once you have finished the app creation process you should now have a Client ID and Client Secret. These are passed into Dacite through flags as well.
Name |
Type |
Default |
Description |
--oauth2-client |
string |
none. |
Client config in the form `for |
The Identity Provider IDs can be found from the table in the nektro/go.oauth2 documentation.
Development
Prerequisites
Installing
Run
$ git clone https://github.com/nektro/dacite
$ cd ./dacite/
$ go get -v .
$ docker-compose up
Deployment
Pre-compiled binaries can be obtained from https://github.com/nektro/dacite/releases/latest.
Or you can build from source:
$ ./scripts/build_all.sh
Built With
License
Apache 2.0