mirror of
https://github.com/DumbWareio/DumbDrop.git
synced 2025-10-23 07:41:58 +00:00
- Introduced a storage adapter factory to dynamically select between local and S3 storage based on the STORAGE_TYPE environment variable. - Added S3 adapter for handling file operations on AWS S3, including multipart uploads and presigned URLs. - Implemented local storage adapter for managing file operations on the local filesystem. - Enhanced configuration validation to ensure proper setup for both storage types. - Updated .env.example and README.md to document new storage configuration options and usage. This commit significantly improves the application's flexibility in handling file uploads by supporting both local and cloud storage options, enhancing user experience and deployment versatility.
113 lines
3.2 KiB
Plaintext
113 lines
3.2 KiB
Plaintext
#########################################
|
|
# SERVER CONFIGURATION
|
|
#########################################
|
|
|
|
# Port for the server (default: 3000)
|
|
PORT=3000
|
|
|
|
# Base URL for the application (must end with '/', default: http://localhost:PORT/)
|
|
BASE_URL=http://localhost:3000/
|
|
|
|
# Node environment (default: development)
|
|
NODE_ENV=development
|
|
|
|
#########################################
|
|
# STORAGE CONFIGURATION
|
|
#########################################
|
|
|
|
# Storage type ('local' or 's3', default: local)
|
|
STORAGE_TYPE=local
|
|
|
|
#########################################
|
|
# LOCAL STORAGE SETTINGS (if STORAGE_TYPE=local)
|
|
#########################################
|
|
|
|
# Directory for uploads (local dev, fallback: './local_uploads')
|
|
LOCAL_UPLOAD_DIR=./local_uploads
|
|
|
|
# Directory for uploads (Docker/production; optional, overrides LOCAL_UPLOAD_DIR if set)
|
|
UPLOAD_DIR=
|
|
|
|
#########################################
|
|
# S3 STORAGE SETTINGS (if STORAGE_TYPE=s3)
|
|
#########################################
|
|
|
|
# S3 Region (e.g., us-east-1 for AWS, us-west-000 for B2)
|
|
S3_REGION=
|
|
|
|
# S3 Bucket Name
|
|
S3_BUCKET_NAME=
|
|
|
|
# S3 Access Key ID
|
|
S3_ACCESS_KEY_ID=
|
|
|
|
# S3 Secret Access Key
|
|
S3_SECRET_ACCESS_KEY=
|
|
|
|
# Optional: S3 Endpoint URL (for non-AWS S3-compatible providers like MinIO, Backblaze B2)
|
|
# Example Backblaze B2: https://s3.us-west-000.backblazeb2.com
|
|
# Example MinIO: http://minio.local:9000
|
|
S3_ENDPOINT_URL=
|
|
|
|
# Optional: Force Path Style (true/false, default: false). Needed for some providers like MinIO.
|
|
S3_FORCE_PATH_STYLE=false
|
|
|
|
#########################################
|
|
# FILE UPLOAD LIMITS & OPTIONS
|
|
#########################################
|
|
|
|
# Maximum file size in MB (default: 1024)
|
|
MAX_FILE_SIZE=1024
|
|
|
|
# Comma-separated list of allowed file extensions (optional, e.g. .jpg,.png,.pdf)
|
|
# ALLOWED_EXTENSIONS=.jpg,.png,.pdf
|
|
ALLOWED_EXTENSIONS=
|
|
|
|
#########################################
|
|
# SECURITY
|
|
#########################################
|
|
|
|
# PIN protection (4-10 digits, optional)
|
|
# DUMBDROP_PIN=1234
|
|
DUMBDROP_PIN=
|
|
|
|
#########################################
|
|
# UI SETTINGS
|
|
#########################################
|
|
|
|
# Site title displayed in header (default: DumbDrop)
|
|
DUMBDROP_TITLE=DumbDrop
|
|
|
|
# Custom footer links (comma-separated, format: "Link Text @ URL")
|
|
# Example: FOOTER_LINKS=My Site @ https://example.com, Another Link @ https://another.org
|
|
FOOTER_LINKS=
|
|
|
|
#########################################
|
|
# NOTIFICATION SETTINGS
|
|
#########################################
|
|
|
|
# Apprise URL for notifications (optional)
|
|
APPRISE_URL=
|
|
|
|
# Notification message template (default: New file uploaded {filename} ({size}), Storage used {storage})
|
|
APPRISE_MESSAGE=New file uploaded {filename} ({size}), Storage used {storage}
|
|
|
|
# Size unit for notifications (B, KB, MB, GB, TB, or Auto; default: Auto)
|
|
APPRISE_SIZE_UNIT=Auto
|
|
|
|
#########################################
|
|
# ADVANCED
|
|
#########################################
|
|
|
|
# Enable automatic upload on file selection (true/false, default: false)
|
|
AUTO_UPLOAD=false
|
|
|
|
# Comma-separated list of origins allowed to embed the app in an iframe (optional)
|
|
# ALLOWED_IFRAME_ORIGINS=https://example.com,https://another.com
|
|
ALLOWED_IFRAME_ORIGINS=
|
|
|
|
# Max number of retries for client-side chunk uploads (default: 5)
|
|
CLIENT_MAX_RETRIES=5
|
|
|
|
# Demo Mode (true/false, default: false). Overrides storage settings.
|
|
DEMO_MODE=false |