Create buckets and keys

We use a command named garagectl which is in fact an alias you must define as explained in the Control the daemon section.

In this section, we will suppose that we want to create a bucket named nextcloud-bucket that will be accessed through a key named nextcloud-app-key.

Don't forget that help command and --help subcommands can help you anywhere, the CLI tool is self-documented! Two examples:

garagectl help
garagectl bucket allow --help

Create a bucket

Fine, now let's create a bucket (we imagine that you want to deploy nextcloud):

garagectl bucket create nextcloud-bucket

Check that everything went well:

garagectl bucket list
garagectl bucket info nextcloud-bucket

Create an API key

Now we will generate an API key to access this bucket. Note that API keys are independent of buckets: one key can access multiple buckets, multiple keys can access one bucket.

Now, let's start by creating a key only for our PHP application:

garagectl key new --name nextcloud-app-key

You will have the following output (this one is fake, key_id and secret_key were generated with the openssl CLI tool):

Key name: nextcloud-app-key
Key ID: GK3515373e4c851ebaad366558
Secret key: 7d37d093435a41f2aab8f13c19ba067d9776c90215f56614adad6ece597dbb34
Authorized buckets:

Check that everything works as intended:

garagectl key list
garagectl key info nextcloud-app-key

Allow a key to access a bucket

Now that we have a bucket and a key, we need to give permissions to the key on the bucket!

garagectl bucket allow \
  --read \
  --write 
  nextcloud-bucket \
  --key nextcloud-app-key

You can check at any times allowed keys on your bucket with:

garagectl bucket info nextcloud-bucket