Zurück zum Blog

deploy-ai-agent-on-digitalocean-droplet

Von Hermify Team||11 Min. Lesezeit
deploy-ai-agent-on-digitalocean-droplet

title: "KI-Agent auf einem DigitalOcean-Droplet bereitstellen" description: "Vollständige Anleitung 2026 für einen selbst gehosteten KI-Agenten auf einem DigitalOcean-Droplet: Größe, Cloud Firewall, Docker, Telegram und ehrliche Kostenrechnung." date: 2026-07-28 author: "Hermify Team" tags: ["AI Agents", "DigitalOcean", "Self-hosting", "Docker"] coverImage: "cover.jpg" socialImage: "og.jpg" coverAlt: "Dunkles Server-Rack mit blauer Status-LED und dem Text „DigitalOcean AI Agent""

Warum viele bei KI-Agenten immer wieder bei DigitalOcean landen

Wer sich entscheidet, einen KI-Agenten selbst zu hosten, kommt früher oder später zur gleichen Dreier-Wahl: Hetzner, AWS EC2 oder DigitalOcean. Jeder Anbieter spricht ein anderes Publikum an. Hetzner zieht die europäischen Kostenoptimiererinnen an. AWS zieht die Gruppe „unser Unternehmen nutzt es sowieso" an. DigitalOcean zieht die Indie-SaaS-Bauer an, die eine schlichte Ubuntu-Maschine wollen, dazu ein aufgeräumtes Control Panel, ein offizielles 1-Click-Docker-Image und eine Dokumentation, die keine Annahmen über Ihr Team trifft.

Es gibt noch einen weiteren Grund, warum DigitalOcean in dieser Nische überproportional oft auftaucht: Die DigitalOcean Community hält einen wachsenden Katalog an KI-Agenten-Tutorials und 1-Click-Marketplace-Images bereit (Docker Agent, Ollama, agentenfreundliche Basis-Images), die die erste Stunde der Einrichtung kürzer machen, als sie sein müsste. Wenn Ihr Agent-Runtime bereits als Container ausgeliefert wird, ist die Hälfte des Kampfs „Agent live bringen" praktisch schon gewonnen.

Diese Anleitung richtet sich an Sie, wenn Sie sich für DigitalOcean entschieden haben und einen selbst gehosteten KI-Agenten aufsetzen möchten (Hermes Agent, ein n8n-Workflow mit LLM-Knoten, einen OpenAI-Assistants-Proxy, alles, was von einem dauerhaft laufenden Server aus eine Modell-API aufruft), ohne die Teile zu überspringen, die um 3 Uhr morgens zählen. Größe, Härtung, Docker Compose, ein Telegram-Test und die ehrliche Liste der Dinge, die kaputtgehen.

Falls Sie sich noch zwischen Anbietern entscheiden, decken unsere Hetzner-Anleitung und der Vergleich günstiger VPS den Rest ab. Dieser Beitrag setzt DigitalOcean voraus.

Schritt 1: Das passende Droplet wählen

Die Shared-CPU-Linie von DigitalOcean ist 2026 in drei Gruppen unterteilt, die im Droplet-Anlegedialog sichtbar sind:

  • Regular Intel - die klassischen geteilten vCPUs, am ältesten und langsamsten pro Dollar
  • Premium Intel / Premium AMD - neuere Chips, schnellerer Single-Thread
  • Basic AMD (sekundengenaue Abrechnung) - der aktuelle Sweet Spot für kleine Dienste

Bei einem API-getriebenen Agenten (der OpenAI, Anthropic, OpenRouter oder Ihre eigene Ollama-Instanz aufruft und Tool-Aufrufe lokal orchestriert) läuft die Inferenz auf den Servern des Anbieters. Das Droplet muss nur den Agent-Prozess, ein Telegram-Gateway und den Docker-Daemon betreiben, viel CPU brauchen Sie also nicht. Der Engpass ist der RAM.

Tarif vCPU RAM NVMe Preis Fazit
s-1vcpu-512mb-10gb 1 512 MB 10 GB 4 $/Monat Zu knapp, OOM beim ersten Laden einer Skill
s-1vcpu-1gb 1 1 GB 25 GB 6 $/Monat Reicht für einen schlichten Agenten mit reinen API-Aufrufen
s-1vcpu-2gb 1 2 GB 50 GB 12 $/Monat Reicht für einen Agenten, keine Reserve für einen zweiten Dienst
s-2vcpu-4gb-amd 2 4 GB 80 GB 28 $/Monat Empfehlung: Agent + Memory + Playwright + Reverse Proxy
s-2vcpu-4gb (Intel) 2 4 GB 80 GB 24 $/Monat Gleiche Specs, ältere CPU

DigitalOcean ist am 1. Januar 2026 auf sekundengenaue Abrechnung umgestiegen (Mindestlaufzeit 60 Sekunden). Ein Droplet, das Sie zum Testen hochfahren und noch am gleichen Nachmittag zerstören, kostet also Cent, keinen Monat. Jedes Droplet enthält ein Traffic-Kontingent (1 TB im 6-$-Tarif, 4 TB im 24-28-$-Tarif), mehr als genug für einen Agenten, der vor allem Chat-Nachrichten weiterreicht.

Empfehlung: Beginnen Sie mit s-2vcpu-4gb-amd. Zwei vCPU und 4 GB RAM lassen Luft für den Agenten, einen kleinen IMAP-Polling-Job, eine Headless-Browser-Skill und einen Reverse Proxy, ohne OOM-Überraschungen beim ersten Schreiben eines Batches durch das Memory-Backend. Wenn Ihre einzige Last ein Chat-Agent gegen ein Cloud-Modell ist, reicht der 6-$-Tarif (s-1vcpu-1gb) wirklich aus.

Überspringen Sie den 4-$-Tarif, sobald Docker, ein Memory-Volume und ein Telegram-Gateway zusammenlaufen. Er überschreitet die OOM-Schwelle innerhalb einer Woche.

Schritt 2: Das Droplet abriegeln, bevor Sie per SSH einsteigen

Das ist der Schritt, den viele überspringen und der später schmerzt. DigitalOcean liefert eine Cloud Firewall, die auf Hypervisor-Ebene arbeitet, bevor Pakete die VM überhaupt erreichen. Konfigurieren Sie sie, bevor das Droplet bootet, damit die Maschine nie ein Paket auf einem Port annimmt, den Sie nicht öffnen wollten.

Gehen Sie in der DigitalOcean-Konsole zu Networking > Firewalls > Create Firewall. Eingangsregeln:

  • SSH (TCP 22) nur von My IP (oder einem kleinen CIDR, wenn Sie eine feste Büro-IP haben)
  • HTTP (TCP 80) von All IPv4, All IPv6 (nur, wenn Sie einen Reverse Proxy fahren)
  • HTTPS (TCP 443) von All IPv4, All IPv6 (nur bei HTTPS-Webhooks oder einer Web-UI)
  • ICMP von All IPv4, All IPv6 (damit Uptime-Pings funktionieren)

Ausgehend: Belassen Sie die Standardwerte - der Agent muss die Modell-API erreichen. Hängen Sie diese Firewall dem Droplet bereits bei der Erstellung an. Erstellen Sie das Droplet nicht zuerst und weisen Sie erst danach die Firewall zu.

Für ein noch stärkeres Setup schließen Sie Port 22 komplett ins Internet und erreichen die Maschine über Tailscale. DigitalOcean bietet eine Tailscale-1-Click, und die Tailscale-Doku erklärt den Ablauf „Port 22 für immer schließen". Die Cloud Firewall verwirft SSH-Sonden schon am Rand, sodass sie weder fail2ban noch Ihre Logs erreichen.

Wählen Sie beim Erstellen des Droplets Ubuntu 24.04 LTS, fügen Sie Ihren öffentlichen SSH-Key ein, hängen Sie die Firewall an und klicken Sie auf Create. Sobald das Droplet steht, melden Sie sich per SSH als root an und erledigen sofort vier Dinge:

# 1. Patchen
apt update && apt upgrade -y && apt install -y ufw fail2ban unattended-upgrades

# 2. Nicht-Root-Benutzer anlegen
adduser --disabled-password --gecos "" agent
usermod -aG sudo agent
mkdir -p /home/agent/.ssh && cp ~/.ssh/authorized_keys /home/agent/.ssh/
chown -R agent:agent /home/agent/.ssh && chmod 600 /home/agent/.ssh/authorized_keys

# 3. SSH abriegeln
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh

# 4. Host-Firewall (UFW), redundant zur Cloud Firewall, aber ein sinnvolles Sicherheitsnetz
ufw default deny incoming && ufw default allow outgoing
ufw allow OpenSSH && ufw allow 80/tcp && ufw allow 443/tcp
ufw --force enable

Anschließend automatische Sicherheitsupdates und fail2ban aktivieren:

dpkg-reconfigure -plow unattended-upgrades   # antworten Sie mit Yes
systemctl enable --now fail2ban

Melden Sie sich als root ab, wieder als agent an und arbeiten Sie von dort weiter.

Schritt 3: Docker installieren (oder das 1-Click-Image nehmen)

Sie haben zwei Wege.

Weg A: Docker auf einem sauberen Ubuntu installieren. Standard, eine Zeile, funktioniert überall:

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker agent
newgrp docker
docker run --rm hello-world

Weg B: das Docker-Marketplace-Image von DigitalOcean nutzen. Wählen Sie auf der Droplet-Erstellungsseite Marketplace > Docker (Ubuntu 24.04 mit vorinstalliertem Docker). Sie überspringen die Installation und starten mit einem fertig konfigurierten Setup. Gleiches Ergebnis, ein Kommando weniger.

Wenn Ihr Runtime ein offizielles 1-Click-Image auf DigitalOcean publiziert (Docker Agent, Ollama und eine wachsende Liste tun das), können Sie sogar direkt dieses Image nehmen und danach nur noch Ihre Env-Datei und Volumes drüberkomponieren.

Schritt 4: Den Agenten mit Docker Compose ausrollen

Legen Sie ~/agent/docker-compose.yml an. Das Beispiel ist generisch; tauschen Sie die Image-Referenz gegen den von Ihnen genutzten Runtime aus.

services:
  agent:
    image: ghcr.io/your-runtime/agent:latest
    container_name: agent
    restart: unless-stopped
    env_file: .env
    volumes:
      - ./data:/data
      - ./skills:/skills
      - ./memory:/memory
    ports:
      - "127.0.0.1:8080:8080"   # Web-UI nur an localhost gebunden

Dann ~/agent/.env:

# Modell-Anbieter (BYOK - eigenen Schlüssel mitbringen)
OPENAI_API_KEY=sk-...
# oder ANTHROPIC_API_KEY / OPENROUTER_API_KEY

# Messaging-Gateway
TELEGRAM_BOT_TOKEN=...
TELEGRAM_ALLOWED_USERS=12345678

# Persistenz
DATA_DIR=/data
MEMORY_DIR=/memory

chmod 600 .env, damit andere Benutzer auf der Maschine Ihre Schlüssel nicht lesen können, und dann hochfahren:

docker compose up -d
docker compose logs -f agent

restart: unless-stopped sorgt dafür, dass der Agent auch nach Neustarts des Droplets weiterläuft (DigitalOcean fährt gelegentlich wartungsbedingt neu).

Ein persistentes Volume anhängen

Die Root-Disk des Droplets reicht für den Container, der Agent-Zustand (Memory-Dateien, Skills, Konversationsverlauf) gehört jedoch auf ein separates DigitalOcean-Volume. Es überlebt die Zerstörung des Droplets, wird eigenständig gesnapshotet und lässt sich beim Wechsel der Größe an ein neues Droplet anhängen.

In der Konsole: Volumes > Create > 10 GB > attach to your Droplet. Auf der Maschine:

sudo mkdir -p /mnt/agent-state
sudo mount -o discard,defaults,noatime /dev/sda /mnt/agent-state
echo '/dev/sda /mnt/agent-state ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
sudo chown agent:agent /mnt/agent-state

Zeigen Sie die Volumes ./data, ./skills, ./memory aus docker-compose.yml auf Unterverzeichnisse von /mnt/agent-state. Ein 10-GB-Volume kostet rund 1 $/Monat.

Schritt 5: Telegram anbinden und testen

Wenn Telegram Ihr Messaging-Kanal ist (die meisten Selbst-Hoster landen dort, weil die Bot API kostenlos und sofort verfügbar ist), ist die Testschleife kurz:

  1. Sprechen Sie mit @BotFather, führen Sie /newbot aus, speichern Sie das Token in .env.
  2. Sprechen Sie mit @userinfobot, um Ihre numerische Telegram-Benutzer-ID zu erhalten, und tragen Sie sie in TELEGRAM_ALLOWED_USERS ein.
  3. docker compose restart agent.
  4. Öffnen Sie Ihren neuen Bot und schicken Sie „hallo".

Sie sollten binnen weniger Sekunden eine Antwort bekommen. Andernfalls zeigt docker compose logs -f agent in der Regel direkt auf das Problem: fehlendes Token, falsche zugelassene Benutzer-ID oder ein Modell-Anbieter, der 401 zurückgibt.

Für einen tieferen Durchgang zur Telegram-Seite (Gruppen, Topics, Sprachmodus, Fehlersuche) lesen Sie wie man einen KI-Agenten auf Telegram baut.

Schritt 6: Backups und Monitoring

Zwei günstige Gewohnheiten, die sich beim ersten Ausfall schon rechnen:

  • DigitalOcean Backups oder Snapshots. Backups laufen wöchentlich und automatisch mit vierwöchiger Aufbewahrung und kosten 20 % des Droplet-Preises. Snapshots sind manuell und werden pro GB und Monat abgerechnet (rund 0,05 $/GB/Monat). Setzen Sie zumindest einen Snapshot mit dem Tag „before-update", bevor Sie docker compose pull ausführen.
  • Ein Uptime-Ping. BetterStack, UptimeRobot oder das eigene Uptime-Produkt von DigitalOcean. Lassen Sie es alle fünf Minuten https://ihre-domain/health oder einen TCP-Check anpingen. Beim ersten Ausfall des Telegram-Long-Pollings um 3 Uhr morgens wissen Sie es dann vor dem Mittagessen, nicht beim Mittagessen.

Für den Agent-Zustand auf dem Volume genügt ein einzeiliger Cronjob, der /mnt/agent-state in /var/backups/agent-$(date +%F).tar.gz packt, plus ein rsync in den DigitalOcean Spaces (S3-kompatibel, Einstiegsplan 5 $/Monat). Spaces speichert die Tarballs zu Object-Storage-Preisen, deutlich unterhalb der „ich hänge ein zweites Droplet dran"-Variante.

Schritt 7: Updates

Einmal pro Woche, mit frischem Snapshot:

cd ~/agent
docker compose pull
docker compose up -d
docker image prune -f

Meist unter einer Minute. Wenn das neue Image bricht, stellen Sie den Snapshot über die Konsole wieder her. Der einzige verlorene Zustand ist das, was zwischen Snapshot und Jetzt geschrieben wurde und im Memory-Volume liegt.

Was früher oder später kaputtgeht

Die ehrliche Liste, anbieterunabhängig und langzeiterprobt:

  • Telegram-Long-Polling fällt aus bei Netzwerk-Aussetzern. Die meisten Runtimes reconnecten selbst; falls nicht, fängt es der Uptime-Ping ab.
  • docker compose pull :latest bringt eine brechende Konfigurationsänderung mit. Pinnen Sie Image-Tags in der Produktion auf konkrete Versionen.
  • Der Modell-Anbieter rate-limitet Sie, und der Agent verstummt ohne klare Fehlermeldung. Loggen Sie den HTTP-Status aus dem Anbieter-Client.
  • Die Root-Disk läuft voll, weil eine Skill in /tmp schreibt, ohne zu rotieren. du -sh /* und docker system df gehören ins Muskelgedächtnis. Genau deshalb liegt der persistente Zustand auf einem Volume.
  • Sie vergessen die Firewall-Regel, wenn Sie einen Dienst hinzufügen. Sowohl Cloud Firewall als auch UFW brauchen den neuen Port, sonst debuggen Sie 20 Minuten lang „connection refused" von der falschen Seite.

Nichts davon ist DigitalOcean-spezifisch. Das ist die Steuer dafür, alles selbst zu betreiben.

Ehrliche Kostenrechnung

Grobe Monatszahlen für ein kleines Produktions-Setup auf DigitalOcean, Mitte 2026:

  • Droplet (s-2vcpu-4gb-amd): 28 $
  • 10-GB-Volume: 1 $
  • Weekly Backups: rund 5,60 $
  • Spaces (Off-Site-Backup, 250 GB / 1 TB Transfer): 5 $
  • Uptime-Pinger: 0 $ (kostenloser Tarif)

Summe: rund 40 $/Monat für einen sauber gesicherten, überwachten und isolierten KI-Agenten-Host auf DigitalOcean. Auf Hetzner landet dasselbe Modell eher bei 8-10 $/Monat (EU-Regionen, vergleichbare CPU, 20 TB Transfer inklusive), auf AWS EC2 eher bei 60-80 $/Monat, sobald EBS und Datenausgang dazukommen. DigitalOcean sitzt genau in der Mitte, zum Preis für Politur, Dokus, 1-Click-Images und das Nicht-über-Abrechnungsstufen-nachdenken-Müssen.

Wenn die VPS-Rechnung nicht mehr aufgeht

Wenn Ihnen die obigen Schritte gefallen, ist das genau der Workflow, für den DigitalOcean gemacht ist. Aufgeräumtes Panel, 1-Click-Images, ein Ökosystem voller „so betreibt man X"-Tutorials.

Wenn sie sich nach einer Steuer auf Ihr Wochenende anhören, verschiebt sich die Rechnung. Managed Hosting tauscht eine kleine Monatsgebühr und einen Sonntagnachmittag gegen ein Setup, das Telegram-Gateway, BYOK an Ihren Modell-Anbieter, persistenten Speicher, Snapshots und „läuft, während Sie schlafen" bereits enthält. Unser Hosting-vs.-Self-Hosting-Leitfaden rechnet das im Detail durch, inklusive dessen, was Ihre Zeit wert ist.

Starten Sie mit Hermify, wenn Sie den gemanagten Weg wollen: einen Hermes Agent auf Produktions-Infrastruktur in etwa einer Minute, ohne Cloud Firewall, die konfiguriert werden muss, und ohne Volumes, die angehängt werden müssen. Wenn Sie es lieber selbst auf DigitalOcean machen, sollte diese Anleitung Sie ans Ziel bringen.

Quellen

Betreiben Sie Ihren eigenen Hermes Agent

Bringen Sie Ihren API-Schlüssel mit, verbinden Sie Telegram und erhalten Sie in 60 Sekunden einen selbstlernenden KI-Agenten.

Loslegen