खासगी Telegram बॉटने VPS एजंट गाठणे सोपे होते; जोडलेले प्रवेशद्वार योग्य व्यक्तीला उत्तराचा पुरावा नाही. नव्या Hermes Agent डेटा फोल्डरने सुरुवात, एक संख्यात्मक Telegram ID मंजूर, खरे उत्तर व खात्रीचा थांबा तपासतो. आधार NousResearch ची v0.22.2 Docker सूचना आणि Telegram सूचना आहेत, 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 पुस्तिका त्याला कायमचा अधिकृत स्थितीस्रोत म्हणते.
1. सेटअपपूर्वी प्रतिमा ठरवा
SSH ने जोडून त्याच शेलमध्ये राहा. stable टॅग बदलू शकतो. प्रतिमा ओढा, रिपॉझिटरी डायजेस्ट नोंदवा व प्रतिमेने सांगितलेली आवृत्ती 0.22.2 तपासा. फरक, डायजेस्ट नाही, जुना डेटा किंवा hermes नावाचा कंटेनर असल्यास थांबा. प्रत्यक्ष आवृत्तीसाठी सूचना बदला किंवा जुळणारी दस्तऐवजीकृत प्रतिमा मिळवून पुढे जा. डायजेस्ट प्रतिमा ठरवतो, एकटा आवृत्ती सिद्ध करत नाही.
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
fiset -eu Docker नसल्यास, ओढणे/तपासणी किंवा आवृत्ती कमांड अयशस्वी झाल्यास क्रम थांबवते. स्पष्ट तपासणी रिकामा डायजेस्ट किंवा दुसऱ्या आवृत्तीवरही थांबवते. त्यानंतर सेटअप नको. नोंदलेले nousresearch/hermes-agent@sha256:… मूल्य ठेवा. सेटअप व प्रवेशद्वार खाली IMAGE_REF वापरतात; टॅग बदलून कंटेनर गुपचूप बदलत नाही. वाचकाने प्रत्यक्ष VPS वर तपासावे; लेखात खात्रीचा प्रतिमा डायजेस्ट नाही. मूळ होस्ट फाइल व्यवस्थेत नवा वेगळा फोल्डर; एकाच डेटावर दोन प्रवेशद्वारे कधीही नकोत.
2. पुरवठादार व एक खासगी प्रेषक ठरवा
माउंट फोल्डरसह Docker सेटअप सहाय्यक चालवा. खात्याने मान्य मॉडेलमार्ग, प्रमाणीकरण व पुरवठादार/मॉडेल पाहा. प्रवेश व किंमत खात्यावर अवलंबून. साठवलेली सेटिंग यशस्वी मॉडेल विनंतीचा पुरावा नाही.
docker run -it --rm -v "$HERMES_DATA:/opt/data" "$IMAGE_REF" setupTelegram मध्ये @BotFather कडे /newbot ने बॉट मागून टोकन गुप्त ठेवा. प्रेषकाचा संख्यात्मक Telegram वापरकर्ता ID मिळवा, उदा. Telegram पुस्तिका जोडलेल्या पद्धतीने; वापरकर्तानाव 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 मध्ये, कंटेनरचा पथ) अनधिकृत खासगी संदेशांचे एकंदर वर्तन ठरवा:
unauthorized_dm_behavior: ignoreसेटअप कंटेनर संपल्यावर प्रतिमेने $HERMES_DATA मालक कार्यरत UID 10000 केला असेल. सुरुवात .env मोड 600 व विद्यमान config.yaml मोड 640 पर्यंत मर्यादित करते; त्या वेळी प्रथम बनलेल्या सेटिंगलाही ही कडकता लागू करावी लागू शकते. सामान्य SSH वापरकर्ता फाइल उघडू न शकेल. कळा नसल्यास अधिकृत होस्ट प्रशासक नेमक्या दोन फाइल sudo ने पाहून बदलून मालक व खासगी मोड परत करतो. UID 10000 संपादक लॉगिन-मालकाच्या $HOME मधून जाऊ न शकतो, म्हणून प्रशासक अधिकार वापरतो. होस्टवर sudo आणि vi असल्यास गैरगुप्त मालक/मोड वाचून वापरा. दुसरा UID किंवा फाइल नसल्यास आधी प्रवेश सोडवा.
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 समूह गोपनीयता चालू, बॉट समूहात किंवा प्रशासक नको. प्रवेशद्वार प्रवेश पुस्तिका यादी व कायम जोडणी अधिकार स्वतंत्र मार्ग सांगते. सुरक्षा पुस्तिका नुसार ignore अनधिकृत खासगी संदेश शांतपणे टाकतो.
यादी संवाद सुरू करणारा ठरवते; अधिकृत एजंटची कृती नाही. Hermes Telegram सत्रात मूळ टर्मिनल साधने असतात. परवानगीपूर्वी साधने, Docker माउंट, पुरवठादार व होस्ट धोरण पाहा. निरुपद्रवी चाचणी केवळ विनंती आहे.
3. सुरू करून पहिले उत्तर पाहा
नोंदलेल्या डायजेस्टने एक नामित कंटेनर चालवा. प्रकाशित Docker कमांडमधील ऐच्छिक -p 8642:8642 API साठी; इथे वगळा कारण खासगी Telegram ला सार्वजनिक API किंवा नियंत्रणपटल पोर्ट लागत नाही. प्रतिमा प्रक्रियेवर देखरेख करते, Docker ची unless-stopped नीती Docker सुरुवातीला पुनःप्रारंभ नियंत्रित करते. माउंट सेटिंग व सत्रे ठेवतो.
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 किंवा अधिकार अस्पष्ट असल्यास थांबवून पुनःप्रारंभाआधी सोडवा.
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 नंतर जाणीवपूर्वक सुरू करण्याची पद्धत.
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 प्रकाशन नोंदी प्रारंभ सक्रियता सुधारणा सांगतात, तुमच्या होस्टची घटना नाही. दुरुस्तीत डेटा पुसू नका. टोकन फुटल्यास थांबा, BotFather मध्ये रद्द, माउंटच्या .env मध्ये खासगीत बदला, नंतर आधी प्रवेश पाहा. अनावश्यक जोडणीही रद्द करून खऱ्या याद्या पाहा.
VPS व मॉडेल वेगळी किंमत घेऊ शकतात. प्रत्यक्ष योजना, मर्यादा व शुल्क पाहा; वेळ, मोफत कोटा किंवा उपलब्धतेचे वचन नाही. Telegram/पुरवठादार संदेश हाताळतात, होस्ट गुपिते व स्थिती ठेवतो. हे एक होस्ट-बॉटचे पहिले उत्तर तपासते. वेगळे BIG CHANGE मार्गदर्शक सांगतात Hermes बॅकअप व पुनर्प्राप्ती आणि पुनरावृत्तीचे Hermes काम.
स्रोत व अधिक वाचन
ही Docker मांडणी, Telegram मांडणी, प्रवेशद्वार प्रवेश, सुरक्षा आणि v0.22.2 आवृत्ती NousResearch चे प्राथमिक स्रोत आहेत. झटपट प्रारंभ मॉडेल पुरवठादार सेटअप सांगतो. या पद्धतीच्या नोंदी आहेत, BIG CHANGE ने VPS/बॉट चालवल्याचा पुरावा नाही.



