دنیا ٹھہری نہیں ہے۔RSS
BIG CHANGE.

Markdown ایڈیشن

AI-translated from English; not yet reviewed by a fluent editor.

# VPS پر ایک Hermes Agent گیٹ وے چلائیں اور نجی Telegram جواب جانچیں

> Linux VPS پر نسخہ جانچا Hermes Docker گیٹ وے بنائیں، ایک نجی Telegram مرسل کو اجازت دیں، اصل جواب، دوبارہ آغاز اور توقف جانچیں۔

By BIG CHANGE Editorial

Published: 2026-10-19T20:31:34.981Z
Updated: 2026-10-19T20:31:34.981Z
Canonical: https://bigchange.ai/blog/hermes-vps-docker-private-telegram-first-reply

![Conceptual charcoal illustration of one hand holding an unbranded phone with two blank message shapes on its screen.](https://bigchange.ai/api/media/file/hermes-private-reply-check-hero-v1.png)
AI-generated conceptual illustration by BIG CHANGE; no actual Telegram interface, Hermes deployment or observed reply is depicted.

نجی Telegram بوٹ VPS ایجنٹ تک سہولت دیتا ہے، مگر گیٹ وے کا جڑنا صحیح شخص کو جواب کا ثبوت نہیں۔ نئے Hermes Agent ڈیٹا فولڈر سے شروع کر ایک عددی Telegram ID قبول، حقیقی جواب اور مصدقہ توقف دیکھتے ہیں۔ بنیاد NousResearch کی [v0.22.2 Docker ہدایات](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) اور [Telegram ہدایات](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md) ہیں، 19 اکتوبر 2026 کو جانچیں۔ BIG CHANGE نے اس کے لیے VPS نہیں چلایا، تصویر نہیں کھینچی، بوٹ نہیں بنایا اور ماڈل نہیں بلایا۔

## بڑی تبدیلی

- **کیا بدلا:** ڈائجسٹ سے متعین، نسخہ جانچی Docker تصویر اور مخصوص `/opt/data` ماؤنٹ اس گیٹ وے کے پروگرام و حالت کی شناخت دیتے ہیں۔
- **یہ کیوں اہم ہے:** عددی Telegram اجازت فہرست اور حقیقی نجی جواب بتاتے ہیں کہ مطلوب اکاؤنٹ اسے استعمال کر سکتا ہے۔
- **کس بات کا خیال رکھیں:** جوڑ یا عمومی اختیارات رسائی بڑھاتے ہیں؛ بےضرر درخواست ایجنٹ کے ٹول محدود نہیں کرتی۔ اجازت، لاگ، دوبارہ آغاز اور توقف دیکھیں۔

Linux VPS کو SSH سے سنبھالنے کا اختیار، چلتا Docker Engine اور میزبان بحالی رسائی، BotFather بوٹ بنانے کا Telegram اکاؤنٹ اور اہل Hermes ماڈل فراہم کنندہ اکاؤنٹ چاہیے۔ VPS ساخت و وسائل آفیشل amd64/arm64 تصویر سے ملائیں، وزارڈ سے پہلے رسائی و بل شرائط دیکھیں۔ Docker پہلے چلتا فرض ہے؛ تنصیب و فائر وال OS/فراہم کنندہ پر ہیں۔ میزبان سے Telegram اور ماڈل تک بیرونی رابطہ چاہیے۔ حالت کے لیے نجی فولڈر و محدود قارئین رکھیں: `/opt/data` اسناد، نشست اور لاگ رکھے گا۔ [Docker ہدایت نامہ](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) اسے مستقل مستند حالت کا ماخذ کہتا ہے۔

## 1. ترتیب سے پہلے تصویر متعین کریں

SSH سے جڑ کر اسی شیل میں رہیں۔ `stable` ٹیگ بدل سکتا ہے۔ تصویر کھینچیں، ذخیرے کا ڈائجسٹ لکھیں اور خود تصویر کا بتایا نسخہ `0.22.2` جانچیں۔ فرق، غائب ڈائجسٹ، پرانے ڈیٹا یا `hermes` نام کے کنٹینر پر رکیں۔ اصل نسخے کے لیے ہدایات تازہ یا موافق دستاویزی تصویر حاصل کر کے بڑھیں۔ ڈائجسٹ تصویر متعین کرتا ہے، خود نسخہ ثابت نہیں کرتا۔

```sh
set -eu
docker info >/dev/null
docker container inspect hermes >/dev/null 2>&1 && { echo 'Container hermes already exists; stop here.'; exit 1; }
HERMES_DATA="$HOME/.hermes"
if [ -e "$HERMES_DATA" ]; then echo 'Hermes data path already exists; stop here.'; exit 1; fi
mkdir -m 700 "$HERMES_DATA"
docker pull nousresearch/hermes-agent:stable
docker image inspect nousresearch/hermes-agent:stable --format '{{json .RepoDigests}}'
IMAGE_REF="$(docker image inspect nousresearch/hermes-agent:stable --format '{{index .RepoDigests 0}}')"
if ! printf '%s\n' "$IMAGE_REF" | grep -Eq '^nousresearch/hermes-agent@sha256:[0-9a-f]{64}$'; then
  echo 'No valid repository digest; stop here.'; exit 1
fi
printf 'Pinned image: %s\n' "$IMAGE_REF"
VERSION_OUTPUT="$(docker run --rm "$IMAGE_REF" --version)"
printf 'Image version: %s\n' "$VERSION_OUTPUT"
if ! printf '%s\n' "$VERSION_OUTPUT" | grep -Eq '(^|[^0-9])v?0[.]22[.]2([^0-9]|$)'; then
  echo 'Image version is not 0.22.2; stop here.'; exit 1
fi
```

`set -eu` Docker نہ ملے، کھینچنا/معائنہ یا نسخہ کمانڈ ناکام ہو تو سلسلہ روکتا ہے۔ واضح جانچ خالی ڈائجسٹ یا مختلف نسخے پر بھی روکتی ہے۔ آگے ترتیب نہ کریں۔ درج `nousresearch/hermes-agent@sha256:…` قدر رکھیں۔ نیچے ترتیب و گیٹ وے `IMAGE_REF` لیتے ہیں، تاکہ ٹیگ بدل کر خاموشی سے کنٹینر نہ بدلے۔ قاری اصل VPS پر جانچے؛ مضمون میں مصدقہ تصویر ڈائجسٹ نہیں۔ میزبان کے اصلی فائل نظام پر نیا الگ فولڈر لیں؛ ایک ڈیٹا پر دو گیٹ وے نہیں۔

## 2. فراہم کنندہ اور ایک نجی مرسل مقرر کریں

ماؤنٹ فولڈر سے [Docker ترتیب وزارڈ](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) چلائیں۔ اکاؤنٹ کا مجاز ماڈل راستہ چنیں، تصدیق کریں، فراہم کنندہ/ماڈل دیکھیں۔ رسائی و فیس اکاؤنٹ کے مطابق۔ محفوظ ترتیب کامیاب ماڈل درخواست ثابت نہیں۔

```sh
docker run -it --rm -v "$HERMES_DATA:/opt/data" "$IMAGE_REF" setup
```

Telegram میں [@BotFather](https://t.me/BotFather) سے `/newbot` کے ذریعے بوٹ مانگ کر ٹوکن خفیہ رکھیں۔ مرسل کا **عددی Telegram صارف ID** پائیں، مثلاً [Telegram ہدایت نامے](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md) کے مربوط طریقے سے؛ صارف نام ID نہیں۔ وزارڈ یا `hermes gateway setup` ٹوکن و فہرست لکھ سکتا ہے۔ دستی طور پر `TELEGRAM_BOT_TOKEN=<private token>` اور `TELEGRAM_ALLOWED_USERS=<your numeric ID>` ڈالیں `$HERMES_DATA/.env` میں، جو کنٹینر میں `/opt/data/.env` ہے۔ ٹوکن کمانڈ، تاریخ، مشترک نوٹ یا مضمون میں نہ ہو۔

اس `$HERMES_DATA/config.yaml` (`/opt/data/config.yaml` میں، کنٹینر کا مقام) غیرمجاز نجی پیغام کا عمومی برتاؤ مقرر کریں:

```yaml
unauthorized_dm_behavior: ignore
```

ترتیب کنٹینر نکلنے پر تصویر نے `$HERMES_DATA` کا مالک عملی UID 10000 کیا ہو سکتا ہے۔ آغاز `.env` کو موڈ `600` اور موجودہ `config.yaml` کو `640` تک محدود کرتا ہے؛ اسی آغاز کی پہلی نئی ترتیب بھی یہ سختی مانگ سکتی ہے۔ عام SSH لاگ اِن فائل نہ کھول پائے۔ چابیاں نہ بنیں تو **مجاز میزبان منتظم** وہ دو عین فائلیں `sudo` سے دیکھ/بدل کر مالک و نجی موڈ بحال کرے۔ UID 10000 ایڈیٹر لاگ اِن صارف کے `$HOME` سے نہ گزر سکے؛ اس لیے میزبان منتظم اختیار ہے۔ میزبان پر `sudo` اور `vi` ہوں تو غیرخفیہ مالک/موڈ پڑھ کر استعمال کریں۔ دوسرے UID یا گم فائل پر پہلے رسائی حل کریں۔

```sh
sudo stat -c '%u:%g %a %n' "$HERMES_DATA" "$HERMES_DATA/.env" "$HERMES_DATA/config.yaml"
# Expected: directory owner 10000 and mode 700; .env owner 10000 and mode 600.
# config.yaml should have owner 10000; its first-boot mode can vary.
sudo vi "$HERMES_DATA/.env"
sudo vi "$HERMES_DATA/config.yaml"
sudo chown 10000:10000 "$HERMES_DATA/.env" "$HERMES_DATA/config.yaml"
sudo chmod 700 "$HERMES_DATA"
sudo chmod 600 "$HERMES_DATA/.env"
sudo chmod 640 "$HERMES_DATA/config.yaml"
sudo stat -c '%u:%g %a %n' "$HERMES_DATA" "$HERMES_DATA/.env" "$HERMES_DATA/config.yaml"
```

آخری `stat` نتیجے میں دونوں فائل UID/GID 10000، فولڈر موڈ `700`, `.env` موڈ `600` اور `config.yaml` موڈ `640` ہوں۔ یہ میٹاڈیٹا ہے، اسناد نہیں۔ `chown` صرف ان دو فائلوں اور ایڈیٹر کے بدل پر لاگو ہے۔ اگر `sudo` یا `vi` نہ ہو تو مجاز میزبان طریقے سے وہی پڑتال کریں۔ ڈیٹا سب کو پڑھنے نہ دیں، کنٹینر صارف ری میپ نہ کریں۔

تبدیلی میں فراہم کنندہ ترتیب رکھیں۔ Telegram مخصوص `unauthorized_dm_behavior` اووررائیڈ `pair` نہ مقرر کرے، عمومی `GATEWAY_ALLOWED_USERS` یا `GATEWAY_ALLOW_ALL_USERS` رسائی نہ بڑھائے۔ `config.yaml` میں یہ بھی دیکھیں کہ نہ `gateway.allow_all_users` نہ بالائی `allow_all_users` true ہو، اور عمومی/Telegram فہرست میں اضافی مرسل نہ ہو۔ `*` استعمال، گروپ فہرست یا جوڑ کوڈ کی منظوری نہ دیں۔ نیا فولڈر وراثتی حقوق سے بچاتا ہے؛ ڈیٹا موجود ہو تو رک کر دیکھیں، اوپر نہ لکھیں۔ BotFather گروپ رازداری فعال رکھیں؛ بوٹ گروپ میں نہ ڈالیں، منتظم نہ بنائیں۔ [گیٹ وے رسائی ہدایت](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/index.md) فہرست اور مستقل جوڑ حقوق الگ راستے بتاتی ہے۔ [سلامتی ہدایت](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/security.md) کہتی ہے `ignore` غیرمجاز نجی پیغامات خاموشی سے گراتا ہے۔

فہرست بات شروع کرنے والا محدود کرتی ہے، مجاز ایجنٹ کا کام نہیں۔ Hermes Telegram نشست میں بنیادی ٹرمینل ٹول ہیں۔ اجازت سے پہلے ٹول، Docker ماؤنٹ، فراہم کنندہ اور میزبان پالیسی دیکھیں۔ بےضرر آزمائشی درخواست صرف درخواست ہے۔

## 3. شروع کرکے پہلا جواب دیکھیں

درج ڈائجسٹ سے ایک نامزد کنٹینر چلائیں۔ شائع Docker کمانڈ کا اختیاری `-p 8642:8642` API کے لیے ہے؛ یہاں چھوڑیں کیونکہ نجی Telegram کو عوامی API یا ڈیش بورڈ پورٹ نہیں چاہیے۔ تصویر گیٹ وے کی نگرانی اور Docker کی `unless-stopped` پالیسی Docker آغاز پر کنٹینر دوبارہ چلانا سنبھالتی ہے۔ ماؤنٹ ترتیب و نشست محفوظ رکھتا ہے۔

```sh
docker run -d --name hermes --restart unless-stopped \
  -v "$HERMES_DATA:/opt/data" "$IMAGE_REF" gateway run
if ! {
  docker inspect hermes --format '{{.Image}} {{.State.Status}}' &&
  [ "$(docker inspect hermes --format '{{.State.Status}}')" = running ] &&
  docker logs --tail 50 hermes &&
  docker exec -u hermes hermes hermes pairing list
}; then
  echo 'State, logs or pairing check failed; stopping before any message.'
  docker stop hermes || true
  docker inspect hermes --format '{{.State.Status}}' || true
  exit 1
fi
```

کنٹینر `running` ہو، لاگ میں Telegram رابطہ/ماڈل خطا دیکھیں، پیغام سے پہلے جوڑ فہرست پڑھیں۔ پہلا پڑھنا ناکام ہو تو کوڈ روک کر حالت چھاپتا ہے؛ نامعلوم CLI/حق اجازت نہیں۔ پہلے `exited` کی تصدیق، پھر تحقیق؛ غیر یقینی حالت میں پیغام یا آغاز نہیں۔ دوسرے منظور مرسل پر روک کر رکی حالت جانچیں۔ `docker exec` رکے کنٹینر پر نہیں چلتا، عام تصویر داخلہ سابق گیٹ وے بحال کر سکتا ہے۔ نئے بنیادی UID میں آف لائن جانچ صرف متعین Hermes CLI کو UID 10000، بلا نیٹ ورک یا گیٹ وے آغاز چلاتی ہے۔ دستاویزی کمانڈ/داخلے کی تطبیق ہے، BIG CHANGE آزمائش نہیں۔ عملی UID اور ڈیٹا مالک 10000 ثابت ہوں تب استعمال۔ مالک، UID، CLI یا حقوق مبہم ہوں تو روک رکھیں، دوبارہ آغاز سے پہلے حل کریں۔

```sh
if [ "$(docker exec -u hermes hermes id -u)" != 10000 ] || [ "$(stat -c %u "$HERMES_DATA")" != 10000 ]; then
  echo 'Runtime UID or data owner differs; stop for a host-specific repair.'; docker stop hermes; exit 1
fi
docker stop hermes
if [ "$(docker inspect hermes --format '{{.State.Status}}')" != exited ]; then
  echo 'Container is not exited; do not mount state in another container.'; exit 1
fi
docker run --rm --network none --user 10000:10000 \
  --entrypoint /opt/hermes/.venv/bin/hermes \
  -v "$HERMES_DATA:/opt/data" "$IMAGE_REF" pairing list
# For a listed unwanted Telegram user, read the exact numeric ID first:
printf 'Unwanted numeric Telegram user ID: '; IFS= read -r UNWANTED_ID
if ! printf '%s\n' "$UNWANTED_ID" | grep -Eq '^[0-9]+$'; then echo 'Invalid ID; leave gateway stopped.'; exit 1; fi
docker run --rm --network none --user 10000:10000 \
  --entrypoint /opt/hermes/.venv/bin/hermes \
  -v "$HERMES_DATA:/opt/data" "$IMAGE_REF" pairing revoke telegram "$UNWANTED_ID"
docker run --rm --network none --user 10000:10000 \
  --entrypoint /opt/hermes/.venv/bin/hermes \
  -v "$HERMES_DATA:/opt/data" "$IMAGE_REF" pairing list
```

آخری فہرست میں غیرمطلوب ID نہ ہو۔ خفیہ طور پر `$HERMES_DATA/.env` اور `config.yaml` میں دوسری پلیٹ فارم/عمومی فہرست، `*` یا سب کی اجازت دیکھیں اور دستاویزی راستے سے اختیار ہٹائیں۔ تمام راستے دیکھنے تک رکا رکھیں۔ ایک اندراج حذف سے الگ جوڑ/عمومی حق نہیں جاتا۔ پڑتال کے بعد `docker start hermes` اصل کنٹینر دانستہ بحال کرتا ہے؛ پیغام سے پہلے لاگ/فہرست پھر دیکھیں۔

مجاز اکاؤنٹ سے بوٹ کا **نجی** چیٹ کھول کر “مختصر سلام سے جواب دیں” جیسی بےضرر درخواست بھیجیں۔ اصل جواب و متعلقہ لاگ/نشست دیکھیں۔ ارسال، ٹائپنگ، حالت یا مکمل ترتیب جواب نہیں۔ Telegram کی `/whoami` فعال پیغام دائرہ بتا سکتی ہے، میزبان اختیار نہیں۔ غیرحساس ثبوت ہی رکھیں۔

جواب نہ ہو تو پہلے حالت و `docker logs --tail 50 hermes` پڑھیں۔ ٹوکن، درست عددی `TELEGRAM_ALLOWED_USERS` قدر، ماڈل تصدیق و استعمال اہلیت، خارجی رابطہ جانچیں۔ انجام نامعلوم ہو تو دوبارہ بھیجنے سے پہلے چیٹ/لاگ پڑھیں۔ دستاویزی کولڈ بوٹ منتظر اپ ڈیٹ گرا سکتا ہے؛ نقل روک یادداشت میں محدود ہے۔ عین ایک بار ترسیل کی ضمانت نہیں۔

## 4. دوبارہ آغاز، توقف اور بحالی جانچیں

پہلا دور مکمل ہو تو وہی کنٹینر دوبارہ چلا کر نئے لاگ و بچی `/opt/data` حالت دیکھیں، پھر **نئی** بےضرر نجی درخواست کا جواب جانچیں۔ روک کر Docker حالت پڑھیں۔ `exited` توقف کی علامت ہے؛ خاموش چیٹ کافی نہیں۔ `docker start hermes` بعد میں دانستہ شروع کرنے کا طریقہ ہے۔

```sh
docker restart hermes
docker logs --tail 50 hermes
docker inspect hermes --format '{{.State.Status}}'
# After the restarted gateway is ready, send a new private test message.
docker stop hermes
docker inspect hermes --format '{{.State.Status}}'
# Expected after stop: exited
# When intentionally resuming later: docker start hermes
```

آغاز ناکام ہو تو Docker/لاگ، پھر `$HERMES_DATA/logs/gateways/default/current` اور `$HERMES_DATA/logs/container-boot.log`، ماؤنٹ، مالک و متعین تصویر/نسخہ دیکھیں۔ [v0.22.2 اجرا نوٹ](https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.2) آغاز کی فعالیت کا حل بتاتے ہیں، آپ کے میزبان کا واقعہ نہیں۔ مرمت میں ڈیٹا نہ مٹائیں۔ ٹوکن افشا ہو تو روکیں، BotFather میں منسوخ، نجی طور پر ماؤنٹ کی `.env` میں بدلیں اور پہلے رسائی جانچیں۔ غیرمطلوب جوڑ منسوخ کر کے عملی فہرست دیکھیں۔

VPS اور ماڈل الگ فیس لے سکتے ہیں۔ اصل منصوبہ، حدود و فیس دیکھیں؛ وقت، مفت کوٹا یا دستیابی کا وعدہ نہیں۔ Telegram/فراہم کنندہ پیغام پر عمل، میزبان راز و حالت رکھتا ہے۔ یہ ایک میزبان، بوٹ کے پہلے جواب کی جانچ ہے۔ الگ BIG CHANGE رہنما بتاتے ہیں [Hermes بیک اپ اور بحالی](https://bigchange.ai/blog/hermes-encrypted-github-backup-recovery-guide) اور [بار بار Hermes کام](https://bigchange.ai/blog/hermes-skill-recurring-job-first-run).

## ماخذ اور مزید مطالعہ

یہ [Docker ترتیب](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md), [Telegram ترتیب](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md), [گیٹ وے رسائی](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/index.md), [سلامتی](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/security.md) اور [v0.22.2 اجرا](https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.2) NousResearch کے بنیادی ماخذ ہیں۔ [فوری آغاز](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/getting-started/quickstart.md) ماڈل فراہم کنندہ ترتیب بتاتا ہے۔ یہ طریقے کی دستاویزات ہیں، BIG CHANGE کے VPS/بوٹ اجرا کا ریکارڈ نہیں۔

## Sources

- [Hermes Agent v0.22.2 اجرا](https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.2) — تاریخ اور دستاویزی آغاز فعالیت کا حل۔
- [Hermes Docker ترتیب، v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) — تصویر چینل، ماؤنٹ، ترتیب، نگرانی، پورٹ اور لاگ۔
- [آفیشل Dockerfile، v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/Dockerfile) — داخلہ، عملی UID، HERMES_HOME اور محدود آف لائن CLI جانچ کا راستہ۔
- [Docker دوسرے مرحلے کا ہک، v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/docker/stage2-hook.sh) — ترتیب بعد ڈیٹا ملکیت اور .env/config اجازتیں۔
- [Telegram ترتیب، v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md) — BotFather، ٹوکن، عددی فہرست، رازداری و ترسیل حدود۔
- [پیغام اور گیٹ وے، v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/index.md) — اصل رسائی، جوڑ پڑھنا اور منسوخی۔
- [سلامتی، v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/security.md) — غیرمجاز نجی پیغامات اور رسائی حدود۔
- [فوری آغاز، v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/getting-started/quickstart.md) — ماڈل فراہم کنندہ ترتیب کا راستہ۔