Skip to main content
Run Human Plugin in your infrastructure

One container and one PostgreSQL database in your network, and you are connected to Unico.

Markdown

Requirements​

RequirementDetail
Container runtimeDocker, Docker Compose or Kubernetes. The image is built for linux/amd64 and linux/arm64 and runs as non-root
PostgreSQLVersion 16 or later. A database used only by Human Plugin, reachable with a user and password. SSL is required by default
Outbound HTTPSTo Unico. See Networking and security
InboundPort 8080, plain HTTP, only from your back-end
SecretsYour access key and the database password

Hardware requirements​

The minimum to run Human Plugin with up to 1,500 transactions per minute, with selfies of up to 800 KB.

Human Plugin​

ResourceMinimum
CPU1 vCPU per replica
Memory1 GB per replica

For more volume, add one replica for every 1,500 transactions per minute. We also suggest running more than one replica, so Human Plugin stays available while one restarts.

PostgreSQL​

ResourceMinimum
Version16
CPU2 vCPU
Memory4 GB
DiskSSD

To estimate disk space, count about 1.7 KB per process × processes per day × the days you keep, plus 30%.

Network​

Outbound HTTPS (port 443) to Unico. See Networking and security.

The image​

Human Plugin is published as pkg.unico.run/human-plugin-api:latest. Always run the latest tag, which is the current release. Pull it with the registry credentials (username and token) Unico gives you. See Prerequisites and access.

Deployment order​

  1. Create the dedicated database and a role for Human Plugin.
  2. Set the configuration, with the secrets from your secret store.
  3. Start the container with Docker Compose or Kubernetes, with a stop timeout of at least 60 seconds.
  4. Wait for GET /health/ready to answer 200 before routing traffic. See Health and monitoring.
  5. Restrict access to your back-end. See Networking and security.
  6. Run the Quickstart create request against it.

What happens at startup​

Human Plugin downloads the attribute catalog, connects to PostgreSQL and prepares its tables, then opens the port. It stops with an error, before it listens, when:

  • a required setting is missing or invalid;
  • the attribute catalog cannot be downloaded;
  • PostgreSQL is unreachable, or the role cannot create tables.

The log states the reason. See Troubleshooting.

Several instances​

Human Plugin keeps no request state in memory, so several containers can share one database. Containers that start at the same time coordinate through the database, so you can roll out replicas together.

Going to production​

  • Keep the stop timeout at 60 seconds or more.
  • Route traffic to a container only after /health/ready answers 200.
  • Never expose Human Plugin outside your private network.
  • Back up the database: it holds your intelligence. See Operations.