How marseventh/cloudflare-imgbed works
CloudFlare ImgBed is a self-hosted file-hosting and management hub. Users upload files through the upload API, which applies configuration, authentication and content review, then records file metadata; they can retrieve and manage files through file, REST-style management and WebDAV interfaces. Supporting capabilities include sessions, directory and tag organization, random-image selection, and multiple storage backends. The graph follows the documented product scope and sampled calls; some route and provider wiring was not sampled, so uncertain links are omitted.
Main entry points: upload/index.js Upload API · random/index.js Random images · databaseAdapter.js Database adapter · manage Management API
Components 28
Access and API
- Authentication API
functions/api/auth/login.js - Session manager
functions/utils/auth/sessionManager.js - WebDAV interface
functions/dav/[[path]].js - Public gallery
functions/api/public/list.js
File workflows
- Upload API
functions/upload/index.js - Upload tools
functions/upload/uploadTools.js - Chunk upload
functions/upload/chunkUpload.js - File delivery
functions/file/[[path]].js - Image transforms
functions/file/imageTransform.js - Random images
functions/random/index.js - Adaptive selection
functions/random/adaptive.js
Management
- Management API
functions/api/manage - Content moderation
functions/upload/uploadTools.js - File index
functions/utils/indexManager.js - Tags and metadata
functions/utils/tagHelpers.js - System configuration
functions/utils/sysConfig.js
Persistence and storage
- Database adapter
functions/utils/databaseAdapter.js - D1 database
functions/utils/d1Database.js - Local server runtime
deploy/server/index.js - Local R2 adapter
deploy/server/r2Storage.js - Telegram storage
functions/utils/storage/telegramAPI.js - Discord storage
functions/utils/storage/discordAPI.js - Hugging Face storage
functions/utils/storage/huggingfaceAPI.js - WebDAV storage
functions/utils/storage/webdavAPI.js
Other components
- Visitor / client
- Administrator
- Cloudflare R2
- External storage services
Connections 30
- Visitor / client → Upload API: uploads files
- Upload API → System configuration: loads settings
- Upload API → Upload tools: prepares and reviews
- Upload API → Chunk upload: dispatches large files
- Visitor / client → File delivery: requests files
- File delivery → Image transforms: transforms images
- Visitor / client → Random images: requests random image
- Random images → System configuration: reads options
- Random images → File index: reads file records
- Random images → Adaptive selection: selects by device
- Visitor / client → Authentication API: signs in
- Authentication API → Session manager: manages session
- Administrator → Management API: manages files and settings
- Management API → File index: uses file index
- Management API → Tags and metadata: manages tags
- Visitor / client → Public gallery: browses files
- Visitor / client → WebDAV interface: uses WebDAV
- Upload API → Database adapter: records metadata
- File index → Database adapter: stores index chunks
- Session manager → Database adapter: stores sessions
- Database adapter → D1 database: adapts D1
- Local server runtime → Local R2 adapter: initializes local storage
- Upload API → Telegram storage: uploads to
- Upload API → Discord storage: uploads to
- Upload API → Hugging Face storage: uploads to
- Upload API → WebDAV storage: uploads to
- Telegram storage → External storage services: transfers files
- Discord storage → External storage services: transfers files
- Hugging Face storage → External storage services: transfers files
- WebDAV storage → External storage services: transfers files