# Openinary Docs - [Openinary](https://docs.openinary.dev/index.md): Open-source alternative to Cloudinary. Resize, crop, convert and deliver images and video on the fly, from a URL. Hosted or self-hosted. - [Cloud Quickstart](https://docs.openinary.dev/cloud/quickstart.md): Create your Openinary Cloud account, mint an API key, upload your first file, and deliver a transformed URL, in about five minutes. - [Quick Start](https://docs.openinary.dev/quickstart.md): Install Openinary with one command, create an admin account, and make your first image transformation. - [Migrate from Cloudinary](https://docs.openinary.dev/migrate-from-cloudinary.md): Copy your files, switch your uploads and update your URLs. Five steps, the same for ten images or a million. - [How Transformations Work](https://docs.openinary.dev/media-transformations/overview.md): URL structure for on-the-fly image and video transformations, caching behavior, and cache invalidation with Openinary. - [Image Transformations](https://docs.openinary.dev/media-transformations/image-transformations.md): Common image recipes: thumbnails, avatars, banners, and format conversion - [Video Transformations](https://docs.openinary.dev/media-transformations/video-transformations.md): Common video recipes: resizing, trimming, poster frames, and what the 202 means - [Automatic Format Selection](https://docs.openinary.dev/media-transformations/intelligent-compression.md): How Openinary picks AVIF, WebP, or JPEG from browser support, what f_auto changes, and how to force a format with the f parameter. - [Upload & Cache Warming](https://docs.openinary.dev/media-transformations/upload-and-prewarm.md): Upload images and videos via the API and pre-generate transformed variants so the first public request is served instantly from cache. - [Signed URLs](https://docs.openinary.dev/media-transformations/signed-urls.md): Restrict transformation access with HMAC-signed URLs that cannot be forged or tampered with - [](https://docs.openinary.dev/guides/file-uploader.md): Drop a secure, ready-to-use file uploader into any React app with a single shadcn/ui command. Uploads go straight to your Openinary instance using short-lived presigned signatures, no API key in the browser. - [ on Cloud](https://docs.openinary.dev/cloud/file-uploader.md): Wire the Openinary React file uploader to Openinary Cloud: drag & drop uploads straight from the browser, with no API key in the bundle. - [Integrate with Next.js](https://docs.openinary.dev/guides/integrate/nextjs.md): Add secure file uploads and media delivery to a Next.js App Router project, on Openinary Cloud or your own instance: a route handler mints a short-lived signature, the browser uploads with it, and your API key never leaves the server. - [Integrate with React](https://docs.openinary.dev/guides/integrate/react.md): Add secure file uploads and media delivery to any React app, on Openinary Cloud or your own instance: your backend mints a short-lived signature, the browser uploads with it, and your API key never reaches the bundle. - [Openinary Cloud](https://docs.openinary.dev/cloud/overview.md): Managed Openinary, hosted for you. Same transformation API, same upload API, no server to run. Currently in public alpha. - [What differs on Cloud](https://docs.openinary.dev/cloud/api.md): The bucket prefix, the endpoints Cloud does not have, quota errors and rate limits. Everything else matches the shared API reference. - [Server Configuration](https://docs.openinary.dev/configuration/server.md): Environment variables for server mode, secrets, CORS, upload limits, rate limiting and the admin bootstrap. - [Storage](https://docs.openinary.dev/configuration/storage.md): Point Openinary at S3, R2, MinIO or any S3-compatible bucket - [Video Processing](https://docs.openinary.dev/configuration/video-processing.md): Worker concurrency, retries, cleanup and the fixed encode limits - [Docker Resources](https://docs.openinary.dev/configuration/docker-resources.md): CPU and memory limits for the Openinary container, and what to set them to per server size - [Telemetry](https://docs.openinary.dev/configuration/telemetry.md): Exactly what anonymous usage data Openinary sends, where it goes, and how to turn it off - [Deploy on Coolify](https://docs.openinary.dev/guides/coolify-deployment.md): Deploy Openinary on Coolify from the Docker image, with the ports, variables and volumes it needs. - [Deploy on Dokploy](https://docs.openinary.dev/guides/dokploy-deployment.md): Deploy Openinary on Dokploy by importing a ready-made Compose configuration. - [Deploy on Railway](https://docs.openinary.dev/guides/railway-deployment.md): One-click deploy on Railway, with a managed S3 bucket already connected. - [Local Development](https://docs.openinary.dev/local-development.md): Run the Openinary monorepo from source, with the API on :3000 and the dashboard on :3001. - [Security](https://docs.openinary.dev/security.md): Auth model, API keys, upload validation, container users and incident response. - [Cloudinary vs Openinary](https://docs.openinary.dev/cloudinary-comparison.md): An honest, feature-by-feature comparison of what Cloudinary offers versus what Openinary supports today. - [Project Structure](https://docs.openinary.dev/project-structure.md): Where everything lives in the Openinary monorepo, and which package owns what. - [API Reference](https://docs.openinary.dev/api-reference/introduction.md): Base URL, authentication, rate limits and every endpoint, documented once for Cloud and self-hosted - [Transform Media](https://docs.openinary.dev/api-reference/media/transform.md): Resize, crop, convert and trim media by putting parameters in the URL - [Authenticated Transform](https://docs.openinary.dev/api-reference/media/authenticated-transform.md): Apply transformations via a signed URL that cannot be guessed or tampered with - [Upload Files](https://docs.openinary.dev/api-reference/files/upload.md): Upload one or more media files, optionally pre-generating cached transformation variants - [Sign Upload](https://docs.openinary.dev/api-reference/files/upload-sign.md): Mint a short-lived signature so a browser can upload directly to POST /upload without exposing your API key - [Download Original File](https://docs.openinary.dev/api-reference/files/download.md): Download the original uploaded file without any transformation - [Download Folder as ZIP](https://docs.openinary.dev/api-reference/files/download-folder.md): Download every file under a folder as a single ZIP archive - [Download Multiple Items as ZIP](https://docs.openinary.dev/api-reference/files/download-zip.md): Bundle a mixed selection of files and folders into a single ZIP archive - [Create Folder](https://docs.openinary.dev/api-reference/files/create-folder.md): Create an empty folder in storage - [List Storage](https://docs.openinary.dev/api-reference/storage/list.md): List the folders and files in one storage level - [List Folders](https://docs.openinary.dev/api-reference/storage/folders.md): Get every folder path in storage, for building a folder picker - [Get File Metadata](https://docs.openinary.dev/api-reference/storage/metadata.md): Retrieve size and timestamps for a specific file - [Rename File or Folder](https://docs.openinary.dev/api-reference/storage/rename.md): Rename a file or folder in place, without changing its parent location - [Move File or Folder](https://docs.openinary.dev/api-reference/storage/move.md): Move a file or folder into a different parent folder - [Copy File](https://docs.openinary.dev/api-reference/storage/copy.md): Duplicate a file inside its own folder - [Delete File or Folder](https://docs.openinary.dev/api-reference/storage/delete.md): Permanently delete a file or folder, with all its cached transformation variants - [Stats & Folder Summaries](https://docs.openinary.dev/api-reference/storage/stats.md): Aggregate storage and cache usage, and per-folder item counts with preview thumbnails - [Invalidate Cache](https://docs.openinary.dev/api-reference/cache/invalidate.md): Clear cached transformation variants without deleting originals - [Video Processing Status](https://docs.openinary.dev/api-reference/video/status.md): Poll the processing status of a queued video transformation - [Queue Statistics](https://docs.openinary.dev/api-reference/queue/stats.md): Job counts per status for the video processing queue - [Worker Statistics](https://docs.openinary.dev/api-reference/queue/worker-stats.md): Current state of the background video processing worker - [Queue Jobs](https://docs.openinary.dev/api-reference/queue/jobs.md): List, retry, cancel, and delete video processing jobs - [Queue Events (SSE)](https://docs.openinary.dev/api-reference/queue/events.md): Stream video processing job updates over Server-Sent Events - [Create API Key](https://docs.openinary.dev/api-reference/api-keys/create.md): Generate a new API key for authenticating requests - [List API Keys](https://docs.openinary.dev/api-reference/api-keys/list.md): Retrieve every API key on the account - [Update API Key](https://docs.openinary.dev/api-reference/api-keys/update.md): Rename or enable/disable an existing API key - [Delete API Key](https://docs.openinary.dev/api-reference/api-keys/delete.md): Permanently revoke an API key - [Health](https://docs.openinary.dev/api-reference/health.md): Check server and database availability - [Changelog](https://docs.openinary.dev/changelog.md): New features, improvements, and fixes shipped in Openinary This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.