Object storage

S3 storage for uploads, assets and backups

Store uploads, static files and backups in Ghent using S3-compatible tools. Give each app access to the buckets it needs, and add capacity when you need it.

What you get

Storage you can safely hand to an application

  • Works with your tools

    The AWS CLI, rclone and the common S3 SDKs. Multipart uploads, presigned URLs, CORS and lifecycle expiry work.

  • Keys per bucket

    Give a key read, write or owner rights on the buckets it needs, and nothing more.

  • Quotas

    Cap a bucket by size or by number of objects.

  • Encrypted connections

    Every connection uses TLS, with a CA bundle you can verify against.

  • Closed by default

    Your storage can't be reached from the internet until you open it to the addresses you choose.

  • Storage that grows online

    Add storage and the disk grows online. Nothing restarts.

Setup

Three lines and you're in

Your dashboard gives you the endpoint, the region and a CA bundle. Paste them into the tool you already use.

AWS CLI bash
# Endpoint, region and CA bundle come from your console (connection details)
export AWS_ENDPOINT_URL=https://<endpoint> AWS_DEFAULT_REGION=<region> AWS_CA_BUNDLE=faastic-ca.pem
export AWS_ACCESS_KEY_ID=<key-id> AWS_SECRET_ACCESS_KEY=<secret>
aws s3 cp ./backup.tar.gz s3://backups/
rclone bash
rclone config create faastic s3 provider=Other endpoint=https://<endpoint> region=<region> \
  access_key_id=<key-id> secret_access_key=<secret> force_path_style=true
rclone copy ./site faastic:static

If you need those, we'd rather tell you now than after you've moved your data.

A bucket and a key for one app bash
export FAASTIC_TOKEN=fst_…        # read/write, area: databases (managed data, S3 included)
export ORG=…  S3=…

# A bucket with a 100 GB quota
curl -s -X POST "https://api.faastic.com/v1/orgs/$ORG/services/$S3/data/databases" \
  -H "Authorization: Bearer $FAASTIC_TOKEN" -H "Content-Type: application/json" \
  -d '{"name":"uploads","maxSizeGb":100}'

# A key for one application, with read and write on that bucket only
curl -s -X POST "https://api.faastic.com/v1/orgs/$ORG/services/$S3/data/users" \
  -H "Authorization: Bearer $FAASTIC_TOKEN" -H "Content-Type: application/json" \
  -d '{"name":"web-app","role":"readwrite","scope":{"buckets":{"uploads":["read","write"]}}}'
# → the secret is returned once

Frequently asked questions

Does it work with the AWS CLI and rclone?

Yes. Use the endpoint, region and CA bundle from your dashboard with the AWS CLI, rclone or a common S3 SDK. Multipart uploads, presigned URLs, CORS and lifecycle expiry all work.

Is this the same as AWS S3?

No. It's S3-compatible storage built on Garage. Versioning, object lock, bucket policies and ACLs aren't available.

Can I add more storage later?

Yes. Add storage and the disk grows online, without a restart.

Where is my data stored?

In our datacenter in Ghent, Belgium.

Add it to your stack

Order object storage in the dashboard, next to your servers, on the same network and the same invoice.