Hoe je Hermes Agent dag en nacht op een server laat draaien
MarkdownHoe je Hermes Agent 24/7 op een server laat draaien: installatie op een VPS zonder browser, de gateway als systeemdienst uitvoeren, automatisch starten na een herstart, linger en Docker.
Lees het volledige artikel
Na de installatie van Hermes Agent op een laptop rijst de vraag: wie antwoordt er op Telegram en stelt de ochtendoverzichten samen als de laptop dicht is? Aan je bureau werkt de agent alleen zolang de computer aanstaat. Om de bot altijd online te houden en geplande taken automatisch uit te laten voeren, moet je de agent naar een server verplaatsen.
Hieronder lees je hoe je Hermes op een gewone Linux-server installeert, de gateway omzet in een continu draaiende dienst die na een herstart automatisch start, en de toegang beperkt zodat vreemden niet in de terminal kunnen komen. Deze gids is gebaseerd op de officiële documentatie.
Als je Hermes nog helemaal niet hebt geïnstalleerd, begin dan met het aparte overzicht van wat deze agent is en hoe je hem installeert. Deze gids gaat ervan uit dat hij al op je eigen machine draait en behandelt alleen de verhuizing naar een server.
Informatie over werken met Ailoot vind je in de documentatie.
Waarom Hermes Agent van een laptop naar een server verplaatsen?
Belangrijkste punten
Een pc werkt zolang je in de buurt bent en hij aanstaat. Voor gebruik dag en nacht heb je een server nodig: de Telegram-bot reageert wanneer je computer uitstaat en geplande taken worden automatisch uitgevoerd. Je hebt hiervoor alleen een server nodig; een laptop volstaat voor gewoon werk met de agent.
Op een laptop werkt Hermes alleen zolang de klep open is en je in de buurt bent. Doe hem dicht en de bot wordt stil; het ochtendoverzicht komt nooit aan. Dat is niet handig voor een taak als “mensen in een messenger antwoorden en dingen volgens een schema regelen”.
Daarin verschilt een server: die slaapt nooit en is nergens anders van afhankelijk. Je installeert dezelfde Hermes erop en hij werkt zonder jou: hij antwoordt om drie uur ’s nachts op Telegram, verzamelt elke ochtend nieuws over jouw onderwerpen en bewaart sessies tussen uitvoeringen.
Verplaatsen is zinvol als je een doorlopende taak voor de agent hebt: een bot voor jezelf of je team, ochtendoverzichten, automatische antwoorden of regelmatig werk met documenten. Als je Hermes alleen voor een specifiek project uitprobeert en erbij zit, heb je nog geen server nodig; dat is een extra stap.
Wat moet je voorbereiden voordat je Hermes op een VPS installeert?
Belangrijkste punten
Je hebt een Linux-server met SSH-toegang nodig (het officiële team test op een schone Ubuntu-installatie), een vooraf gekozen model en het besef dat de agent op een server meestal geen browser nodig heeft. Voor gebruik zonder toezicht is toegang tot een model via Nous Portal het handigst: aanmelden via OAuth wordt automatisch vernieuwd, zodat een verlopen token de boel 's nachts niet stillegt.
Verzamel drie dingen voordat je installeert.
De server. Een gewone Linux-VPS volstaat. Linux en WSL2 krijgen volgens de documentatie de eerste ondersteuning; er wordt getest op de nieuwste Ubuntu. Als het systeem glibc, systemd en een vertrouwde mappenstructuur heeft, wordt Hermes correct geïnstalleerd. Dat is belangrijk op een server, omdat alle onderstaande stappen voor automatisch starten op systemd vertrouwen. Dat zit standaard in Ubuntu en Debian.
SSH-toegang. Je maakt vanaf een terminal via SSH verbinding met de server; je gebruikt er geen muis. Alle onderstaande opdrachten voer je uit in deze SSH-sessie. Als je aan vibe-coding doet maar nog niet vertrouwd bent met de terminal, geen zorgen: het zijn maar een paar opdrachten en je kunt ze elk volledig kopiëren.
Een gekozen model. De agent denkt niet zelfstandig na; hij roept een model aan. Voor een server die zonder jou werkt, is het belangrijk dat de toegang tot het model niet verloopt. De eenvoudigste optie is een Nous Portal-abonnement via hermes setup --portal: aanmelden gebeurt via OAuth en het token wordt automatisch vernieuwd. Je eigen API-sleutels werken ook, maar zorg dan dat er geld op de rekening staat: een agent zonder toezicht met een leeg saldo wordt gewoon stil. Het model moet een contextvenster van minstens 64,000 tokens hebben, anders weigert Hermes ermee te starten. Alle cloudmodellen op de lijst voldoen aan deze eis.
Opmerking
De officiële documentatie geeft geen exacte cijfers voor het kiezen van een VPS of voor minimale resources, dus die cijfers worden hier ook niet gegeven. Op basis van de beschreven ervaring is een bescheiden machine voldoende voor een gateway met een bot en een schema, omdat het zware rekenwerk aan de kant van het model gebeurt. De server zelf wordt nauwelijks belast. Browserautomatisering is het zwaarste onderdeel, maar is op een server meestal niet nodig (daarover zo meteen meer).
Hoe installeer je Hermes Agent met één opdracht op een server?
Belangrijkste punten
Maak via SSH verbinding met de server en voer het installatieprogramma uit met de vlag waarmee je de browser op een server overslaat: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser. Start daarna de terminalshell opnieuw en kies een model met hermes setup --portal. Controleer de installatie met hermes doctor.
Installeren op een server is bijna hetzelfde als op een laptop, met één verschil: de agent heeft daar meestal geen browser nodig. Browserautomatisering brengt bovendien het omvangrijke Chromium mee. Daarom gebruik je de vlag --skip-browser.
Maak via SSH verbinding met de server
ssh root@your-server-addressVoer alle volgende opdrachten uit in deze sessie, op de server zelf.
Voer het installatieprogramma zonder browser uit
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browserHet script downloadt de benodigde omgeving en installeert de opdracht
hermes. De vlag--skip-browserslaat de installatie van browserautomatisering over; op een server zonder grafische interface zou die alleen ruimte innemen. Als je later een browser nodig hebt, kun je die afzonderlijk installeren.Start de shell opnieuw en kies een model
source ~/.bashrc hermes setup --portalDe eerste regel laadt de nieuwe
PATH, zodat de opdrachthermesgevonden kan worden. De tweede opent de aanmelding bij Nous Portal: bevestig de aanmelding en de agent krijgt toegang tot een model en diensten zonder afzonderlijke sleutels voor elk daarvan.Controleer de installatie
hermes doctorDe opdracht toont wat er is geïnstalleerd, wat ontbreekt en hoe je dat kunt oplossen. Groene markeringen betekenen dat alles in orde is.
Zorg dat één gewoon gesprek rechtstreeks op de server goed werkt voordat je een bot en schema toevoegt: voer hermes uit en geef hem een eenvoudige taak met een controleerbaar antwoord. De documentatie raadt uitdrukkelijk af om functies toe te voegen voordat een gewoon gesprek werkt — een verstandig advies.
Hoe houd je Hermes dag en nacht draaiende?
Belangrijkste punten
Configureer eerst de gateway met hermes gateway setup en koppel Telegram. Maak er daarna met één opdracht een dienst van: hermes gateway install installeert een gebruikersdienst, terwijl sudo hermes gateway install --system een systeemdienst installeert die start wanneer de server opstart. Gebruik voor de gebruikersdienst hermes gateway start, stop en status. Behoud voor de VPS-systeemdienst bij elke dienstcontrole en wijziging de expliciete scope --system en de vereiste rechten.
De gateway is één Hermes-proces op de achtergrond dat verbindingen met alle messengers onderhoudt, sessies beheert en geplande taken uitvoert. Alles voor gebruik dag en nacht draait eromheen. Het doel is dit proces automatisch te laten starten en actief te houden.
Configureer eerst de gateway en koppel een messenger:
hermes gateway setup
De configuratiewizard leidt je langs de platforms en helpt je bij het invoeren van het bottoken en de toegangs lijst. De stappen om Telegram te koppelen (een bot maken met BotFather, je ID vinden en het token invoeren) staan in de hoofdgids voor installatie; die herhaal ik hier niet.
Vervolgens komt de valkuil die mensen het vaakst vergeten. Als je alleen hermes gateway uitvoert, blijft het proces actief zolang de SSH-sessie open is. Sluit je de terminal, dan stopt de gateway. Om hem continu te laten draaien, moet je hem onder het beheer van het systeem plaatsen. Daarvoor is één opdracht:
hermes gateway install
Deze installeert de gateway als dienst: op Linux als een systemd-gebruikersdienst en op macOS via launchd. Het systeem bewaakt het proces en start het opnieuw als het crasht.
Op een server heb je vaker de tweede optie nodig: een systeemdienst die start wanneer de machine opstart, voordat een gebruiker zich aanmeldt:
sudo hermes gateway install --system
Dat is precies wat je nodig hebt voor een VPS: de server start opnieuw op, de dienst start vanzelf en de bot is weer online. Beheer hem met deze eenvoudige opdrachten:
hermes gateway start # start
hermes gateway stop # stop
hermes gateway status # check status
Voeg voor een systeemdienst sudo en de vlag --system aan deze opdrachten toe. Zonder die toevoegingen richten de opdrachten zich op de gebruikersdienst in plaats van op de dienst die bij het opstarten begint:
sudo hermes gateway start --system
sudo hermes gateway stop --system
sudo hermes gateway status --system
Waarom is linger nodig, en wat gaat er mis zonder?
Belangrijkste punten
Als je de gateway als gebruikersdienst hebt geïnstalleerd (zonder --system), stopt systemd hem zodra je SSH afsluit en start hij niet bij het opstarten. Los dit op met één opdracht: sudo loginctl enable-linger username. Daarna werkt de dienst onafhankelijk van je aan- en afmeldingen.
Dit is het meest voorkomende struikelblok: je hebt de dienst geïnstalleerd, maar de bot blijft 's nachts stil. Dat komt door de manier waarop Linux-gebruikersdiensten werken.
Een systemd-gebruikersdienst is standaard gekoppeld aan je sessie. Je maakt via SSH verbinding, je gebruikersbeheerder start en de dienst draait. Je meldt je af, het systeem beschouwt de gebruiker als inactief en sluit diens diensten samen met je gateway af. Voor een server waarop je in- en uitlogt, gaat dit mis: de bot is alleen online wanneer je in SSH bent.
Je kunt dit oplossen met de linger-modus. Daarmee kan het systeem de gebruikersbeheerder actief houden, ook wanneer die gebruiker niet is aangemeld:
sudo loginctl enable-linger username
Na deze opdracht draait de gebruikersdienst zelfstandig en start hij wanneer de server opstart, zonder op jouw aanmelding te wachten. Zonder linger keert het oorspronkelijke gedrag terug: de gateway stopt wanneer je SSH afsluit en start niet bij het opstarten. De documentatie zegt dit expliciet.
Let op
Dit geldt niet voor de systeemdienst (geïnstalleerd met sudo hermes gateway install --system): die draait al op machineniveau en start bij het opstarten. Linger is alleen nodig voor een gebruikersdienst. Kies één optie: een systeemdienst, of een gebruikersdienst met linger.
Hoe draai je Hermes met automatische herstarts in Docker op een server?
Belangrijkste punten
Als je de voorkeur geeft aan Docker, kun je Hermes als een blijvende gateway in een container laten draaien: docker run -d --name hermes --restart unless-stopped -v ~/.hermes:/opt/data -p 8642:8642 nousresearch/hermes-agent gateway run. De vlag --restart unless-stopped start de container na een herstart opnieuw, en in de image wordt ook het gateway-proces opnieuw gestart als het crasht.
Docker is een andere werkbare manier om de agent op een server te laten draaien, vooral als je al gewend bent aan containers of de agent van het hoofdsysteem wilt isoleren. Configureer hem één keer met docker run ... setup en start de container daarna op de achtergrond:
docker run -d \
--name hermes \
--restart unless-stopped \
-v ~/.hermes:/opt/data \
-p 8642:8642 \
nousresearch/hermes-agent gateway run
De regels die verantwoordelijk zijn voor het gebruik dag en nacht doen het volgende:
-d— de container draait op de achtergrond en houdt je terminal niet open.--restart unless-stopped— Docker start de container opnieuw na een serverherstart of crash. Alleen wanneer je hem handmatig hebt gestopt, wordt hij niet opnieuw gestart.-v ~/.hermes:/opt/data— instellingen, sleutels, sessies en geheugen staan op de server, buiten de container, en blijven behouden wanneer je de container opnieuw maakt.
De image voegt nog een beveiliging toe: het gateway-proces draait onder de s6-supervisor. Als de gateway crasht, wordt hij binnen een paar seconden opnieuw gestart zonder dat de container zelf verloren gaat. Dat is dubbele bescherming: Docker houdt de container van buitenaf draaiende en s6 bewaakt het proces erin.
Onthoud één verschil met de Docker-aanpak: deze installaties worden niet bijgewerkt met de opdracht hermes update. Om Docker bij te werken, vervang je de image door een nieuwe: download de nieuwste en maak de container opnieuw.
Hoe controleer je of alles werkt en een herstart overleeft?
Belangrijkste punten
Controleer de dienststatus met systemctl en volg het live logboek. Daarna volgt de belangrijkste servertest: start de machine opnieuw op en controleer of de bot vanzelf weer online komt. Hermes-sessies en antwoorden blijven na een herstart behouden; een onafgemaakt antwoord wordt na herstel afgeleverd.
Controleer de status en logboeken van een gebruikersdienst als volgt:
hermes gateway status
journalctl --user -u hermes-gateway -f
Gebruik voor de systeemdienst die voor een VPS wordt aanbevolen de systeemscope:
sudo hermes gateway status --system
sudo journalctl -u hermes-gateway -f
De eerste opdracht controleert de gekozen dienst; de tweede volgt het log van die scope. Deze unitnamen gelden voor de standaardinstallatie in ~/.hermes. Andere Hermes-homes kunnen een unitnaam met achtervoegsel hebben: bekijk de statusuitvoer en gebruik precies die unit. Bewaak geen gebruikersunit terwijl je een systeeminstallatie test. Hermes-logboeken staan in ~/.hermes/logs/ en geheimen worden er automatisch uit weggelaten, dus je kunt ze veilig naar de ondersteuning sturen.
Start nu de server opnieuw op en controleer of de agent vanzelf terugkomt. Dit is de belangrijkste servertest, en meestal vergeten mensen juist die:
sudo reboot
Maak zodra de server weer bereikbaar is opnieuw via SSH verbinding. Controleer voor de systeeminstallatie sudo hermes gateway status --system en het systeemlog; controleer voor een gebruikersinstallatie met linger hermes gateway status en het gebruikerslog. Stuur daarna de bot een bericht op Telegram. Als hij antwoordt zonder dat jij iets hoeft te doen, is het automatisch starten goed ingesteld. Daar was het allemaal om te doen.
Je hoeft niet bang te zijn dat je gesprek verloren gaat. Hermes schrijft sessies naar schijf en die blijven behouden na een herstart van de gateway. Bovendien levert hij een antwoord na herstel alsnog af als de gateway crasht terwijl hij het verstuurt, in plaats van de taak opnieuw uit te voeren. Dat is belangrijk voor een bot die dag en nacht draait: een onverwachte herstart onderbreekt het gesprek niet.
Hoe beveilig je een agent met terminaltoegang op een server?
Belangrijkste punten
De drie belangrijkste beveiligingen: bottoegang is standaard gesloten (hij reageert alleen op mensen op de lijst), de agent vraagt toestemming voordat hij gevaarlijke opdrachten uitvoert en voor volledige isolatie laat je de agent in een Docker-sandbox op de server draaien. Je kunt de modus zonder bevestiging (YOLO) beter niet inschakelen op een server.
Een agent op een server is een programma met terminaltoegang dat zonder jouw toezicht draait. Controleer eerst deze drie instellingen.
Gesloten bottoegang. Standaard reageert de gateway alleen op mensen op de toegangslijst of op mensen die de koppeling via een code in een direct bericht hebben voltooid. Dat is het juiste gedrag voor een bot met terminaltoegang: een willekeurig persoon die de bot een bericht stuurt, kan niets doen. Je stelt de lijst in met numerieke ID's, bijvoorbeeld voor Telegram:
TELEGRAM_ALLOWED_USERS=123456789,987654321
Bevestiging voor gevaarlijke opdrachten. Voordat hij iets destructiefs doet, vraagt de agent om toestemming. Er is een YOLO-modus die bevestigingen uitschakelt; die kun je beter niet inschakelen op een server die zonder jou draait. Bevestigingen zijn er juist om te voorkomen dat er iets onomkeerbaars gebeurt zonder dat je het weet.
Een sandbox voor volledige isolatie. Als je wilt dat de agent het hoofdsysteem van de server fysiek niet kan zien, voer zijn opdrachten dan uit in een Docker-container:
hermes config set terminal.backend docker
Dan vindt alles wat de agent in de terminal doet plaats in een geïsoleerde sandbox en kan het de actieve server niet bereiken. Dat is een verstandige beveiliging wanneer je de agent de vrijheid geeft zelfstandig te handelen.
Wat moet je doen als de bot stil is of de gateway crasht?
Belangrijkste punten
Controleer eerst de dienststatus en logboeken; meestal ligt de oorzaak bij het bottoken, de toegangslijst of het model. Als het hele proces volledig vastloopt, heeft een systemd-dienst een watchdogtimer die de gateway opnieuw start als hij geen tekenen van leven meer vertoont.
Volg deze volgorde wanneer de bot niet meer reageert. Controleer eerst de geïnstalleerde scope: sudo hermes gateway status --system en het systeemlog voor een systeemdienst, of hermes gateway status en het gebruikerslog voor een gebruikersdienst. Als de gateway draait maar berichten niet aankomen, is het bijna altijd een configuratieprobleem van het platform: het bottoken is onjuist of de persoon staat niet op de toegangslijst. Voer hermes gateway setup opnieuw uit in dezelfde Hermes-home en bekijk daarna de gekozen dienst met hermes gateway status --system voor systeem of hermes gateway status voor gebruiker. Geslaagde configuratie bewijst niet dat de juiste gateway draait.
Als het model lege of vreemde antwoorden teruggeeft, controleer het dan met hermes model en bevestig de provider en aanmelding. De algemene herstelvolgorde om van “alles is kapot” weer naar een werkende situatie te komen is: hermes doctor, hermes model, hermes setup, gevolgd door hermes gateway status --system voor een systeeminstallatie of hermes gateway status voor een gebruikersinstallatie.
Nog één ding voor het zeldzame maar vervelende geval waarin het hele proces vastloopt zonder echt te crashen. Voeg deze regel toe aan ~/.hermes/config.yaml en installeer de dienst opnieuw.
gateway:
systemd_watchdog_seconds: 120
# Voor de VPS-systeemdienst (dezelfde Hermes-home als bij de oorspronkelijke installatie):
sudo hermes gateway install --system --force
sudo hermes gateway status --system
Genereer voor een gebruikersdienst uitsluitend die scope opnieuw met hermes gateway install --force en controleer hermes gateway status. Kies één scope; installeer niet beide om één gateway te herstellen.
Daarna geeft de gateway regelmatig aan het systeem het signaal “Ik leef”, en als die signalen stoppen, start systemd het proces automatisch opnieuw. Dit werkt alleen op Linux met systemd en alleen bij vastgelopen processen. De watchdogtimer heeft geen invloed op een gewone netwerkonderbreking tussen de server en de messenger.
Wat vragen mensen nog meer over Hermes Agent op een server?
Belangrijkste punten
Korte antwoorden op veelgestelde vragen: is een VPS specifiek vereist, kun je meerdere bots op één machine houden, heeft de server een grafische interface nodig en wat gebeurt er met geplande taken wanneer de agent op een server draait.
Veelgestelde vragen
Moet ik een VPS nemen, of volstaat mijn eigen computer?
Voor gebruik dag en nacht heb je een machine nodig die altijd aanstaat. Je eigen computer werkt alleen als je bereid bent hem nooit uit te zetten. Een VPS is handiger: die staat altijd aan en is niet afhankelijk van of je werkt of slaapt. Een gewone Linux-server volstaat: Linux krijgt volgens de documentatie de eerste ondersteuning en er wordt getest op een schone Ubuntu-installatie.
Kan ik meerdere bots op één server draaien?
Ja. Hermes heeft profielen en elk profiel heeft een eigen dienst. Een opdracht zoals <profile> gateway install maakt een aparte dienst met de naam hermes-gateway-<profile> aan, en die werken onafhankelijk. Elk profiel heeft eigen instellingen, een eigen bottoken en eigen geheugen.
Heeft de server een monitor en grafische interface nodig?
Nee. De server draait zonder scherm en je beheert hem via SSH in de terminal. Browserautomatisering is voor een agent op dit type server meestal niet nodig, dus voer je het installatieprogramma uit met de vlag --skip-browser; daarmee verwijder je het enige omvangrijke onderdeel dat graphics vereist.
Worden geplande taken uitgevoerd als ik weg ben?
Ja, dat is precies het doel van de verhuizing naar een server. Dezelfde gateway voert geplande taken uit: hij controleert het schema eenmaal per minuut en start taken wanneer ze moeten worden uitgevoerd, waarna hij het resultaat naar dezelfde chat stuurt. Omdat de gateway als dienst dag en nacht draait, wordt het schema vanzelf uitgevoerd zonder dat jij iets hoeft te doen.
Overleeft de bot een update en een serverherstart?
Ja. Instellingen, sessies en geheugen worden opgeslagen in de map ~/.hermes en gaan niet verloren. Na een herstart start de systeemdienst (of Docker met --restart unless-stopped) de gateway vanzelf. Een onafgemaakt antwoord wordt na een herstart afgeleverd en er gaat niets verloren — maar als het antwoord al halverwege het versturen was toen de crash plaatsvond, kan het opnieuw aankomen met een melding dat het mogelijk een duplicaat is.
Bronnen
Maak kennis met Ailoot.
Meer details
Vragen en antwoorden
Waarom lijkt de gateway gestopt nadat ik hem als systeemdienst installeerde?
Een controle zonder scope kan op een andere dienst gericht zijn. Gebruik hermes gateway status --system en het systeemlog voor de systeeminstallatie; gebruik alleen voor een gebruikersdienst de status zonder scope en het gebruikerslog. Houd steeds dezelfde Hermes-home aan.
Heeft een VPS-systeemdienst loginctl linger nodig?
Nee. Linger is voor een systemd-gebruikersdienst die na uitloggen actief moet blijven en bij opstarten moet starten. Een systeemdienst start al bij het opstarten van de machine; kies één installatiescope en herhaal na herstart de statuscontrole en de controle van een botantwoord.