MinIO
MinIO is an S3-compatible object storage server designed for on-premises and private cloud deployments.
Prerequisites
- A running MinIO instance accessible from the FileNest API
- A bucket created in MinIO
- An access key + secret key with read/write access to the bucket
Connecting MinIO
curl -X PATCH https://filenest.drgodly.com/v1/projects/{id}/storage \
-H "Authorization: Bearer fn_live_..." \
-H "Content-Type: application/json" \
-d '{
"provider": "minio",
"storage_mode": "byob",
"bucket_name": "company-files",
"endpoint_url": "https://minio.internal.example.com",
"access_key_id": "minio-access-key",
"secret_access_key": "minio-secret-key"
}'The endpoint_url must be reachable from the FileNest API server. Self-signed TLS certificates are not supported — use a CA-signed cert or disable TLS at the endpoint and use HTTP only.
Server-side encryption (SSE)
MinIO SSE is off by default and can be toggled per project. When enabled, FileNest sends ServerSideEncryption: AES256 on every upload.
Requirement: your MinIO server must have a KMS key configured before enabling SSE:
# Set on the MinIO server process (not in FileNest)
export MINIO_KMS_SECRET_KEY="my-key:base64encodedvalue="Enable SSE via the Console (Project Settings → Storage → Encryption) or the API:
curl -X PATCH https://filenest.drgodly.com/v1/projects/{id}/storage/sse \
-H "Authorization: Bearer fn_live_..." \
-H "Content-Type: application/json" \
-d '{ "sse_enabled": true }'Verify connectivity
curl -X POST https://filenest.drgodly.com/v1/projects/{id}/storage/verify \
-H "Authorization: Bearer fn_live_..."