In short
The fastest way to try UnoPim is Docker: two commands and you have a working PIM on port 8000. For a real server, install it with Composer on PHP 8.4.1+ with MySQL, MariaDB or PostgreSQL, and run the queue worker under Supervisor. Without the queue worker, imports, exports and completeness jobs never run.
UnoPim is an open source PIM (product information management) system built on Laravel, released under the MIT license. The current release is 3.1.3, published on September 29, 2026. This guide shows the two ways to install it, the parts people often miss, and what we check before a UnoPim install goes live.
New to PIM? Read what a PIM system is and when a Magento store needs one first.
UnoPim requirements
| Component | Version |
|---|---|
| Web server | Nginx or Apache2 |
| PHP | 8.4.1 or newer |
| Composer | 2.6 or newer |
| Database | MySQL 8.0.32+, MariaDB 10.11 LTS or 11.8 LTS, or PostgreSQL 16 |
| Node.js | 22 LTS, recommended for building assets |
| Elasticsearch | Optional; off by default, recommended for large catalogs |
| PHP extensions | calendar, curl, intl, mbstring, openssl, pdo, pdo_mysql, tokenizer (and json, xml, gd, zip, fileinfo for upgrades) |
Two details catch people out. First, pdo_mysql is required even if you run PostgreSQL. Second, MariaDB support became first-class in 3.1.0; use DB_CONNECTION=mariadb and install mariadb-dump on the server for upgrade backups.
Option 1: install UnoPim with Docker
This is the right choice for a test, a demo or a first look at your own data. It uses ready-made images, so you do not need to check out the code.
curl -O https://raw.githubusercontent.com/unopim/unopim/3.x/compose.yaml
docker compose up -dBefore the first start, put the admin login in a .env file next to compose.yaml:
INSTALLER_ADMIN_EMAIL=you@example.com
INSTALLER_ADMIN_PASSWORD=choose-a-strong-passwordThen open http://localhost:8000/admin. If you leave the password empty, UnoPim creates a random one and saves it in storage/app/admin-credentials.txt inside the container. Change it after the first login.
The Docker stack uses PostgreSQL 16, Redis and Elasticsearch 8 by default. To use MySQL instead, add compose.mysql.yaml. Decide this before you load data: switching database engines later needs a fresh database.
Option 2: install UnoPim with Composer on a server
For production we install UnoPim directly on an Ubuntu server with Nginx and PHP-FPM, so it can be updated, backed up and monitored like any other application.
composer create-project unopim/unopim
cd unopim
php artisan unopim:installThe installer asks for your database details and creates the admin account. Point the Nginx document root to the public folder, and make storage and bootstrap/cache writable for the web server user.
Do not skip the queue worker
Imports, exports, completeness scores, AI tasks, webhooks and Digital Product Passport publishing all run on queues. If no worker runs, these jobs wait forever and the admin looks stuck. Start it with all five queues:
php artisan queue:work --queue=webhooks,system,completeness,default,publicationOn a server, keep it running with Supervisor:
[program:unopim-worker]
command=php /var/www/unopim/artisan queue:work --queue=webhooks,system,completeness,default,publication --sleep=3 --tries=3
user=www-data
autostart=true
autorestart=true
stdout_logfile=/var/log/unopim-worker.logAfter every update, restart the worker so it loads the new code.
Production checklist
- HTTPS only, with
APP_ENV=productionandAPP_DEBUG=false. - Keep
APP_KEYsafe. It encrypts stored credentials, such as AI provider keys. Losing it means re-entering them. - Redis for cache and queues once more than a few people work in the PIM.
- Elasticsearch for large catalogs. Set
ELASTICSEARCH_ENABLED=truewhen search and filters slow down. - Upload limits in PHP and Nginx that fit your largest images and import files.
- Daily backups of the database and the
storagefolder, and a tested restore. - Admin users and roles per team, not one shared login.
- An update routine. Read
UPGRADE.mdand the changelog before each release, and test it on staging first.
Connecting UnoPim to Magento
A PIM pays off when the product data flows into your store without manual exports. UnoPim has REST APIs and webhooks, and connectors are listed on the UnoPim extensions marketplace. Plan the mapping first: which attributes, families and variant axes in UnoPim match which attribute sets and configurable products in Magento. Moving from Akeneo? See our Akeneo alternative guide.
Frequently asked questions
Is UnoPim free?
Yes. UnoPim is open source under the MIT license. You pay for hosting, and for setup or development if you need help.
Does UnoPim need Elasticsearch?
No. It is off by default, and search falls back to the database. Turn it on for large catalogs.
Which database should I choose for UnoPim?
MySQL, MariaDB and PostgreSQL are all supported. Pick the one your team already runs and backs up. The Composer install defaults to MySQL, the Docker stack to PostgreSQL.
Why are my UnoPim imports not running?
In almost every case the queue worker is not running, or it was started without all five queues.
Need UnoPim set up?
As an official UnoPim partner, we install and host UnoPim, move data from Akeneo or spreadsheets, and connect it to Magento. See our UnoPim implementation service, or leave your details below for a free analysis.

