PHPackages                             unopim/dam - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. unopim/dam

ActiveLibrary[File &amp; Storage](/categories/file-storage)

unopim/dam
==========

Unopim Digital Asset Management (DAM) is a flexible solution for managing digital assets in the Unopim PIM ecosystem. Key features include file and directory management, asset upload, preview, and deletion, advanced metadata tagging, collaboration tools, and CSV/XLSX export/import for asset assignment.

v2.1.1(1w ago)231.3k↑380%25[2 issues](https://github.com/unopim/unopim-digital-asset-management/issues)[1 PRs](https://github.com/unopim/unopim-digital-asset-management/pulls)MITPHPPHP ^8.3CI passing

Since Dec 2Pushed 1w ago2 watchersCompare

[ Source](https://github.com/unopim/unopim-digital-asset-management)[ Packagist](https://packagist.org/packages/unopim/dam)[ RSS](/packages/unopim-dam/feed)WikiDiscussions master Synced today

READMEChangelog (5)Dependencies (2)Versions (17)Used By (0)

UnoPim Digital Asset Management (DAM)
=====================================

[](#unopim-digital-asset-management-dam)

UnoPim DAM is a flexible, open-source Digital Asset Management (DAM) system built on Laravel. It enables businesses to store, organize, and manage digital assets such as images, videos, documents, and more. The system is designed for seamless cross-team asset management. Key features include:

Requirements
------------

[](#requirements)

- **UnoPim**: v2.0.0

### Optional system binaries (for media previews)

[](#optional-system-binaries-for-media-previews)

The asset grid generates first-frame thumbnails for videos and first-page thumbnails for PDFs. These need two CLI tools on the host. If they're missing the grid still works — it just falls back to the generic file-type icon and logs a warning to `storage/logs/laravel.log`.

ToolUsed forInstall (Debian/Ubuntu)Install (RHEL/Alma)macOS (Homebrew)`ffmpeg`Video thumbnails (`Jobs/GenerateVideoThumbnail`)`sudo apt-get install -y ffmpeg``sudo dnf install -y ffmpeg``brew install ffmpeg``poppler-utils` (`pdftoppm`)PDF thumbnails (`Jobs/GeneratePdfThumbnail`)`sudo apt-get install -y poppler-utils``sudo dnf install -y poppler-utils``brew install poppler`After installing, existing assets get their thumbnail lazily on the next thumbnail request — no manual backfill needed.

If you run UnoPim in Docker, add the same packages to your `apt-get install` line in `dockerfiles/fpm.Dockerfile` and `dockerfiles/q.Dockerfile` (the queue worker also needs them, since `GenerateVideoThumbnail` runs there when queued).

✨ Features
----------

[](#-features)

- **Asset Gallery Grid View**
    Browse and manage assets through a visual gallery grid, featuring filters and a search box for quick file access. Supports efficient organization with options for mass actions, including bulk delete.
- **Resource Editing**
    Add tags to assets for enhanced filtering in the gallery view, and apply custom properties such as copyright, source, author, and more. Users can also add comments and view linked resources associated with assets.
- **Linked Resources**
    Directly link related resources from the asset edit page, allowing for easier navigation and improved resource relevance.
- **Directory (Folder) Structure**
    Organize assets in a clear directory tree structure. Right-click to upload files, add directories, rename, delete, copy, and download folders as ZIP files. Files can be dragged and dropped between directories, with support for unlimited subdirectory creation.

[![Comprehensive File & Directory Management](https://github.com/unopim/temp-media/raw/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/directory-management.png)](https://github.com/unopim/temp-media/blob/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/directory-management.png)

- **Comprehensive Asset Operations**
    Perform key asset actions such as uploading, previewing, renaming, deleting, re-uploading, and downloading to meet team needs. Supports a wide range of file types, including images, CSV, XLSX, PDF, audio, and video files.

[![Advanced Asset Operations](https://github.com/unopim/temp-media/raw/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/asset-operations.png)](https://github.com/unopim/temp-media/blob/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/asset-operations.png)

- **Metadata and Tagging**
    Enhance asset searchability and organization by adding tags, custom properties, and embedded metadata.

[![Metadata and Tagging](https://github.com/unopim/temp-media/raw/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/metadata-tagging.png)](https://github.com/unopim/temp-media/blob/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/metadata-tagging.png)

- **History Tracking**Maintain a complete history of changes made to assets, ensuring transparency and easy tracking of modifications over time [![History Tracking](https://github.com/unopim/temp-media/raw/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/history.png)](https://github.com/unopim/temp-media/blob/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/history.png)
- **Collaboration and Resource Linking**
    Enable multi-user comments and resource linking for effective team collaboration on assets.

[![Collaboration and Resource Linking](https://github.com/unopim/temp-media/raw/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/collaboration.png)](https://github.com/unopim/temp-media/blob/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/collaboration.png)

- **Asset Detail Export in Product CSV**
    Export asset details as part of the product CSV export job, enabling smooth data transfer and management by including asset information directly in product CSV files.

[![Asset Assignment via Export / Import](https://github.com/unopim/temp-media/raw/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/asset-assignment.png)](https://github.com/unopim/temp-media/blob/92aa1fc9e1164339fa3f601eac71d15b7d08a9f8/UnoPim-DAM/asset-assignment.png)

Installation with Composer
--------------------------

[](#installation-with-composer)

- Run the following command:

    ```
    composer require unopim/dam
    ```
- Run the command to execute migrations and clear the cache:

    ```
    php artisan dam-package:install;
    php artisan optimize:clear;
    ```
- Start the queue to execute actions, such as job operations, by running the following command:

    ```
      php artisan queue:work
    ```
- If the queue:work command is managed by a process manager like Supervisor, restart the relevant service after installing the module to apply the changes. Replace unopim-worker with your actual worker name, if different:

    ```
    sudo supervisorctl restart unopim-worker
    ```

Installation without Composer
-----------------------------

[](#installation-without-composer)

To manually install UnoPim DAM:

1. **Download and Setup the Extension**

    - Download and unzip the extension.
    - Rename the folder to `DAM` and place it in the `packages/Webkul` directory within the project's root.
2. **Register the Package Provider**

    - Add the following to `bootstrap/providers.php`:
        - At the top, add the use statement: ```
            use Webkul\DAM\Providers\DAMServiceProvider;
            ```
        - In the return array, in the Webkul package service providers section, add: ```
            DAMServiceProvider::class,
            ```
3. **Update Autoload Configuration**

    - Register the DAM directory in `composer.json` under `autoload` `psr-4`: ```
        "Webkul\\DAM\\": "packages/Webkul/DAM/src"
        ```
4. **Run Installation Commands**

    - Execute these commands to complete the installation: ```
        composer dump-autoload
        php artisan optimize:clear
        php artisan migrate
        php artisan vendor:publish --provider=Webkul\\DAM\\Providers\\DAMServiceProvider
        php artisan db:seed --class=Webkul\\DAM\\Database\\Seeders\\DirectoryTableSeeder
        ```
5. **Enable Queue Operations**

    - Start the queue to execute actions, such as job operations, by running the following command: ```
          php artisan queue:work
        ```
    - If the queue:work command is managed by a process manager like Supervisor, restart the relevant service after installing the module to apply the changes. Replace unopim-worker with your actual worker name, if different: ```
        sudo supervisorctl restart unopim-worker
        ```

📦 DAM Asset Migration to AWS S3
-------------------------------

[](#-dam-asset-migration-to-aws-s3)

This Laravel Artisan command is used to **migrate DAM asset files** from the **local private disk** to **AWS S3 storage**. It supports migrating all files or only newly uploaded ones, and optionally deleting local files after successful migration.

### 🛠 Command Signature

[](#-command-signature)

```
php artisan unopim:dam:move-asset-to-s3
```

### 🔐 Authentication

[](#-authentication)

To execute this command, valid admin credentials are required:

- You'll be prompted to enter your **email** and **password**.
- Access is granted only if the credentials match an admin user.

### 🧭 Options Prompts

[](#-options-prompts)

During execution, the command will prompt you to choose:

- **Migrate only new files?**If `yes`, only assets not already present on S3 will be migrated.
- **Delete files from local disk after uploading?**If `yes`, local files will be deleted after successful transfer to S3.

### 📋 Example Workflow

[](#-example-workflow)

```
php artisan unopim:dam:move-asset-to-s3
```

🗂 Demo Data
-----------

[](#-demo-data)

Seed sample directories and assets to explore DAM without uploading your own files.

### Command

[](#command)

```
php artisan dam:demo-data
```

Seeds a set of demo directories (Accessories, Audio and Video, Clothes, Documents) with sample images and documents. The command is **idempotent** — running it twice does nothing if data is already present.

### Re-seed from scratch

[](#re-seed-from-scratch)

```
php artisan dam:demo-data --force
```

Clears all assets and directories under `assets/Root/` and re-seeds from scratch. The command prompts for confirmation (defaults to **No**) before deleting anything.

### During installation

[](#during-installation)

`php artisan dam-package:install` asks whether to seed demo data as the final step, after migrations and asset publishing are complete.

📬 Postman API Collection
------------------------

[](#-postman-api-collection)

To interact with UnoPim DAM's API, you can use our official Postman collection:

[UnoPim DAM APIs Documentation](https://documenter.getpostman.com/view/4385199/2sBXVhEWjQ)

[UnoPim DAM APIs on Postman](https://www.postman.com/unopim/unopim-apis/collection/4385199-086948c4-9e81-4271-abb7-6d6995a67304?ctx=info)

This collection provides ready-to-use API requests for various UnoPim DAM API features. You can import it directly into your Postman workspace and start testing the APIs.

### API Support

[](#api-support)

- **Directories Management Endpoints:**

    - **Create Directory:** `POST /api/v1/rest/directories`
    - **Update Directory:** `PUT /api/v1/rest/directories/{directory_id}`
    - **Delete Directory:** `DELETE /api/v1/rest/directories/{directory_id}`
    - **List Directories:** `GET /api/v1/rest/directories`
- **Assets Management Endpoints:**

    - **Upload Asset:** `POST /api/v1/rest/assets`
    - **Update Asset Metadata:** `PUT /api/v1/rest/assets/{asset_id}`
    - **Delete Asset:** `DELETE /api/v1/rest/assets/{asset_id}`
    - **Download Asset:** `GET /api/v1/rest/assets/download/{asset_id}`
    - **List Assets:** `GET /api/v1/rest/assets?limit=100&page=1`

###  Health Score

56

—

FairBetter than 97% of packages

Maintenance97

Actively maintained with recent releases

Popularity33

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 70.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~142 days

Total

5

Last Release

10d ago

Major Versions

v1.0.0 → v2.0.02026-04-10

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/282263096?v=4)[navneetbhardwaj](/maintainers/navneetbhardwaj)[@NavneetBhardwaj](https://github.com/NavneetBhardwaj)

---

Top Contributors

[![vipinkutthi-webkul](https://avatars.githubusercontent.com/u/273104010?v=4)](https://github.com/vipinkutthi-webkul "vipinkutthi-webkul (215 commits)")[![navneetkumar-pim-webkul](https://avatars.githubusercontent.com/u/26001046?v=4)](https://github.com/navneetkumar-pim-webkul "navneetkumar-pim-webkul (47 commits)")[![mrprince-webkul](https://avatars.githubusercontent.com/u/210351267?v=4)](https://github.com/mrprince-webkul "mrprince-webkul (15 commits)")[![devraj-jaiswal](https://avatars.githubusercontent.com/u/252315967?v=4)](https://github.com/devraj-jaiswal "devraj-jaiswal (9 commits)")[![devansh-pal-webkul](https://avatars.githubusercontent.com/u/153480042?v=4)](https://github.com/devansh-pal-webkul "devansh-pal-webkul (8 commits)")[![vipin-yadav-webkul](https://avatars.githubusercontent.com/u/153269757?v=4)](https://github.com/vipin-yadav-webkul "vipin-yadav-webkul (3 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")[![abhishekverma-webkul](https://avatars.githubusercontent.com/u/194934707?v=4)](https://github.com/abhishekverma-webkul "abhishekverma-webkul (2 commits)")[![kunal-webkul](https://avatars.githubusercontent.com/u/111128645?v=4)](https://github.com/kunal-webkul "kunal-webkul (1 commits)")[![pravat-senapati](https://avatars.githubusercontent.com/u/190098028?v=4)](https://github.com/pravat-senapati "pravat-senapati (1 commits)")[![utkarshumrao-webkul](https://avatars.githubusercontent.com/u/175584804?v=4)](https://github.com/utkarshumrao-webkul "utkarshumrao-webkul (1 commits)")

---

Tags

asset-managementasset-taggingdamdigital-asset-managementdigital-assetsfile-managementlaravelmedia-managementmetadata-managementopen-sourcephp

### Embed Badge

![Health badge](/badges/unopim-dam/health.svg)

```
[![Health](https://phpackages.com/badges/unopim-dam/health.svg)](https://phpackages.com/packages/unopim-dam)
```

###  Alternatives

[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.2k3.5M85](/packages/unisharp-laravel-filemanager)[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[october/rain

October Rain Library

1601.7M83](/packages/october-rain)[symfony/ux-cropperjs

Cropper.js integration for Symfony

19346.6k3](/packages/symfony-ux-cropperjs)[mmes-design/filament-file-manager

A beautiful file manager plugin for Filament. Browse, upload, rename, move and delete files with ease.

163.1k](/packages/mmes-design-filament-file-manager)[farhanshares/laravel-mediaman

MediaMan - The most elegant &amp; powerful media management package for Laravel!

314.2k](/packages/farhanshares-laravel-mediaman)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
