# Admin user email (required) CFRAME_ADMIN_EMAIL= # Admin user name (default to Chronoframe, optional) CFRAME_ADMIN_NAME= # Admin user password (default to CF1234@!, optional) CFRAME_ADMIN_PASSWORD= # Site configuration NUXT_PUBLIC_APP_TITLE=ChronoFrame NUXT_PUBLIC_APP_SLOGAN=Mems rest within the lens. NUXT_PUBLIC_APP_AUTHOR= NUXT_PUBLIC_APP_AVATAR_URL= # Color mode preference: light, dark, or system NUXT_PUBLIC_COLOR_MODE_PREFERENCE=light # Map Provider (mapbox/maplibre) NUXT_PUBLIC_MAP_PROVIDER=maplibre # Map style URL NUXT_PUBLIC_MAP_MAPLIBRE_STYLE= NUXT_PUBLIC_MAP_MAPBOX_STYLE= # Mapbox access token for map features, Mapbox GL JS (Client-side, public) NUXT_PUBLIC_MAPBOX_ACCESS_TOKEN= # Mapbox secret access token for server-side, Mapbox Search API (Reverse Geocoding) NUXT_MAPBOX_ACCESS_TOKEN= # Custom Nominatim API base URL (use MapBox or proxy when official API is blocked in mainland China) NUXT_NOMINATIM_BASE_URL= # Storage provider (s3/local/openlist) NUXT_STORAGE_PROVIDER=s3 # S3 storage provider configuration NUXT_PROVIDER_S3_ENDPOINT= NUXT_PROVIDER_S3_BUCKET= NUXT_PROVIDER_S3_REGION=auto NUXT_PROVIDER_S3_ACCESS_KEY_ID= NUXT_PROVIDER_S3_SECRET_ACCESS_KEY= NUXT_PROVIDER_S3_PREFIX=photos/ NUXT_PROVIDER_S3_CDN_URL= NUXT_PROVIDER_S3_FORCE_PATH_STYLE=false # Local storage provider configuration NUXT_PROVIDER_LOCAL_PATH=./data/storage # external access base URL for local storage, e.g. /storage (built-in /storage route) NUXT_PROVIDER_LOCAL_BASE_URL=/storage # OpenList storage provider configuration # OpenList base URL, e.g. https://your-openlist-server.com. NUXT_PROVIDER_OPENLIST_BASE_URL= # OpenList root path, e.g. /115pan/chronoframe/photos NUXT_PROVIDER_OPENLIST_ROOT_PATH= # Authentication - Token authentication (recommended) NUXT_PROVIDER_OPENLIST_TOKEN= NUXT_PROVIDER_OPENLIST_ENDPOINT_UPLOAD=/api/fs/put NUXT_PROVIDER_OPENLIST_ENDPOINT_DOWNLOAD= NUXT_PROVIDER_OPENLIST_ENDPOINT_LIST= NUXT_PROVIDER_OPENLIST_ENDPOINT_DELETE=/api/fs/remove NUXT_PROVIDER_OPENLIST_ENDPOINT_META=/api/fs/get NUXT_PROVIDER_OPENLIST_PATH_FIELD=path NUXT_PROVIDER_OPENLIST_CDN_URL= # Session password for encrypting session data, 32 characters long NUXT_SESSION_PASSWORD= # GitHub OAuth app credentials NUXT_PUBLIC_OAUTH_GITHUB_ENABLED=false NUXT_OAUTH_GITHUB_CLIENT_ID= NUXT_OAUTH_GITHUB_CLIENT_SECRET= # DEPRECATED # INSECURE Options - DO NOT use these options in production or on public networks # Allow cookies to be transmitted over insecure connections, effects login session security # NUXT_ALLOW_INSECURE_COOKIE=false # Google Analytics Measurement ID (e.g. G-XXXXXXX) NUXT_PUBLIC_GTAG_ID= # Matomo Analytics configuration NUXT_PUBLIC_ANALYTICS_MATOMO_ENABLED=false NUXT_PUBLIC_ANALYTICS_MATOMO_URL= NUXT_PUBLIC_ANALYTICS_MATOMO_SITE_ID= # ----------------- # Upload Configuration # ----------------- # Enable MIME type whitelist validation for file uploads (default: true) NUXT_UPLOAD_MIME_WHITELIST_ENABLED=true # Comma-separated list of allowed MIME types for uploads # Default includes: image/jpeg, image/png, image/webp, image/gif, image/bmp, # image/tiff, image/heic, image/heif, video/quicktime, video/mp4 NUXT_UPLOAD_MIME_WHITELIST=image/jpeg,image/png,image/webp,image/gif,image/bmp,image/tiff,image/heic,image/heif,video/quicktime,video/mp4 # To disable whitelist and allow any file type, set: # NUXT_UPLOAD_MIME_WHITELIST_ENABLED=false # Enable duplicate file detection during upload (default: true) NUXT_UPLOAD_DUPLICATE_CHECK_ENABLED=true # Duplicate detection mode (default: skip) # - 'warn': Show warning but allow upload (will overwrite existing photo) # - 'block': Reject upload if file already exists # - 'skip': Skip upload and return existing photo info NUXT_UPLOAD_DUPLICATE_CHECK_MODE=skip