SVET NE STOJI U MESTU.RSS
BIG CHANGE.

Markdown izdanje

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

# Pokrenite jedan Hermes Agent prolaz na VPS-u i proverite privatni Telegram odgovor

> Podesite verzijski proveren Hermes Docker prolaz na Linux VPS-u, dozvolite jednog privatnog Telegram pošiljaoca, proverite stvaran odgovor, pa ponovno pokretanje i zaustavljanje.

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.

Privatan Telegram bot olakšava pristup agentu na VPS-u, ali povezan prolaz ne dokazuje da će odgovarati pravoj osobi. Počinjemo novim Hermes Agent direktorijumom, dopuštamo jedan brojčani Telegram ID, proveravamo stvaran odgovor i ostavljamo potvrđen način zaustavljanja. Pratimo NousResearch [Docker uputstvo v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) i [Telegram uputstvo](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md), proverena 19. oktobra 2026. BIG CHANGE nije upravljao VPS-om, preuzeo sliku, napravio bota ni pozvao model za ovaj vodič.

## Velika promena

- **Šta se promenilo:** Docker slika vezana za sažetak i proverenu verziju, uz poseban `/opt/data` mount, omogućava prepoznavanje softvera i stanja ovog prolaza.
- **Zašto je važno:** Brojčana Telegram lista dozvoljenih i stvaran privatan odgovor pokazuju da li predviđeni nalog može da koristi prolaz.
- **Na šta paziti:** Uparivanje ili globalna prava šire pristup; bezazlen zahtev ne ograničava alate agenta. Proverite dozvole, dnevnike, ponovno pokretanje i zaustavljeno stanje.

Potrebni su ovlašćenje za upravljanje jednim Linux VPS-om preko SSH, ispravan Docker Engine i pristup oporavku hosta, Telegram nalog za pravljenje BotFather bota i odgovarajući Hermes nalog dobavljača modela. Proverite arhitekturu i resurse prema zvaničnoj amd64/arm64 slici, kao i pristup i naplatu pre čarobnjaka. Docker mora već raditi; instalacija i zaštitni zid zavise od OS-a i dobavljača. Host mora izlazno pristupati Telegram-u i modelu. Odvojite privatan direktorijum stanja i ograničite čitaoce: `/opt/data` čuva pristupne podatke, sesije i dnevnike. [Docker priručnik](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) taj mount naziva trajnim merodavnim izvorom stanja.

## 1. Fiksirajte sliku pre podešavanja

Povežite se preko SSH i ostanite u istoj komandnoj ljusci. Oznaka `stable` može da se promeni. Preuzmite sliku, zabeležite sažetak repozitorijuma i potvrdite da sama slika prijavljuje verziju `0.22.2`. Stanite pri razlici, nedostajućem sažetku, postojećim podacima ili kontejneru imena `hermes`. Pre nastavka osvežite uputstvo za stvarnu verziju ili nabavite podudarnu dokumentovanu sliku. Sažetak fiksira sliku, ali sam ne dokazuje verziju.

```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` zaustavlja niz ako Docker nije dostupan, preuzimanje ili pregled ne uspe, ili komanda verzije zakaže. Eksplicitne provere zaustavljaju prazan sažetak ili drugu verziju. Posle toga ne prelazite na podešavanje. Sačuvajte zabeleženu vrednost `nousresearch/hermes-agent@sha256:…`. I podešavanje i prolaz ispod koriste `IMAGE_REF`, pa promena oznake ne menja neprimetno kontejner. Čitalac to proverava na stvarnom VPS-u; u članku nema potvrđenog sažetka slike. Koristite nov poseban direktorijum na izvornom sistemu datoteka hosta, nikad dva prolaza nad istim podacima.

## 2. Podesite dobavljača i jednog privatnog pošiljaoca

Pokrenite [Docker čarobnjak za podešavanje](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) sa montiranim direktorijumom. Izaberite put modela koji nalog dozvoljava, autentifikujte se i proverite dobavljača/model. Pristup i cena zavise od naloga. Sačuvana postavka ne dokazuje uspešan zahtev modelu.

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

U Telegram-u tražite od [@BotFather](https://t.me/BotFather) bota pomoću `/newbot` i čuvajte token privatno. Pribavite **brojčani Telegram ID pošiljaoca**, na primer metodom povezanom u [Telegram priručniku](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md); korisničko ime nije ID. Čarobnjak ili `hermes gateway setup` može zapisati token i listu. Ručno unesite `TELEGRAM_BOT_TOKEN=<private token>` i `TELEGRAM_ALLOWED_USERS=<your numeric ID>` u `$HERMES_DATA/.env`, što se u kontejneru vidi kao `/opt/data/.env`. Token ne stavljajte u komande, istoriju, zajedničke beleške ili članak.

U `$HERMES_DATA/config.yaml` (`/opt/data/config.yaml` u kontejneru) postavite globalno ponašanje za neovlašćene privatne poruke:

```yaml
unauthorized_dm_behavior: ignore
```

Posle izlaska kontejnera za podešavanje, zvanična slika je možda promenila vlasništvo `$HERMES_DATA` na izvršni UID 10000. Početna procedura ograničava `.env` na režim `600` i postojeći `config.yaml` na `640`; prvi put nastala konfiguracija može zahtevati isto pooštravanje. Običan SSH korisnik možda ne može da otvori datoteke. Ako čarobnjak nije uneo potrebne ključeve, **ovlašćeni administrator hosta** može pregledati i izmeniti te dve datoteke pomoću `sudo` i vratiti izvršno vlasništvo i privatne režime. Uređivač kao UID 10000 možda ne prolazi kroz korisnikov `$HOME`, pa komanda koristi administratorski pristup. Na hostu sa `sudo` i `vi` koristite je posle provere vlasnika/režima bez tajni. Pri drugom UID-u ili nedostajućoj datoteci stanite i rešite host pristup.

```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"
```

Završni `stat` treba da pokaže UID/GID 10000 za obe datoteke, režim direktorijuma `700`, `.env` režim `600` i `config.yaml` režim `640`. Prikazuju se metapodaci, ne tajne. `chown` cilja samo te dve datoteke, uključujući zamenu uređivača. Ako nema `sudo` ili `vi`, koristite ovlašćeni postupak hosta sa istom proverom. Ne otvarajte stanje za čitanje svima i ne menjajte mapiranje korisnika kontejnera.

Pri izmeni čuvajte postavke dobavljača. Nijedna Telegram posebna `unauthorized_dm_behavior` vrednost ne sme postaviti `pair`, niti globalno `GATEWAY_ALLOWED_USERS` ili `GATEWAY_ALLOW_ALL_USERS` dati širi pristup. U `config.yaml` proverite da ni `gateway.allow_all_users` ni vršni `allow_all_users` nisu true i da liste nemaju dodatnog pošiljaoca. Ne koristite `*` u listama, ne dodajte grupne liste ni odobrenja kodova za uparivanje. Novo izbegava nasleđena prava; kod starih podataka stanite i pregledajte umesto prepisivanja. Ostavite BotFather privatnost grupa uključenu, ne dodajte bota grupi i ne dajte mu administratorsku ulogu. [Priručnik pristupa prolazu](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/index.md) razdvaja liste i trajne dozvole uparivanja kao nezavisne puteve. [Bezbednosni priručnik](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/security.md) opisuje `ignore` kao tiho odbacivanje neovlašćenih privatnih poruka.

Lista kontroliše početak razgovora, ne radnje ovlašćenog agenta. Hermes Telegram sesije podrazumevano imaju terminalske alate. Pre dozvole proverite alate, Docker montiranja, dobavljača i politiku hosta. Bezazlen test zahtev je samo zahtev.

## 3. Pokrenite prolaz i proverite prvi odgovor

Pokrenite jedan imenovan kontejner iz zabeleženog sažetka. Objavljena Docker komanda ima opcioni `-p 8642:8642` za API. Izostavite ga jer privatna poruka ne traži javni API ni port kontrolne table. Slika nadzire prolaz, a Docker politika `unless-stopped` upravlja ponovnim pokretanjem pri startu Docker-a. Montirani direktorijum čuva postavke i sesije.

```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
```

Potvrdite da je kontejner `running`, proverite Telegram vezu i greške dobavljača u dnevnicima, pa listu uparivanja pre slanja. Ako prvo čitanje zakaže, kod zaustavlja prolaz i ispisuje stanje; nepoznat CLI ili prava nisu dozvola. Potvrdite `exited` pre dalje istrage, bez poruka i restarta dok je neizvesno. Ne sme biti drugog odobrenog pošiljaoca; ako postoji, zaustavite i potvrdite stanje. `docker exec` ne radi nad zaustavljenim kontejnerom, a uobičajeni ulaz slike može vratiti ranije pokrenut prolaz. Za novu instalaciju sa podrazumevanim UID-om, donja vanmrežna provera pokreće samo fiksirani Hermes CLI kao UID 10000 bez mreže i bez starta prolaza. Prilagođena je dokumentovanim komandama i ulazu, nije test BIG CHANGE. Koristite je samo uz potvrđen UID i vlasnika podataka 10000. Ako su vlasništvo, UID, CLI ili prava nejasni, ostavite zaustavljeno do rešenja pre restarta.

```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
```

Potvrdite odsustvo neželjenog ID-a u poslednjoj listi. Privatno pregledajte `$HERMES_DATA/.env` i `config.yaml` za druge platformske/globalne liste, `*` ili sveopštu dozvolu i uklonite neželjena prava dokumentovanim putem. Ostavite zaustavljeno dok se svi pristupi ne provere. Brisanje jednog unosa ne ukida nezavisno uparivanje ili globalno pravo. Posle potvrde `docker start hermes` namerno nastavlja originalni kontejner; opet proverite dnevnike i listu pre poruke.

Sa dozvoljenog naloga otvorite **privatan** razgovor sa botom i pošaljite bezazleno „Odgovori kratkim pozdravom“. Proverite pravi odgovor i odgovarajući dnevnik/sesiju. Poslata poruka, kucanje, status ili završeno podešavanje nisu odgovor. Telegram `/whoami` pokazuje aktivni opseg poruka, ne dokazuje host ovlašćenje. Čuvajte samo neosetljive dokaze.

Bez odgovora prvo pročitajte stanje kontejnera i `docker logs --tail 50 hermes`. Proverite token, tačan brojčani `TELEGRAM_ALLOWED_USERS`, autentifikaciju i pravo korišćenja modela i izlaznu vezu. Pri neizvesnom ishodu čitajte razgovor i dnevnike pre ponavljanja. Dokumentovan hladan start može odbaciti poruke na čekanju; uklanjanje duplikata je ograničeno memorijom. Nema garancije dostave tačno jednom.

## 4. Proverite ponovno pokretanje, stop i oporavak

Po završetku prvog zahteva ponovo pokrenite isti kontejner, proverite nove dnevnike i sačuvano `/opt/data` stanje, zatim pošaljite **nov** bezazlen privatan zahtev i proverite odgovor. Zaustavite i pročitajte Docker stanje. `exited` je znak zaustavljanja; tih razgovor nije dovoljan. `docker start hermes` je nameran nastavak kasnije.

```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
```

Pri neuspešnom startu pregledajte Docker stanje i dnevnike, zatim `$HERMES_DATA/logs/gateways/default/current` i `$HERMES_DATA/logs/container-boot.log`, montiranje, vlasništvo i fiksiranu sliku/verziju. [Beleške izdanja v0.22.2](https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.2) opisuju ispravku provere rada pri startu, ne događaj na vašem hostu. Ne brišite stanje radi popravke. Ako token iscuri, stanite, opozovite ga u BotFather, privatno zamenite u montiranom `.env` i proverite pristup pre restarta. Opozovite i neželjeno uparivanje i pregledajte stvarne liste.

VPS i model mogu se posebno naplaćivati. Proverite svoj paket, limite i troškove; nema obećanog trajanja, besplatne kvote ili dostupnosti. Telegram i dobavljač obrađuju poruke; host čuva tajne i stanje. Proverava se prvi odgovor jednog hosta i bota. Drugi BIG CHANGE vodiči obrađuju [Hermes rezervnu kopiju i oporavak](https://bigchange.ai/blog/hermes-encrypted-github-backup-recovery-guide) i [ponavljajući Hermes posao](https://bigchange.ai/blog/hermes-skill-recurring-job-first-run).

## Izvori i dodatna literatura

Uputstva za [Docker podešavanje](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md), [Telegram podešavanje](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md), [pristup prolazu](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/index.md), [bezbednost](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/security.md) i [izdanje v0.22.2](https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.2) jesu NousResearch primarni izvori. [Brzi početak](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/getting-started/quickstart.md) objašnjava dobavljača. Ovo dokumentuje postupak, ne BIG CHANGE rad VPS-a ili bota.

## Sources

- [Hermes Agent izdanje v0.22.2](https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.2) — Datum i dokumentovana ispravka rada pri startu.
- [Hermes Docker podešavanje, v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/docker.md) — Kanali slike, montiranje, podešavanje, nadzor, port i dnevnici.
- [Zvanični Dockerfile, v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/Dockerfile) — Ulazna tačka, izvršni UID, HERMES_HOME i CLI put za ograničenu vanmrežnu proveru.
- [Docker kuka druge faze, v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/docker/stage2-hook.sh) — Ciljano vlasništvo i .env/config dozvole posle podešavanja.
- [Telegram podešavanje, v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/telegram.md) — BotFather, token, brojčana lista, privatnost i ograničenja dostave.
- [Poruke i prolaz, v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/messaging/index.md) — Stvaran pristup, čitanje uparivanja i opoziv.
- [Bezbednost, v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/user-guide/security.md) — Neovlašćene privatne poruke i granice pristupa.
- [Brzi početak, v0.22.2](https://raw.githubusercontent.com/NousResearch/hermes-agent/v0.22.2/website/docs/getting-started/quickstart.md) — Put podešavanja dobavljača modela.