---
title: Docker Compose
description: अपने PostgreSQL डेटाबेस के साथ, एक ही host पर Docker Compose से Human Plugin चलाएँ।
canonical: https://developer.unico.io/hi/human-plugin/self-hosting/docker-compose
locale: hi
generated_by: markdown-export
---

# Docker Compose

एक host पर एक Human Plugin container, जो आपके PostgreSQL डेटाबेस से जुड़ा है।

## पूर्वापेक्षाएँ

- Docker Engine 24 या उससे नया, Docker Compose v2 के साथ।
- Human Plugin के लिए समर्पित एक PostgreSQL डेटाबेस, जो host से पहुँच योग्य हो। [पूर्वापेक्षाएँ और एक्सेस](/hi/human-plugin/get-started/prerequisites) देखें।
- Unico से मिले registry credentials और access key।

## 1. Registry में लॉग इन करें

प्रति host एक बार। Docker credential को `~/.docker/config.json` में रखता है।

```bash
echo "<token>" | docker login pkg.unico.run -u <username> --password-stdin
```

## 2. सेटिंग्स लिखें

Human Plugin के लिए एक डायरेक्टरी और एक `.env` फ़ाइल बनाएँ, जिसे केवल उसका मालिक पढ़ सके:

```bash
mkdir -p /opt/human-plugin && cd /opt/human-plugin
```

```bash title=".env"
HUMAN_API_ACCESS_KEY=<your access key>
POSTGRES_ADDRESS_HOST=<database host>
POSTGRES_USER=human_plugin
POSTGRES_PASSWORD=<database password>
```

```bash
chmod 600 .env
```

`POSTGRES_ADDRESS_PORT`, `POSTGRES_DATABASE` या `POSTGRES_SSL_MODE` तभी जोड़ें जब आपका डेटाबेस [कॉन्फ़िगरेशन](/hi/human-plugin/self-hosting/configuration) के डिफ़ॉल्ट मानों से अलग हो। `.env` फ़ाइल को कभी commit न करें।

## 3. `compose.yaml` लिखें

```yaml title="compose.yaml"
services:
  human-plugin:
    image: pkg.unico.run/human-plugin-api:latest
    pull_policy: always
    restart: unless-stopped
    stop_grace_period: 60s
    env_file: .env
    ports:
      - "127.0.0.1:8080:8080"
```

- **`ports`:** केवल `127.0.0.1` या किसी private interface पर publish करें, `0.0.0.0` पर कभी नहीं। Human Plugin में अपना कोई authentication नहीं है: [नेटवर्किंग और सुरक्षा](/hi/human-plugin/self-hosting/networking-and-security) देखें।
- **`stop_grace_period: 60s`:** रुकते समय Human Plugin चल रहे अनुरोधों के लिए 55 सेकंड तक प्रतीक्षा करता है। इससे छोटी grace period किसी create को बीच में काट सकती है।
- **`pull_policy: always`:** हर `up` सबसे नई image की जाँच करता है, इसलिए आप हमेशा सबसे हालिया release चलाते हैं।

## 4. शुरू करें

```bash
docker compose up -d
```

```bash
curl --fail http://127.0.0.1:8080/health/ready
```

ट्रैफ़िक को Human Plugin तक तभी भेजें जब `/health/ready` `200` लौटाए। फिर उसके विरुद्ध [क्विकस्टार्ट](/hi/human-plugin/get-started/quickstart#3-create-a-process) का create अनुरोध चलाएँ।

## लॉग और स्थिति

```bash
docker compose ps
```

```bash
docker compose logs -f human-plugin
```

स्वस्थ स्टार्ट `human plugin listening` लाइन पर समाप्त होता है। पूरे स्टार्टअप लॉग के लिए [हेल्थ और मॉनिटरिंग](/hi/human-plugin/self-hosting/health-and-monitoring#logs) देखें। यदि container लूप में रीस्टार्ट होता रहे, तो लॉग कारण बताता है: [समस्या निवारण](/hi/human-plugin/additional-resources/troubleshooting) देखें।

## अपडेट

```bash
docker compose pull && docker compose up -d
```

Compose container को केवल तभी बदलता है जब image बदली हो। अपडेट के बाद क्या जाँचना है, इसके लिए [ऑपरेशंस](/hi/human-plugin/self-hosting/operations) देखें।

## रोकें

```bash
docker compose down
```

आपका डेटा आपके PostgreSQL डेटाबेस में है, इसलिए container को रोकने या हटाने से कुछ नहीं खोता।