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.
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.
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.
# 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 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.
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 The rest of your stack
- Live Cloud servers KVM servers with IPv4, an IPv6 /64, firewalls and backups.
- Live Load balancers Managed HAProxy with health checks and free TLS certificates.
- Live Private networks Your servers, load balancer and database on a network of their own.
- Live Managed databases PostgreSQL, MySQL or Valkey on its own VM, closed by default.
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.