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 परवानगी यादी व खरे खासगी उत्तर योग्य खाते वापरू शकते का दाखवतात.
- **कशाकडे लक्ष द्यावे:** जोडणी किंवा सर्वव्यापी अधिकार प्रवेश वाढवतात; निरुपद्रवी सूचना साधने मर्यादित करत नाही. अधिकार, नोंदी, पुनःप्रारंभ व थांबा तपासा.

SSH ने Linux VPS व्यवस्थापित करण्याचा अधिकार, चालू Docker Engine व होस्ट पुनर्प्राप्ती प्रवेश, BotFather बॉट तयार करणारे Telegram खाते व पात्र Hermes मॉडेल पुरवठादार खाते हवे. वास्तुरचना व साधने अधिकृत 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) — मॉडेल पुरवठादार मांडणी मार्ग.
