raraprojects wiki
Ana site İletişim

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:

İ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#

4. Sunucu Kimliği#

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:

Public olmaması gereken ajan portları:

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 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ı:

Backup dışı:

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ı:

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:

12. Sorun Giderme#

Telegram 409 Conflict#

Sebep: Aynı bot token'ı birden fazla gateway tarafından long polling için kullanılıyor.

Çözüm:

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ışı#

14. Wiki’ye Dönüşecek Başlıklar#