# Packaging Apigility

**URL:** <https://discourse.laminas.dev/t/packaging-apigility/645>\
**Category:** API Tools\
**Created:** [July 18, 2018, 8:07am UTC](https://discourse.laminas.dev/t/packaging-apigility/645 "2018-07-18T08:07:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![uhaider](https://avatars.discourse-cdn.com/v4/letter/u/2acd7d/32.png) [@uhaider](https://discourse.laminas.dev/u/uhaider)\
**Post date:** [July 18, 2018, 8:07am UTC](https://discourse.laminas.dev/t/packaging-apigility/645/1 "2018-07-18T08:07:52Z")

</div>

Hi,

I am new to the forum and Apigility. I am trying to package Apigility (rpm). Anyone else tired this before? Are there any pointers or online documentation/tutorial I could look at?

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![matthew](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/matthew/32/14_2.png) [@matthew](https://discourse.laminas.dev/u/matthew)\
**Post date:** [July 18, 2018, 1:47pm UTC](https://discourse.laminas.dev/t/packaging-apigility/645/2 "2018-07-18T13:47:15Z")

</div>

Honestly, I wouldn’t do this.

Apigility is a _project skeleton_, and relies on several things:

- That `composer.json` (and its associated `composer.lock`) is in the project root, to allow you to add and remove dependencies.
- That the configuration, modules, and public directory are relative to the project root.
- Related to the last point, that you can switch in and out of development mode, to allow caching the configuration, and, more importantly, _disabling the Admin UI_.
- Related to the previous points: you should be able to install both in development mode (`composer install`) as well as _production_ mode (`composer install --no-dev`). This latter is particularly important as, in production, you do not _ever_ want somebody to be able to get to the Admin UI. When you do a `--no-dev` install, the Admin UI is not even installed.

The **tl;dr** : Apigility is a _project skeleton_, and should be installed _per project_, not at the system level, to ensure it works as intended, and that development features do not leak to production.

---

<div class="post-metadata">

**Author:** ![uhaider](https://avatars.discourse-cdn.com/v4/letter/u/2acd7d/32.png) [@uhaider](https://discourse.laminas.dev/u/uhaider)\
**Post date:** [July 19, 2018, 9:02am UTC](https://discourse.laminas.dev/t/packaging-apigility/645/3 "2018-07-19T09:02:15Z")

</div>

Hi,

Thanks for your detailed answer. It certainly cleared couple of more things to me.

Regards,
