{"id":47669291,"url":"https://github.com/imagekit-developer/strapi-plugin-imagekit","last_synced_at":"2026-04-02T12:24:40.102Z","repository":{"id":296002406,"uuid":"982228189","full_name":"imagekit-developer/strapi-plugin-imagekit","owner":"imagekit-developer","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-19T15:02:56.000Z","size":509,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-05T09:05:42.659Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imagekit-developer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T15:02:57.000Z","updated_at":"2025-09-02T20:27:58.000Z","dependencies_parsed_at":"2025-06-19T10:28:25.258Z","dependency_job_id":"d264964f-a869-4f12-b365-92dbc8bd7933","html_url":"https://github.com/imagekit-developer/strapi-plugin-imagekit","commit_stats":null,"previous_names":["imagekit-developer/strapi-plugin-imagekit"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/imagekit-developer/strapi-plugin-imagekit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagekit-developer%2Fstrapi-plugin-imagekit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagekit-developer%2Fstrapi-plugin-imagekit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagekit-developer%2Fstrapi-plugin-imagekit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagekit-developer%2Fstrapi-plugin-imagekit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imagekit-developer","download_url":"https://codeload.github.com/imagekit-developer/strapi-plugin-imagekit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagekit-developer%2Fstrapi-plugin-imagekit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31306024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-02T12:24:39.514Z","updated_at":"2026-04-02T12:24:40.091Z","avatar_url":"https://github.com/imagekit-developer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[\u003cimg width=\"250\" alt=\"ImageKit.io\" src=\"https://raw.githubusercontent.com/imagekit-developer/imagekit-javascript/master/assets/imagekit-light-logo.svg\"/\u003e](https://imagekit.io)\n\n# Strapi Plugin for ImageKit.io\n\n[![Node CI](https://github.com/imagekit-developer/strapi-plugin-imagekit/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/imagekit-developer/strapi-plugin-imagekit/actions/workflows/ci.yaml)\n[![npm version](https://img.shields.io/npm/v/strapi-plugin-imagekit)](https://www.npmjs.com/package/strapi-plugin-imagekit)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Twitter Follow](https://img.shields.io/twitter/follow/imagekitio?label=Follow\u0026style=social)](https://twitter.com/ImagekitIo)\n\nA Strapi plugin that provides seamless integration with [ImageKit.io](https://imagekit.io/), enabling you to browse, manage, and deliver optimized media directly from your Strapi admin panel. View the [plugin installation and setup video](https://youtu.be/wpCiQj4JKGU) here.\n\nImageKit is a complete media storage, optimization, and transformation solution with an image and video CDN. It integrates with your existing infrastructure (AWS S3, web servers, CDN, custom domains) to deliver optimized images in minutes with minimal code changes.\n\n## Table of Contents\n\n1. [Features](#features)\n2. [Prerequisites](#prerequisites)\n3. [Installation](#installation)\n4. [Configuration](#configuration)\n   - [Configure in Admin UI](#configure-in-admin-ui)\n   - [Advanced: Programmatic Configuration](#advanced-programmatic-configuration-configpluginsjs)\n   - [Configure Security Middleware (CSP)](#configure-security-middleware-csp)\n5. [Contributing](#contributing)\n6. [License](#license)\n7. [Support](#support)\n\n## Features\n\n- **Media Library Integration**: Browse and manage your ImageKit media library directly in Strapi\n- **Bulk Import**: Import existing ImageKit assets into Strapi with a single click\n- **Optimized Delivery**: Serve optimized images and videos through ImageKit\n- **Upload**: Upload new files to ImageKit directly from the Strapi media library\n- **Signed URLs**: Deliver signed URLs for your media assets\n\n## Prerequisites\n\nBefore you begin, you need:\n\n- A Strapi project (v5 or later)\n- Node.js and npm/yarn installed\n- Administrator access to your Strapi instance\n- An [ImageKit account](https://imagekit.io/registration/) (sign up if you don't have one)\n\nYou can refer to Strapi's [official documentation](https://docs.strapi.io/cms/quick-start) to understand the prerequisites for running your Strapi instance.\n\n## Installation\n\nTo install the ImageKit plugin in your Strapi instance, run one of the following commands from your project's root directory:\n\n```bash\n# Using NPM\nnpm install strapi-plugin-imagekit --save\n\n# Using Yarn (recommended)\nyarn add strapi-plugin-imagekit\n```\n\nOnce installed, you must rebuild your Strapi instance:\n\n```bash\n# Using NPM\nnpm run build\nnpm run develop\n\n# Using Yarn\nyarn build\nyarn develop\n\n# OR development mode with auto-reload for admin panel\nyarn develop --watch-admin\n```\n\nThe **ImageKit** plugin will appear in the sidebar and Settings section after the app rebuilds.\n\n|                                                                                                                   |                                                                                            |\n| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |\n| ![](https://ik.imagekit.io/ikmedia/docs_images/integration/strapi/sidebar_screenshot.png?tr=h-960,w-1898,fo-left) | ![](https://ik.imagekit.io/ikmedia/docs_images/integration/strapi/settings_screenshot.png) |\n\n## Configuration\n\n### Configure in Admin UI\n\nYou can configure the ImageKit plugin from within the Strapi admin dashboard. Follow these steps:\n\n1. Go to **Settings** in the main sidebar\n2. Find the **ImageKit Plugin** section and click on **Configuration**.\n\n![](https://ik.imagekit.io/ikmedia/docs_images/integration/strapi/settings_screenshot.png?tr=h-960,w-1500,fo-right)\n\nYou'll see three configuration sections that you should complete in order:\n\n#### 1. Base Configuration\n\nThis section contains the essential credentials to connect with your ImageKit account:\n\n1. **Public Key**: Obtain your public key (prefixed with `public_`) from the [API Keys section](https://imagekit.io/dashboard/developer/api-keys) of your ImageKit dashboard.\n2. **Private Key**: Copy your private key (prefixed with `private_`) from the same dashboard page. Note: Keep your private key confidential as it grants full access to your ImageKit account.\n3. **URL Endpoint**: Get your endpoint URL (formatted as `https://ik.imagekit.io/your_imagekit_id`) from the same dashboard page.\n\n![ImageKit API Keys Dashboard](https://ik.imagekit.io/ikmedia/docs_images/integration/strapi/api_keys_dashboard.png)\n\n#### 2. Configure Media Delivery\n\nAfter adding your credentials, set up how your media will be served:\n\n1. **Configure Web Folder Origin**: Add Strapi as a web folder origin in your ImageKit dashboard (ignore if already done). Follow the [Web Server Integration Documentation](https://imagekit.io/docs/integration/web-server) for detailed steps.\n2. **Enable Integration**: Toggle **Enable Plugin** to ON to activate ImageKit integration for media handling. When OFF, Strapi will use the default provider for uploads.\n3. **Enable Transformations**: Toggle **Use Transform URLs** to ON to leverage ImageKit's real-time transformations, generating responsive URLs with automatic format detection and image optimization capabilities. When OFF, original images are served without transformations.\n4. **Configure Secure Access** (recommended):\n   - Enable **Use Signed URLs**\n   - Set an appropriate **Expiry** time (0 for URLs that never expire, or a duration in seconds)\n\n#### 3. Configure Upload Options\n\nDecide how uploads should work:\n\n1. **Enable Uploads**: Toggle this option ON to upload the files uploaded in Strapi to your ImageKit media library. When OFF, files will be uploaded to the default Strapi storage location. Enabling this option does not upload existing files in Strapi to ImageKit.\n2. **Set Upload Properties**:\n   - **Upload Folder**: Specify a base directory path in ImageKit for organizing your uploads (e.g., `/strapi-uploads/`)\n   - **Tags**: Add comma-separated tags to categorize and filter media assets (e.g., `strapi,media`)\n   - **Overwrite Tags**: Choose whether to replace existing tags or append new ones\n3. **Configure Security \u0026 Validation**:\n   - **File Checks**: Define validation rules for uploads such as size limits or allowed file types. See [Upload API Checks](https://imagekit.io/docs/api-reference/upload-file/upload-file) for available options.\n   - **Mark as Private**: Toggle ON to restrict public access to uploaded files (requires signed URLs to access)\n\n#### 4. Save Your Configuration\n\nClick the **Save** button in the top-right corner to apply your settings.\n\n\u003e **Note**: Some changes may require restarting your Strapi server to take full effect.\n\n### Advanced: Programmatic Configuration (config/plugins.js)\n\nWhile the primary way to configure the ImageKit plugin is through the Strapi admin settings page, you can also provide default values in your Strapi project's configuration file. This is particularly useful for setting up initial configurations in development or deployment environments.\n\nSettings defined in `config/plugins.js` serve as default values that are copied to the dashboard on the first run of your Strapi application. After this initial setup, any changes made through the admin UI will be stored in the database and will be used instead of the values in the configuration file.\n\nFollow these steps:\n\n1. Create or update your `config/plugins.js` file with ImageKit configuration:\n\n```js\nmodule.exports = ({ env }) =\u003e ({\n  imagekit: {\n    enabled: true,\n    config: {\n      // Basic Configuration\n      publicKey: env('IMAGEKIT_PUBLIC_KEY'),\n      privateKey: env('IMAGEKIT_PRIVATE_KEY'),\n      urlEndpoint: env('IMAGEKIT_URL_ENDPOINT'),\n\n      // Delivery Configuration\n      enabled: true,\n      useTransformUrls: true,\n      useSignedUrls: false,\n      expiry: 3600, // URL expiry time in seconds when useSignedUrls is true\n\n      // Upload Configuration\n      uploadEnabled: true,\n\n      // Upload Options\n      uploadOptions: {\n        folder: '/strapi-uploads/',\n        tags: ['strapi', 'media'],\n        overwriteTags: false,\n        checks: '', // Example: '\"file.size\" \u003c= \"5MB\"'\n        isPrivateFile: false,\n      },\n    },\n  },\n});\n```\n\n2. Add these variables to your `.env` file:\n\n```env\nIMAGEKIT_PUBLIC_KEY=your_public_key_here\nIMAGEKIT_PRIVATE_KEY=your_private_key_here\nIMAGEKIT_URL_ENDPOINT=https://ik.imagekit.io/your_imagekit_id\n```\n\nYou can, of course, add more environment variables if you choose to configure other optional settings (like `IMAGEKIT_UPLOAD_FOLDER`, `IMAGEKIT_USE_SIGNED_URLS`, etc.) through `env()` calls in your `config/plugins.js`.\n\n3. Restart your Strapi server for changes to take effect:\n\n```bash\nyarn develop\n```\n\n### Configure Security Middleware (CSP)\n\nTo ensure your Strapi application can securely load assets and interact with ImageKit services, you need to update your Content Security Policy (CSP) settings. This is configured in the `strapi::security` middleware.\n\nModify your `config/middlewares.js` file as follows. This configuration allows your Strapi admin panel and frontend (if applicable) to load images, videos, and potentially embeddable ImageKit frames, while maintaining a secure policy:\n\n```js\n// config/middlewares.js\nmodule.exports = [\n  {\n    name: 'strapi::security',\n    config: {\n      contentSecurityPolicy: {\n        useDefaults: true,\n        directives: {\n          'connect-src': [\"'self'\", 'https:'],\n          'img-src': [\n            \"'self'\",\n            'data:',\n            'blob:',\n            'ik.imagekit.io', // Add ImageKit domain for images\n            // Add your custom domain if you use one with ImageKit:\n            // 'images.yourdomain.com',\n          ],\n          'media-src': [\n            \"'self'\",\n            'data:',\n            'blob:',\n            'ik.imagekit.io', // Add ImageKit domain for videos/audio\n            // Add your custom domain if you use one:\n            // 'media.yourdomain.com',\n          ],\n          'frame-src': [\n            \"'self'\",\n            'data:',\n            'blob:',\n            'eml.imagekit.io', // For ImageKit UI components\n          ],\n          upgradeInsecureRequests: null,\n        },\n      },\n    },\n  },\n  // Keep your other middleware entries here\n];\n```\n\n\u003e **Important**: If you use a custom domain with ImageKit, uncomment and update the relevant lines with your domain.\n\n## Contributing\n\nContributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) before submitting pull requests.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\nFor support, please contact [ImageKit Support](https://imagekit.io/contact/) or open an issue in the GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimagekit-developer%2Fstrapi-plugin-imagekit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimagekit-developer%2Fstrapi-plugin-imagekit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimagekit-developer%2Fstrapi-plugin-imagekit/lists"}