PHPackages                             flownative/neos-pixxio - 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. flownative/neos-pixxio

ActiveNeos-package

flownative/neos-pixxio
======================

Neos integration for pixx.io

4.0.2(2mo ago)464.0k↓32.6%14[1 issues](https://github.com/flownative/neos-pixxio/issues)MITPHPPHP ^8.0

Since Jun 13Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/flownative/neos-pixxio)[ Packagist](https://packagist.org/packages/flownative/neos-pixxio)[ RSS](/packages/flownative-neos-pixxio/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (8)Versions (33)Used By (0)

[![MIT license](https://camo.githubusercontent.com/4661abfe916186acde514558e7f040833cb63ba7098401a51ce339cbb2b4cf9e/687474703a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)](http://opensource.org/licenses/MIT)[![Packagist](https://camo.githubusercontent.com/cb46aa137d120d71f2081c466bb75a27eb8839e0b731b4a5654f670f4d8971b2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666c6f776e61746976652f6e656f732d70697878696f2e737667)](https://packagist.org/packages/flownative/neos-pixxio)[![Maintenance level: Acquaintance](https://camo.githubusercontent.com/750673d8ac23cfeb2421a23f118f82ce29736a494ebee758ee5362010e1dbfe9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61696e74656e616e63652d2545322539392541312d6666363962342e737667)](https://www.flownative.com/en/products/open-source.html)

pixx.io adaptor for Neos
========================

[](#pixxio-adaptor-for-neos)

This [Flow](https://flow.neos.io) package allows you to use assets (ie. pictures and other documents) stored in [pixx.io](https://www.pixx.io/) in your Neos website as if these assets were native Neos assets.

About pixx.io
-------------

[](#about-pixxio)

pixx.io offers an intelligent solution for digital asset management. The software makes working with pictures, graphics and video files easier. pixx.io is safe, efficient and easy to understand and handle.

Key Features
------------

[](#key-features)

- seamless integration into the Neos media browser
- automatic import and clean up of media assets from pixx.io

Installation
------------

[](#installation)

The pixx.io connector is installed as a regular Flow package via Composer. For your existing project, simply include `flownative/neos-pixxio` into the dependencies of your Flow or Neos distribution:

```
composer require flownative/neos-pixxio
```

After installation you need to run database migrations:

```
./flow doctrine:migrate
```

Enabling pixx.io API access
---------------------------

[](#enabling-pixxio-api-access)

The API access is configured by two components:

1. a setting which contains the customer-specific service endpoint URL (`https:///api/v1`)
2. a setting providing the pixx.io API key, which can be obtained from within your Mediaspace (Settings → API → API-Key → Generate)

**To get the needed values for API endpoint and API key, please contact your pixx.io support contact.**

Using those values configure an asset source by adding this to your settings:

```
Neos:
  Media:
    assetSources:
      # an identifier for your asset source, up to you
      'acme-pixxio':
        assetSource: 'Flownative\Pixxio\AssetSource\PixxioAssetSource'
        assetSourceOptions:
          apiEndpointUri: 'https://acme.pixxio.media/api/v1'
          apiKey: 'abcdef123456789'
```

When you committed and deployed these changes, you can log in to the Neos backend and navigate to the pixx.io asset source in the media management.

Additional configuration options
--------------------------------

[](#additional-configuration-options)

Defaults for the described settings can be found (and adjusted) in `Flownative.Pixxio.defaults.assetSourceOptions`.

### Label &amp; description

[](#label--description)

You can configure a custom label and description for the asset source like this:

```
Neos:
  Media:
    assetSources:
      'acme-pixxio':
        assetSourceOptions:
          label: 'ACME assets'
          description: 'Our custom pixx.io assets source'
```

### Additional configuration for specific media types

[](#additional-configuration-for-specific-media-types)

During import, Neos tries to use a medium-sized version of the original instead of the high resolution file uploaded to pixx.io. This greatly improves import speed and produces good results in most cases. Furthermore, this way some formats, like Adobe Photoshop, can be used seamlessly in Neos without the need to prior converting them into a web-compatible image format.

It is possible though, to configure this plugin to always use the high-res original for import. By default, formats like SVG or PDF are imported this way. You can add more types through the similar entries like in the following settings:

```
Neos:
  Media:
    assetSources:
      'acme-pixxio':
        assetSourceOptions:
          mediaTypes:
            'image/svg+xml':
              usePixxioThumbnailAsOriginal: true
            'application/pdf':
              usePixxioThumbnailAsOriginal: true
```

### Custom API client options

[](#custom-api-client-options)

Sometimes the API Client needs additional configuration for the TLS connection like custom timeouts or certificates. See:

```
Neos:
  Media:
    assetSources:
      'acme-pixxio':
        assetSourceOptions:
          apiClientOptions:
            'verify': '/path/to/cert.pem'
```

Using ImageOptions parameters for files
---------------------------------------

[](#using-imageoptions-parameters-for-files)

Via configuration, you can set what dimensions the returned images must have. The sizes are defined by the following keys:

- `thumbnailUri` used in the media browser list
- `previewUri` used in the detail page of a asset
- `originalUri` used for downloading the asset

Each can be overridden from your own configuration, by addressing the specific preset key.

By default, the assets from Pixx.io is returned in a cropped format. When this is the case, a editor can't see if a asset is horizontal or vertical, when looking in the Media Browser list. By setting `crop: false` the image will be returned in a not-cropped version, and it's visible for the editor, to see the assets orientation.

```
Neos:
  Media:
    assetSources:
      'acme-pixxio':
        assetSourceOptions:
          imageOptions:
            thumbnailUri:
              crop: false
```

Cleaning up unused assets
-------------------------

[](#cleaning-up-unused-assets)

Whenever a pixx.io asset is used in Neos, the media file will be copied automatically to the internal Neos asset storage. As long as this media is used somewhere on the website, Neos will flag this asset as being in use. When an asset is not used anymore, the binary data and the corresponding metadata can be removed from the internal storage. While this does not happen automatically, it can be easily automated by a recurring task, such as a cron-job.

In order to clean up unused assets, simply run the following command as often as you like:

```
./flow media:removeunused --asset-source acme-pixxio
```

If you'd rather like to invoke this command through a cron-job, you can add two additional flags which make this command non-interactive:

```
./flow media:removeunused --quiet --assume-yes --asset-source acme-pixxio
```

Auto-Tagging
------------

[](#auto-tagging)

This plugin also offers an auto-tagging feature. When auto-tagging is enabled, Neos will automatically flag assets which are currently used with a user-defined keyword. When as the asset is not used in Neos anymore, this keyword is removed. This keyword is applied to the actual file / asset in the pixx.io media library and helps editors to keep an overview of which assets are currently used by Neos.

Auto-tagging is configured as follows:

```
Neos:
  Media:
    assetSources:
      'acme-pixxio':
        assetSourceOptions:
          autoTagging:
            enable: true
            # optional, used-by-neos is the default tag
            inUseTag: 'used-by-neos'
```

Since Neos currently cannot handle auto-tagging reliably during runtime, the job must be done through a command line command. Simply run the following command for tagging new assets and removing tags from assets which are not in use anymore:

```
./flow pixxio:tagusedassets --asset-source acme-pixxio

Tagging used assets of asset source "acme-pixxio" via Pixxio API:
  (tagged)  dana-devolk-1348553-unsplash 358 (1)
   tagged   azamat-zhanisov-1348039-unsplash 354 (1)
  (tagged)  tim-foster-1345174-unsplash 373 (1)
   removed  some-coffee 28 (0)
  (tagged)  nikhita-s-615116-unsplash 368 (1)

```

It is recommended to run this command through a cron-job, ideally in combination with the `media:removeunused`command. It's important to run the `removeunused`-command *after* the tagging command, because otherwise removed images will not be untagged in the pixx.io media library.

---

**NOTE**
At this point, the auto-tagging feature is not really optimized for performance. The command merely iterates over all assets which were imported from pixx.io and checks if tags need to be updated.

---

### Directory mapping from pixx.io to Neos

[](#directory-mapping-from-pixxio-to-neos)

pixx.io offers directories to organize assets in a folder structure. Those can be mapped to asset collections and tags in Neos, to make them visible for the users.

The configuration for the directory import looks like this:

```
Neos:
  Media:
    assetSources:
      'acme-pixxio':
        assetSourceOptions:
          mapping:
            # map "categories" from pixx.io to Neos
            directoriesMaximumDepth: 2         # only include the first two levels of directories (10 is default)
            directories:
              'People/Employees':
                asAssetCollection: false      # ignore this directory, put more specific patterns first
              'People*':                      # the category "path" in pixx.io, shell-style globbing is supported
                asAssetCollection: true       # map to an asset collection named after the category
```

- The key used is the directory path as used in the pixx.io API
- `asAssetCollection` set to `true` exposes the directory as an asset collection named like the directory.

Afterwards, run the following command to update the asset collections, ideally in a cronjob to keep things up-to-date:

```
./flow pixxio:importdirectoriesascollections --asset-source acme-pixxio
```

To check what a given configuration would import, you can use a verbose dry-run:

```
$ ./flow pixxio:importdirectoriesascollections --asset-source acme-pixxio --quiet 0 --dry-run 1
Importing directories as asset collections via pixx.io API
o Dokumentation
= Kunde A
= Kunde A/Projekt 1
o Kunde A/Projekt 1/Copy
o Kunde A/Projekt 1/Design
+ Kunde A/Projekt 2
o Kunde A/Projekt 2/Copy
o Kunde A/Projekt 2/Design
o Marketing
o home
o home/Doe_John
Import done.
```

The above would have added "Kunde A/Projekt 2", the items marked "=" exist already, and everything else is ignored.

Background and Demo
-------------------

[](#background-and-demo)

[![Background and Demo](https://camo.githubusercontent.com/f1d887ef9ebe954fbbe5c4f7db234d227cf9f4e0bc751a889b38b86a482f1d25/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f6e4730356e6e2d596430492f302e6a7067)](https://www.youtube.com/watch?v=nG05nn-Yd0I)

Credits and license
-------------------

[](#credits-and-license)

The first version of this plugin was sponsored by [pixx.io](https://www.pixxio-bildverwaltung.de/) and its initial version was developed by Robert Lemke of [Flownative](https://www.flownative.com).

See LICENSE for license details.

###  Health Score

58

—

FairBetter than 98% of packages

Maintenance82

Actively maintained with recent releases

Popularity37

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~91 days

Recently: every ~11 days

Total

32

Last Release

64d ago

Major Versions

1.2.1 → 2.1.12020-05-13

1.2.2 → 2.1.22020-05-18

1.3.0 → 2.2.12021-11-15

2.4.1 → 3.0.02025-01-24

1.x-dev → 4.0.02026-01-29

PHP version history (3 changes)3.0.0PHP ^8.0

1.5.0-rc1PHP ^7.4

1.5.0-rc2PHP ^7.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10280881?v=4)[Flownative](/maintainers/flownative)[@flownative](https://github.com/flownative)

---

Top Contributors

[![kdambekalns](https://avatars.githubusercontent.com/u/95873?v=4)](https://github.com/kdambekalns "kdambekalns (60 commits)")[![robertlemke](https://avatars.githubusercontent.com/u/95582?v=4)](https://github.com/robertlemke "robertlemke (36 commits)")[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (14 commits)")[![sorenmalling](https://avatars.githubusercontent.com/u/531918?v=4)](https://github.com/sorenmalling "sorenmalling (5 commits)")[![LIS-CorneliusLink](https://avatars.githubusercontent.com/u/58025655?v=4)](https://github.com/LIS-CorneliusLink "LIS-CorneliusLink (1 commits)")[![kitsunet](https://avatars.githubusercontent.com/u/324408?v=4)](https://github.com/kitsunet "kitsunet (1 commits)")[![nilsjung](https://avatars.githubusercontent.com/u/24273394?v=4)](https://github.com/nilsjung "nilsjung (1 commits)")[![GuangHa](https://avatars.githubusercontent.com/u/12826344?v=4)](https://github.com/GuangHa "GuangHa (1 commits)")[![rolandschuetz](https://avatars.githubusercontent.com/u/735982?v=4)](https://github.com/rolandschuetz "rolandschuetz (1 commits)")[![sbruggmann](https://avatars.githubusercontent.com/u/1162368?v=4)](https://github.com/sbruggmann "sbruggmann (1 commits)")[![gerhard-boden](https://avatars.githubusercontent.com/u/10533739?v=4)](https://github.com/gerhard-boden "gerhard-boden (1 commits)")

---

Tags

asset-managementdamneos-cmsneos-medianeos-pluginpixxio

### Embed Badge

![Health badge](/badges/flownative-neos-pixxio/health.svg)

```
[![Health](https://phpackages.com/badges/flownative-neos-pixxio/health.svg)](https://phpackages.com/packages/flownative-neos-pixxio)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[neos/neos

An open source Content Application Platform based on Flow. A set of core Content Management features is resting within a larger context that allows you to build a perfectly customized experience for your users.

116989.0k674](/packages/neos-neos)[neuron-core/neuron-ai

The PHP Agentic Framework.

1.8k245.3k21](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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