File Storage Overview
LaunchKit provides a file storage system for user avatars, organization logos, and other uploads. Storage is abstracted through a service layer that supports multiple backends.
FileController
The FileController handles all file-related operations:
- Upload avatar — upload or replace the authenticated user's profile picture
- Upload org logo — upload or replace an organization's logo
- Get signed URL — generate a temporary URL for accessing private files
StorageManager Service
The StorageManager service abstracts the underlying storage driver and provides a consistent API regardless of the backend:
- S3 — Amazon Simple Storage Service
- Cloudflare R2 — S3-compatible object storage
- Local disk — local filesystem (development and testing)
The active driver is determined by the storage.driver setting in the admin panel.
Configuration
Storage settings are managed from the admin panel at runtime:
storage.driver—s3,r2, orlocalstorage.s3.*— AWS S3 credentials and bucket configurationstorage.r2.*— Cloudflare R2 credentials and bucket configuration
Changes take effect immediately without restarting the application.