# 2 — Terminal Kodları ve Hermes Kurulumu

[1. dosyadaki](01-aws-sunucu-kurulumu.md) AWS kurulumu bittiyse buradan devam. Bu bölümde önce kendi bilgisayarımızdan sunucuya SSH ile bağlanıyoruz, sonra sunucunun içine Hermes Agent'ı kuruyoruz.

> Videoda bu bölüm: **07:56 – 13:27** (masaüstü uygulaması **11:17**, zamanlanmış görev **13:28**)

Aşağıdaki komutlarda geçen `<EIP>` yazan yerlere **1.7'de not ettiğin Elastic IP'yi** yazacaksın. Örnek: `ssh -i $HOME\.ssh\hermes-key.pem ubuntu@3.120.45.67`

---

## 2.1 — Anahtar dosyasını yerleştir (kendi bilgisayarında)

`hermes-key.pem` şu an İndirilenler klasöründe duruyor. Onu kalıcı yerine taşıyıp izinlerini kısıtlıyoruz.

### Windows — PowerShell

```powershell
mkdir $HOME\.ssh -Force
Move-Item $HOME\Downloads\hermes-key.pem $HOME\.ssh\
icacls $HOME\.ssh\hermes-key.pem /inheritance:r
icacls $HOME\.ssh\hermes-key.pem /grant:r "${env:USERNAME}:R"
```

Sırayla ne yapıyor:

| Komut | Ne yapıyor |
|---|---|
| `mkdir $HOME\.ssh -Force` | `.ssh` klasörünü açar (zaten varsa hata vermez) |
| `Move-Item` | `.pem` dosyasını İndirilenler'den `.ssh` klasörüne taşır |
| `icacls ... /inheritance:r` | Dosyanın üst klasörden aldığı izinleri keser |
| `icacls ... /grant:r "${env:USERNAME}:R"` | Sadece senin kullanıcına **okuma** izni verir |

> **Son iki satır şart.** SSH, herkesin okuyabildiği bir özel anahtarla bağlanmayı reddeder ve `UNPROTECTED PRIVATE KEY FILE` hatası verir.

### macOS / Linux — Terminal

```bash
mkdir -p ~/.ssh
mv ~/Downloads/hermes-key.pem ~/.ssh/
chmod 400 ~/.ssh/hermes-key.pem
```

---

## 2.2 — Sunucuya bağlan

```powershell
ssh -i $HOME\.ssh\hermes-key.pem ubuntu@<EIP>
```

macOS / Linux:

```bash
ssh -i ~/.ssh/hermes-key.pem ubuntu@<EIP>
```

İlk bağlantıda şöyle bir soru gelecek:

```
The authenticity of host '...' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
```

**`yes`** yazıp Enter'a bas. Bir sıkıntı yoksa sunucuya girmiş olacaksın — komut satırı `ubuntu@ip-...:~$` şeklinde değişir.

> Kullanıcı adı **`ubuntu`** — çünkü Ubuntu imajı kullandık. Amazon Linux'ta bu `ec2-user` olur.

**Bağlanamıyorsan sırayla kontrol et:**
- `<EIP>` yerine gerçekten Elastic IP'yi yazdın mı?
- Security group'ta SSH kuralının Source'u hâlâ senin IP'n mi? (internet IP'n değişmiş olabilir)
- Instance **Running** durumda mı?

---

## 2.3 — Sunucuyu hazırla

Bundan sonraki komutların hepsi **sunucunun içinde** çalışıyor. Tek tek yapıştırıp çalıştır.

### Saat dilimi

```bash
sudo timedatectl set-timezone Europe/Istanbul
```

Sunucular varsayılan olarak UTC saatiyle gelir. Bunu ayarlamazsan "her sabah 8'de brief ver" dediğinde görev **Türkiye saatiyle 11'de** çalışır.

### Güncellemeler

```bash
sudo apt update && sudo apt upgrade -y
```

Bu adım biraz sürer. Bittikten sonra devam et.

### Gerekli paketler

```bash
sudo apt install -y curl git build-essential
```

### Swap alanı (2 GB)

```bash
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
```

```bash
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
```

Makinede 2 GB RAM var. Swap, RAM dolduğunda diski yedek bellek olarak kullanmasını sağlıyor — kurulum sırasında işlemlerin bellek yetmediği için ölmesini engelliyor. İkinci satır bunu `/etc/fstab`'a yazıyor ki **sunucu yeniden başladığında da aktif kalsın**.

Kontrol etmek istersen:

```bash
free -h
```

`Swap:` satırında `2.0Gi` görüyorsan tamamdır.

---

## 2.4 — Hermes Agent'ı kur

```bash
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
```



Kurulumun bittiğini şöyle doğrula:

```bash
hermes --version
```

---

## 2.5 — İlk çalıştırma ve kurulum sihirbazı

```bash
hermes setup
```

İlk açılışta bir kurulum sihirbazı geliyor. Videodaki seçimler:

Sihirbaz bitince Hermes açılıyor.

---

## 2.6 — Model sağlayıcısını bağla (OpenRouter)

Hermes ilk mesajda "provider seçilmemiş" diyecek.

1. Provider olarak **OpenRouter**'ı seç
2. Senden bir **API key** isteyecek
3. Yeni bir sekmede [openrouter.ai](https://openrouter.ai) → hesabına gir → **Keys** → yeni key oluştur
   - İsim: `hermes-test` (denemeden sonra silebilirsin)
4. Key'i kopyala, terminaldeki alana yapıştır
5. Model listesinden **DeepSeek V4 Flash 0731**'ı seç


---

## Tüm komutlar, tek blokta

Hızlı referans için.

**Kendi bilgisayarında (PowerShell):**

```powershell
mkdir $HOME\.ssh -Force
Move-Item $HOME\Downloads\hermes-key.pem $HOME\.ssh\
icacls $HOME\.ssh\hermes-key.pem /inheritance:r
icacls $HOME\.ssh\hermes-key.pem /grant:r "${env:USERNAME}:R"
ssh -i $HOME\.ssh\hermes-key.pem ubuntu@<EIP>
```

**Sunucunun içinde (Ubuntu):**

```bash
sudo timedatectl set-timezone Europe/Istanbul
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.bashrc
hermes model
```
