Mayk Agent VPS — Yapılanma ve Kullanım Kılavuzu
> Eğitim dokümanı: OpenClaw + Hermes benzeri ajan sunucusu kurmak, işletmek, yedeklemek ve güvenli tutmak isteyenler için hazırlanmıştır.
>
> Güncelleme: 2026-05-15 | GPT-5 Codex
1. Amaç#
Bu sunucu iki farklı ajan sistemini aynı VPS üzerinde çalıştırır:
- OpenClaw: Telegram odaklı Mayk ajanı ve OpenClaw kontrol paneli.
- Hermes: araştırma, cron görevleri, workspace ve web UI odaklı ajan.
İki ajan aynı sunucuda ama ayrı container ve ayrı Telegram bot kimliğiyle çalışır. Public erişim doğrudan container portlarından değil, Traefik üzerinden HTTPS domainlerle yapılır.
2. Mimari#
flowchart LR
User["Kaptan / Kullanıcı"] --> TG1["Telegram: @clawmayk_bot"]
User --> TG2["Telegram: @HermesMayk_bot"]
User --> WEB1["openclaw.raraprojects.com"]
User --> WEB2["hermes.raraprojects.com"]
TG1 --> OC["OpenClaw Container"]
TG2 --> HA["Hermes Agent Container"]
WEB1 --> TR["Traefik 80/443"]
WEB2 --> TR
TR --> OC
TR --> HW["Hermes Workspace Container"]
HW --> HA
OC --> OCDATA["/docker/openclaw-dbyx/data"]
HA --> HDATA["hermes-data volume /opt/data"]
OCDATA --> BK["Daily Git Backup"]
HDATA --> BK
3. Altın Kurallar#
- Aynı Telegram bot token'ı iki gateway'de kullanılmaz. Long polling aynı bot için tek consumer ister. Aksi halde
409 Conflictoluşur. - Public container portu açma. 80/443 Traefik, SSH 22 dışında ajan portları localhost/internal kalır.
- Secret değerler dokümana yazılmaz.
00_ozel_kasa/api_keys.mdve sunucuda root-only env dosyaları kullanılır. - Backup scripti token tutmaz; token
/root/.config/mayk-agent-backup.enviçinde root-only tutulur. - SSH key-only çalışır. Şifre ile root login kapalıdır.
- Compose değişikliği sonrası mutlaka
docker compose up -dve public domain health check yapılır. - Büyük değişiklikten önce
/root/mayk-backups/config-YYYYMMDDHHMMSS/altına config yedeği alınır.
4. Sunucu Kimliği#
- Hostname:
srv1670379.hstgr.cloud - IP:
76.13.46.192 - OS: Ubuntu 24.04 LTS
- SSH:
ssh root@76.13.46.192 - Public domainler:
https://openclaw.raraprojects.comhttps://hermes.raraprojects.com
5. Docker Yerleşimi#
/docker/openclaw-dbyx/
/docker/hermes-workspace-qyfq/
/docker/hermes-agent-em2y/
Ana containerlar:
openclaw-dbyx-openclaw-1
hermes-workspace-qyfq-hermes-workspace-1
hermes-workspace-qyfq-hermes-agent-1
traefik-pcyq-traefik-1
hermes-agent-em2y-hermes-agent-1
6. Port Modeli#
Public kalması gereken portlar:
22/tcp: SSH80/tcp: Traefik HTTP443/tcp: Traefik HTTPS
Public olmaması gereken ajan portları:
- OpenClaw
65296:127.0.0.1bind - Hermes Workspace
3000: Docker network expose - Hermes Agent
8642,9119: Docker network expose - em2y
4860:127.0.0.1bind
Doğrulama:
ss -tulpn
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
7. Telegram Kurulumu#
Her agent için ayrı bot oluşturulur:
- OpenClaw:
@clawmayk_bot - Hermes:
@HermesMayk_bot
OpenClaw token konumları:
/docker/openclaw-dbyx/.env
/docker/openclaw-dbyx/data/.openclaw/openclaw.json
Hermes token konumu:
/var/lib/docker/volumes/hermes-workspace-qyfq_hermes-data/_data/.env
Token değiştirildikten sonra:
cd /docker/hermes-workspace-qyfq
docker compose restart hermes-agent
Conflict kontrolü:
docker logs --since 2m openclaw-dbyx-openclaw-1 2>&1 | grep -Ei "409|conflict|telegram"
docker logs --since 2m hermes-workspace-qyfq-hermes-agent-1 2>&1 | grep -Ei "409|conflict|telegram"
8. SSH Güvenliği#
Effective SSH hedefi:
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
MaxAuthTries 3
X11Forwarding no
Doğrulama:
sshd -T | egrep "permitrootlogin|passwordauthentication|pubkeyauthentication|maxauthtries|x11forwarding"
Fail2ban:
systemctl is-active fail2ban
fail2ban-client status sshd
9. Backup Sistemi#
Backup script:
/usr/local/bin/agent-backup.sh
Secret env:
/root/.config/mayk-agent-backup.env
Backup klasörü:
/opt/agent-backup
Git hedefi:
https://github.com/RARA1907/mayk-agent-backup.git
Cron:
0 3 * * * /usr/local/bin/agent-backup.sh >> /var/log/agent-backup.log 2>&1
Backup kapsamı:
- OpenClaw workspace
- OpenClaw skills
- OpenClaw safe config
- Hermes
SOUL.md - Hermes
config.yaml/hermes_config.yaml - Hermes cron jobs
- Hermes plans
- Hermes skills
- Hermes memories
Backup dışı:
.env- API key/token/secret
- auth files
- local cache/log/session
- SQLite runtime DB files
10. Bakım Sistemi#
Bakım script:
/usr/local/bin/mayk-agent-maintenance.sh
Cron:
30 3 * * * /usr/local/bin/mayk-agent-maintenance.sh
Yaptıkları:
- Disk ve RAM durumunu loglar
- Docker/fail2ban aktif mi kontrol eder
- OpenClaw local health kontrolü yapar
- Hermes agent health kontrolü yapar
- Public domainleri kontrol eder
- Docker image prune yapar
- Eski builder cache'i temizler
- Paket update listesini loglar
Log:
/var/log/mayk-agent-maintenance.log
11. Günlük Operasyon Kontrol Listesi#
ssh root@76.13.46.192
docker ps
curl -fsS https://openclaw.raraprojects.com >/dev/null && echo OK
curl -fsS https://hermes.raraprojects.com >/dev/null && echo OK
tail -40 /var/log/agent-backup.log
tail -80 /var/log/mayk-agent-maintenance.log
fail2ban-client status sshd
Beklenen durum:
- OpenClaw container up
- Hermes workspace healthy
- Hermes agent healthy
- Public domainler HTTP 200
- Telegram loglarında
409 Conflictyok - Dışarıdan yalnızca 22/80/443 açık
12. Sorun Giderme#
Telegram 409 Conflict#
Sebep: Aynı bot token'ı birden fazla gateway tarafından long polling için kullanılıyor.
Çözüm:
- OpenClaw ve Hermes token hash'lerini karşılaştır.
- Hermes
.enviçinde doğru bot token var mı kontrol et. docker compose restart hermes-agent.- Loglarda conflict kalmadığını doğrula.
Hermes Web Açılıyor Ama Login Sorunlu#
Hermes Workspace loglarında plain HTTP/Secure cookie uyarısı görülebilir. Public domain HTTPS üzerinden çalıştığı için ana kullanımda sorun beklenmez. Local HTTP kullanımda COOKIE_SECURE=0 gerekebilir.
Public Domain Çalışmıyor#
Kontrol:
docker ps
docker logs --tail 100 traefik-pcyq-traefik-1
curl -vk https://openclaw.raraprojects.com
curl -vk https://hermes.raraprojects.com
Backup Push Etmiyor#
Kontrol:
tail -100 /var/log/agent-backup.log
stat /root/.config/mayk-agent-backup.env
git -C /opt/agent-backup status
git -C /opt/agent-backup remote -v
Remote URL token içermemelidir. Push komutu runtime'da root-only env'deki token ile yapılır.
13. Yeni Ajan Kurmak İsteyenlere Eğitim Akışı#
- VPS kur: Ubuntu LTS, minimum 2 CPU / 4 GB RAM, tercihen 8 GB RAM.
- Domainleri hazırla:
agent.example.com,workspace.example.com. - Traefik veya benzeri reverse proxy kur.
- Her ajan için ayrı Telegram bot oluştur.
- Ajan container'larını ayrı compose klasörlerinde çalıştır.
- Public port publish etme; Traefik label + internal expose kullan.
- Kimlik dosyalarını
SOUL.md,USER.md,IDENTITY.mdgibi açık metin ama secret içermeyen dosyalara koy. - Secret'ları
.enviçinde tut ve izinleri600yap. - Backup scriptini ilk gün kur.
- SSH key-only, fail2ban ve günlük bakım cron'unu ilk gün aktif et.
- Kurulum bittiğinde public domain, Telegram ve backup push testlerini yap.
14. Wiki’ye Dönüşecek Başlıklar#
- OpenClaw + Hermes mimarisi
- Telegram bot token ayrımı
- VPS agent security baseline
- Traefik arkasında Docker agent yayınlama
- Agent backup ve restore rehberi
- Hermes cron job kullanımı
- SOUL.md ile kalıcı ajan kimliği