| title | Quick Start |
|---|---|
| description | Get started with Openinary in minutes |
- Docker (version 20.x or higher)
docker pull openinary/openinary:latestRun the dashboard and API
docker run --platform linux/amd64 -d -p 3000:3000 -v openinary-cache:/app/apps/api/cache -v openinary-public:/app/apps/api/public -v openinary-db:/app/data openinary/openinary:latestRun with cloud storage instead of local file storage
docker run --platform linux/amd64 -d -p 3000:3000 -v openinary-db:/app/data \
-e STORAGE_REGION=us-east-1 \
-e STORAGE_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX \
-e STORAGE_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-e STORAGE_BUCKET_NAME=openinary-filebase \
-e STORAGE_ENDPOINT=https://s3.filebase.com/ \
openinary/openinary:latestRun with a standalone API (auto-generates API key)
docker pull openinary/openinary-api:latest
docker run --platform linux/amd64 -d -p 3000:3000 -v openinary-cache:/app/apps/api/cache -v openinary-public:/app/apps/api/public -v openinary-db:/app/data -e MODE=api openinary/openinary-api:latestNormal mode (Dashboard + API):
- Open http://localhost:3000
- You'll be redirected to
/setupto create your admin account - Once logged in, in the bottom left of the dashboard, click on your profile and select “API Keys” from the menu to generate your first API key.
Sample files are available in the container at /app/apps/api/public/ for testing:
example-loan.jpg- Test image transformationsexample-rahime-gul.mp4- Test video transformations
By default, Openinary uses local file storage. For production or to use cloud storage, you can configure environment variables to connect to any S3-compatible storage provider (AWS S3, Cloudflare R2, DigitalOcean Spaces, Minio, and more).
See the Storage configuration page for detailed setup instructions.
If you prefer to run in development mode without Docker:
# Clone the repo
git clone https://github.com/openinary/openinary.git && cd openinary
# Install dependencies
pnpm install
# Start development servers
pnpm devDevelopment URLs will be the same (API: http://localhost:3000, Frontend: http://localhost:3001)
**Volume Persistence**: When deploying to production, ensure all three Docker volumes are properly persisted across deployments: - `db-data` - Contains database file (admin account, API keys) - `public-files` - Contains uploaded files and media - `cache-data` - Contains cached transformations
If any of these volumes are removed or recreated during deployment, the corresponding data will be lost. For production environments, consider using cloud storage (S3-compatible) for better reliability and scalability.