Storage Backend Selection
The storage backend to use for uploaded files.Options:
local- Store files on the local filesystems3- Store files in S3-compatible object storage
local or s3Local Storage Configuration
When usingSTORAGE_BACKEND=local, files are stored directly on the server’s filesystem.
Absolute path to the directory where uploaded files will be stored.Docker default:
/app/dataExample: /var/lib/classquiz/uploadsLocal Storage Setup
Configure volume mount (Docker)
Ensure the storage path is mounted as a volume in your This maps the local
docker-compose.yml:./uploads directory to /app/data in the container.S3-Compatible Storage Configuration
When usingSTORAGE_BACKEND=s3, files are stored in S3-compatible object storage (AWS S3, MinIO, DigitalOcean Spaces, etc.).
Access key ID for S3 authentication.Example:
AKIAIOSFODNN7EXAMPLESecret access key for S3 authentication.Example:
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYName of the S3 bucket where files will be stored.The bucket will be automatically created if it doesn’t exist.
Base URL of your S3-compatible storage service.Examples:
- AWS S3:
https://s3.amazonaws.comorhttps://s3.us-west-2.amazonaws.com - MinIO:
https://minio.example.com - DigitalOcean Spaces:
https://nyc3.digitaloceanspaces.com
S3 Storage Setup
Create S3 bucket
Create a bucket in your S3-compatible storage provider. ClassQuiz can auto-create the bucket if your credentials have sufficient permissions.
Configuration Examples
Storage Limits
By default, each user has a storage quota of 1 GB (1,074,000,000 bytes). You can adjust this limit:Supported File Types
ClassQuiz supports the following MIME types for uploads:image/pngimage/jpegimage/gifimage/webpvideo/mp4
Migration Between Storage Backends
Migration Steps
Troubleshooting
Files not uploading to S3
Files not uploading to S3
Check that:
- Your S3 credentials are correct
- The bucket exists or your credentials allow bucket creation
- Your IAM permissions include
s3:PutObject - The
S3_BASE_URLis correct for your region
Permission denied with local storage
Permission denied with local storage
Ensure the application has write permissions:
Uploaded files not accessible
Uploaded files not accessible
For S3 storage, ensure your bucket policy allows public read access for uploaded files, or that pre-signed URLs are being generated correctly.
Next Steps
Environment Variables
View all configuration options
External Services
Configure database and cache services