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.

VisitorImgYoungR2 · primaryservingS3 · backupWebDAV · backup
Normally the highest-priority healthy channel serves the image; the other two each hold a replica.

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