Open source · MIT · Self-hosted
One image, many channels
An upload returns as soon as the highest-priority healthy channel has it; the other channels receive replicas in the background. When a channel goes down, reads switch to the next one that holds a replica. Channels can be encrypted down to ciphertext, and the metadata database snapshots itself into them — lose the server, keep the images and the ledger.
Reliability first
Multi-channel failover
Priority defines primary and backups, and health checks demote failing channels. A failed upload moves on to the next channel, you can require N synchronous copies, and replication jobs survive restarts.
Channel encryption
Built on rclone crypt: content and file names are encrypted, so the provider sees only ciphertext. Keys derive from the master key, and stock rclone can decrypt the data on its own.
Automatic metadata backups
Scheduled snapshots are written to every healthy channel, each keeping its own latest N. Browse them in the admin console and restore with one click.
Lifecycle
Expiry at three levels with renew-on-access. Images nobody has opened for a long time land in a cleanup queue, and an admin decides what goes.
Deduplication
Byte-identical images merge automatically; perceptually similar ones are shown side by side for an admin to judge. The upload path never waits on it.
Many ways to upload
HTTP API, PicGo / PicList, the S3 protocol (built into PicList, one plugin away in PicGo), URL import, and drag-and-drop in the admin console — all through one pipeline.
On-demand processing
Resize with ?w= to preset widths and serve WebP to browsers that accept it, cached on local disk. Original URLs never change, so a CDN can cache them for a year.
Users and permissions
Admins create accounts with their own quotas and upload rate limits. Each client gets a named token that can expire, rotate and be revoked; a leaked token can only upload.
Storage channels
A channel is an rclone backend instance. Popular object stores and cloud drives come with templates that need only a few fields; anything else rclone supports works in custom mode with raw rclone parameters.
Storage channels →- Amazon S3
- Cloudflare R2
- Alibaba Cloud OSS
- Tencent Cloud COS
- Backblaze B2
- MinIO / self-hosted
- WebDAV
- OneDrive
- Google Drive
- Dropbox
- pCloud
- Box
- Yandex Disk
- and any other backend rclone supports
Install with one command
No configuration on first start: open port 8721, sign in as admin / imgyoung123 and set a new password.
All install options →curl -fsSL https://raw.githubusercontent.com/x-haose/imgyoung/main/install.sh | sh- Single binary · pure Go
- Linux / macOS / Windows
- amd64 / arm64
- OpenAPI 3.1 reference
- MIT licensed