Prerequisites
- Docker 20.x or higher
- Node.js 20+ (only needed to run the CLI)
Install
Scaffold a project with a single command, no install required. It generates your configuration and starts the docker image for you.openinary/ directory, writes a
docker-compose.yml and .env with a generated BETTER_AUTH_SECRET, and starts
the containers.
Once it finishes, your Openinary instance is running at
http://localhost:3000.
openinary command suite (start, stop, upgrade, …), install the
CLI globally:
CLI reference
With the global install, theopeninary command manages the project you just created:
Every command also works without the global install, e.g.
npx create-openinary start
or pnpm create openinary start.
Initial setup (full stack)
- Open http://localhost:3000, you’ll be redirected to
/setup. - Create your admin account.
- Click your profile in the bottom-left of the dashboard → API Keys → create your first key.
Sample files
The container ships with two files for testing, available at/app/apps/api/public/:
example-loan.jpg, for image transformation testsexample-rahime-gul.mp4, for video transformation tests
Manual setup
Run with raw Docker commands (no CLI)
Run with raw Docker commands (no CLI)
- Full stack
- With S3 storage
- API only
Starts the API and web dashboard together.
Run from source
Run from source
Prefer running from source? See Local Development.
Next steps
Image Transformations
Resize, crop, convert format, and optimize images via URL.
Video Transformations
Resize, trim, and extract thumbnails from videos.
Storage
Connect AWS S3, Cloudflare R2, or any S3-compatible provider.
File Uploader
Build a drag-and-drop file uploader with direct-to-storage uploads.