# ImgYoung - [Introduction](/en/docs): ImgYoung is a self-hosted image host with multi-channel failover. Every image is stored on several storage channels, so losing one does not break uploads or links. - [Quick start](/en/docs/quick-start): Run ImgYoung with Docker, sign in to the console, upload your first image and get its Markdown link. - **Install** - Install - [Installation](/en/docs/install): Five ways to install, compared - the install script, the Docker image, Docker Compose, release archives and building from source. - [Install script](/en/docs/install/script): Download a release on Linux or macOS, verify its sha256 and put it on the PATH; on Linux it can also register a systemd service. Running it again upgrades. - [Docker image](/en/docs/install/docker): Run ImgYoung from the multi-arch image on GHCR - the run command, image tags, the data volume, environment variables and settings behind a reverse proxy. - [Docker Compose](/en/docs/install/compose): Run ImgYoung with the compose.yaml from the repository, and pair it with Caddy for automatic HTTPS. - [Release archives](/en/docs/install/binary): Download the archive for your platform, verify its sha256 and run it directly; suited to Windows and to environments where the install script is inconvenient. - [Build from source](/en/docs/install/source): Build the single binary with the admin console from source, and why the build flags are what they are. - **Usage** - Guides - [Uploading](/en/docs/guides/upload): Upload images through the HTTP API, URL fetch or the admin console, plus format and size limits, EXIF handling, idempotency keys, how duplicates are handled and what a successful upload guarantees. - [Upload clients](/en/docs/guides/clients): Connect PicGo, PicList, Typora, the aws CLI, rclone and other clients to ImgYoung, either as a custom web uploader or over the S3 protocol. - [Accessing images](/en/docs/guides/access): The two forms of image links, caching and conditional requests, on-demand resizing and WebP negotiation, the proxy and 302 access modes, hotlink protection, and how accesses are counted. - [Lifecycle and deduplication](/en/docs/guides/lifecycle): How lifetimes are resolved across three levels and renewed on access, expiry sweeps and the three-stage delete, tagging and reviewing cold images, and automatic merging of exact duplicates alongside manual review of near-duplicates. - [Admin console](/en/docs/guides/admin): What each page of the admin console is for, how administrators and regular users differ, quotas and upload rate limits, the full lifecycle of upload tokens, and sign-in, sessions and interface preferences. - **Storage channels** - Storage channels - [Channels and failover](/en/docs/channels): What a channel is, where uploads go, how replicas are filled in, how reads fail over, and the rules for health checks, editing, deleting and usage alerts. - [Object storage and WebDAV](/en/docs/channels/object-storage): What each built-in object storage template asks for, why buckets must exist beforehand, public URLs and 302 direct links, custom mode and generic WebDAV, and how to read probe errors. - [Cloud drives and OAuth](/en/docs/channels/cloud-drives): Which drives need authorization, the two ways to authorize, how tokens are refreshed and stored, how Chinese cloud drives connect over WebDAV through a self-hosted aggregator, and the limits every drive channel shares. - [Channel encryption](/en/docs/channels/encryption): Store only ciphertext at your provider with rclone crypt — what it protects against, how to turn it on, why it is fixed at creation, where the keys come from, and how to decrypt a channel with stock rclone without ImgYoung. - **Configure & operate** - [Configuration](/en/docs/configuration): Every bootstrap setting (environment variable) and runtime setting (admin console), with defaults, valid ranges and when changes take effect, plus how to keep the master key safe. - Operations - [Reverse proxy & HTTPS](/en/docs/operations/reverse-proxy): Put Caddy or Nginx in front of ImgYoung and get IMGYOUNG_TRUSTED_PROXIES, base_url and the upload size limit right. - [CDN](/en/docs/operations/cdn): Putting a CDN in front of ImgYoung — cache headers, WebP negotiation and Vary, cache keys for on-demand processing, Cloudflare cache purging, and how redirect mode and hotlink protection behave behind a CDN. - [Backup & restore](/en/docs/operations/backup): Automatic metadata snapshots, restoring from a snapshot, disaster recovery after losing the host, the metadata export, and reconciliation GC. - [Upgrading](/en/docs/operations/upgrade): Upgrade commands for each installation method, the database migrations that run automatically at startup, and what to watch out for when rolling back. - [Forgotten password](/en/docs/operations/password-reset): Recover the built-in administrator by clearing its password hash and restarting to get the factory password back; reset other users' passwords from the admin console. - [Monitoring & alerts](/en/docs/operations/monitoring): /healthz and /metrics, scraping with Prometheus, alert conditions and the webhook payload, and logs. - **Developers** - Go library - [Using it as a Go library](/en/docs/library): ImgYoung's storage layer ships as three public packages you can go get — a driver interface, an rclone implementation, and multi-store failover primitives. - [Driver interface and rclone implementation](/en/docs/library/driver): The Driver contract, rclone.Open options, password parameter encoding, OAuth token write-back, the crypt layer, and writing your own driver. - [Multi-store failover](/en/docs/library/failover): The write, read, and health check primitives in store/failover, a complete primary/backup example, and building replication on top of them. - API reference - [API reference](/en/docs/api): Authentication, error format, and shared conventions of the ImgYoung HTTP API; per-group endpoint details are generated from the OpenAPI document. - [Data plane](/en/docs/api/data-plane): Uploads and URL fetch, authenticated with upload tokens - [Image access](/en/docs/api/image-access): Public image delivery, subject to hotlink protection - [System](/en/docs/api/system): Health check and API document - [Admin · Session](/en/docs/api/admin-session): Sign in, sign out, current user and password change - [Admin · Overview and settings](/en/docs/api/admin-overview): Dashboard and runtime configuration - [Admin · Upload](/en/docs/api/admin-upload): Session-authenticated uploads through the same pipeline as the data plane - [Admin · Images](/en/docs/api/admin-images): Image list, details, edits and deletion - [Admin · Upload tokens](/en/docs/api/admin-tokens): Issuing, rotating and revoking named upload tokens, and their S3 credentials - [Admin · Storage channels](/en/docs/api/admin-channels): Channel templates, creation, editing, probing, deletion and cloud drive authorization - [Admin · Users](/en/docs/api/admin-users): User accounts, quotas and password resets (admins only) - [Admin · Hotlink protection](/en/docs/api/admin-referer): Referer allowlist (admins only) - [Admin · Review](/en/docs/api/admin-review): Review of similar duplicates and cold images awaiting cleanup (admins only) - [Admin · Operations](/en/docs/api/admin-operations): Audit log, alerts, backup snapshots and metadata export (admins only) - [Architecture](/en/docs/architecture): Single-instance design, layers and dependency direction, the data model, upload and access data flows, the outbox fence, periodic tasks, and why rclone is integrated in-process. ## Full text and other languages - [English full text](/en/llms-full.txt) - [中文索引 (Chinese index)](/zh/llms.txt) - [中文全文 (Chinese full text)](/zh/llms-full.txt)