Repository navigation
Setup
YAP may require an increased max_input_vars setting, especially when working with product types that contain many fields or when submitting large forms.
The default PHP value is typically 1000. We recommend setting it to at least 10000:
max_input_vars = 10000You can configure this value in your PHP configuration (php.ini).
Make sure the setting also applies to the PHP runtime used by your web server (PHP-FPM or Apache), not just the CLI.
Clone the repository or create a new project using Composer:
Option A: Clone the repository
git clone git@github.com:yetAnotherPim/yap.git
cd yapOption B: Install via Composer
composer create-project yet-another-pim/yap
cd yapSet the environment variables for the installation:
export APP_ENV=prod
export APP_DEBUG=0Install Composer dependencies without development packages and optimize the autoloader:
composer install --no-dev --optimize-autoloaderRun the interactive setup wizard to configure the database connection and generate the required application secrets:
php bin/console yap:setupCreate the configured database:
php bin/console doctrine:database:create --if-not-existsCreate tables:
php bin/console doctrine:schema:create
Apply the database migrations:
php bin/console doctrine:migrations:migrate --allow-no-migrationGenerate the private and public keys required for JWT authentication:
php bin/console lexik:jwt:generate-keypair --skip-if-existsCreate the initial administrator account:
php bin/console yap:user:createCompile the environment variables into .env.local.php:
composer dump-env prodCompile the AssetMapper assets for production:
php bin/console asset-map:compileThe application is now initialized and ready for further production configuration.Setup for production
YAP uses Symfony Messenger to process asynchronous messages.
The product_update transport processes product update messages asynchronously.
For production environments, configure a dedicated Messenger consumer for this transport using Supervisor or Systemd, as recommended by Symfony.
The consumer command is:
php /path/to/your/app/bin/console messenger:consume product_update --time-limit=3600See the Symfony documentation for configuration examples:
Alternative: JsConsumer plugin
Instead of running a dedicated background worker, you can use the JsConsumer plugin to process product updates through a JavaScript consumer.
Yet Another PIM (YAP) — A self-hosted Product Information Management system.
Official Website · GitHub Repository · Wiki
Made in EU 🇪🇺