---
name: "Catalyst::Manual::Deployment::NGINXUnit::PSGI"
section: "3pm"
platform: "linux"
package: "libcatalyst-manual-perl"
version: "5.9013-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::Manual::Deployment::NGINXUnit::PSGI"
---

# Catalyst::Manual::Deployment::NGINXUnit::PSGI(3pm)

Deploying Catalyst with NGINX Unit

## NAME

Catalyst::Manual::Deployment::NGINXUnit::PSGI - Deploying Catalyst with NGINX Unit

## NGINX Unit

Catalyst runs under NGINX Unit \<https://unit.nginx.org\> using PSGI.

### Configuration

To configure a Catalyst app in NGINX Unit, upload a JSON configuration snippet via Unit's config API, available at an IP socket or a Unix domain socket (depending on Unit's startup settings):

```
    # curl -X PUT --data-binary @config.json --unix-socket \
       /path/to/control.unit.sock http://localhost/config
```

A minimal configuration \<https://unit.nginx.org/configuration/#perl\> includes a listener and an application entity:

```
    {
        "listeners": {
            "127.0.0.1:8080": {
                "pass": "applications/catalyst_app"
            }
        },
        "applications": {
            "catalyst_app": {
                "type": "perl",
                "script": "/path/to/apps/myapp/myapp.psgi",
                "user": "catalyst_user",
                "group": "catalyst_group"
            }
        }
    }
```

The `"script"` should point to your app's `".psgi"` file; `"user"` and `"group"` should have appropriate access rights.

After a successful reconfiguration, you can manage your Catalyst app via the same config API.

Note: make sure the app's `".psgi"` file includes the `"lib/"` directory:

```
    use lib 'lib';
    use myapp;
```

## MORE INFO

For more information on NGINX Unit, visit: \<http://unit.nginx.org\>

## AUTHORS

Catalyst Contributors, see Catalyst.pm

## COPYRIGHT

This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.
