---
title: Operations
description: Updating to the latest image, rotating credentials, shutdown behavior, scaling and database backups for a Human Plugin installation.
canonical: https://developer.unico.io/human-plugin/self-hosting/operations
locale: en
generated_by: markdown-export
---

# Operations

Running Human Plugin day to day.

## Updates

Run the `latest` image, and update when Unico announces a release:

- **Docker Compose:** `docker compose pull && docker compose up -d`.
- **Kubernetes:** `kubectl -n human-plugin rollout restart deployment/human-plugin`, with `imagePullPolicy: Always`.

A new release prepares the tables it needs at startup, before it accepts traffic, so no manual database step is needed. Take a database backup before updating production, and check `/health/ready` and a real create request afterwards.

## Rotating credentials

**Access key.** Unico issues the new key with an overlap window. Update `HUMAN_API_ACCESS_KEY` in your `.env` or Secret, restart Human Plugin (`docker compose up -d --force-recreate`, or `kubectl -n human-plugin rollout restart deployment/human-plugin`), confirm a create succeeds, then ask Unico to revoke the old key.

**Registry credentials.** Unico issues a new token while the old one still works. Log in again with the new token (or recreate the Kubernetes pull secret), pull once to confirm, then ask Unico to revoke the old token. Running containers are not affected.

**Database password.** Change it in PostgreSQL and in `POSTGRES_PASSWORD`, then restart Human Plugin.

## Shutdown

On `SIGTERM`, Human Plugin stops accepting connections and waits up to 55 seconds for requests in flight, because a create can take up to 30 seconds and then store its result. Set the stop timeout to at least 60 seconds. A create cut short is settled as failed on a later read.

## Scaling

Human Plugin keeps no request state in memory, so several containers can share one database. Add one replica for every 1,500 transactions per minute, and raise PostgreSQL's `max_connections` to 25 × the number of replicas + 10. See [Hardware requirements](/human-plugin/self-hosting/overview#hardware-requirements).

## The attribute catalog

Human Plugin downloads the [attribute catalog](/human-plugin/additional-resources/attribute-catalog) once at startup. A new catalog version reaches a container on its next restart. Restarting containers one at a time keeps the service available.

## Backups

Your database holds the intelligence that `data.ndocs` is computed from. Back it up with your own tooling and test restores. Losing the database loses the intelligence, and it cannot be rebuilt.