Skip to content

💾 File Storage Configuration

By default, files uploaded through the Jumper application (such as Action thumbnails) are stored locally within the Carrot server's /app/files directory.

For production environments, scalability, and resilience, Carrot can be configured to use external Object Storage compliant with S3 or OpenStack Swift protocols.

This section details all available file storage configurations. To select your storage backend, set the STORAGE environment variable accordingly (e.g., STORAGE=s3).

📁 Local File Storage (STORAGE=local)

This is the default storage type. Files are stored directly on the server's local file system.

Environment VariableDescriptionExample
LOCAL_MEDIA_ROOTThe absolute path to the directory where files will be stored on the local file system. (Default: /app/files)/app/files

☁️ S3-Compatible Object Storage (STORAGE=s3)

This storage type is based on the S3 protocol, compatible with AWS S3, MinIO, or other S3-compliant providers.

Environment VariableDescriptionExample
S3_ENDPOINT_URLThe public URL of the S3 server. This URL must be accessible by both the Carrot Server and all Jumper Clients for direct file access.https://s3.your-provider.com
S3_SERVER_URLThe S3 URL used only by Carrot to connect to the S3 server (e.g., an internal URL). If not defined, the value of S3_ENDPOINT_URL will be used.https://internal-s3.your-provider.com
S3_ACCESS_KEY_IDThe Access Key ID for S3 authentication.your_access_key_id
S3_SECRET_ACCESS_KEYThe Secret Access Key for S3 authentication.your_secret_access_key
S3_BUCKET_NAMEThe name of the S3 bucket where files will be stored. The bucket must be created beforehand. (Default: carrot)carrot
S3_REGION_NAMEThe region name of the S3 server. (Default: us-east-1)us-east-1
S3_USE_SSLSpecifies whether the connection to the S3 server should use SSL/TLS (HTTPS). (Default: True)True
S3_VERIFY_SSLSpecifies whether the SSL certificate of the S3 server should be verified. (Default: True)True
S3_PRESIGNED_URL_EXPIRES_INThe validity duration (in seconds) for the pre-signed URLs generated for file access by Jumper Clients. (Default: 3600)3600

🚀 OpenStack Swift Storage (STORAGE=swift)

This storage type is based on the OpenStack Swift protocol.

Environment VariableDescriptionExample
SWIFT_AUTH_URLThe authentication URL for the Swift server (Keystone endpoint).https://swift.your-provider.com/auth/v1.0
SWIFT_USERNAMEThe username used to connect to the Swift server.your_username
SWIFT_PASSWORDThe password for Swift authentication.your_password
SWIFT_CONTAINER_NAMEThe name of the Swift container where files will be stored. The container will be created automatically if it does not exist. (Default: carrot)carrot
SWIFT_REGION_NAMEThe region name of the Swift server. (Default: RegionOne)RegionOne
SWIFT_PROJECT_NAMEThe project (tenant) name used for connecting to the Swift server.your_project_name
SWIFT_PROJECT_DOMAIN_NAMEThe domain name of the project used for authentication.Default
SWIFT_USER_DOMAIN_NAMEThe domain name of the user used for authentication.Default
SWIFT_AUTH_VERSIONThe version of the Swift authentication system (Keystone version). (Default: 3)3
SWIFT_TEMP_URL_KEYThe secret key used to generate temporary (pre-signed) file access URLs. Note: This key must be set on the container using the OpenStack CLI: openstack container set <container-name> --property Temp-URL-Key=<your-key>your_temp_url_key
SWIFT_PRESIGNED_URL_EXPIRES_INThe validity duration (in seconds) for the temporary URLs generated for file access by Jumper Clients. (Default: 3600)3600