---
title: "erpc worker ile ilk uygulamanızı bir sunucuya dağıtın"
description: "erpc worker ile HelloWorld uygulamasını oluşturun, makinenizde çalıştırın ve bir ERPC VPS'e ya da kendi sunucunuza dağıtın."
canonical: "https://erpc.global/tr/doc/erpc-cli/worker-quickstart/"
locale: "tr"
---

# erpc worker ile ilk uygulamanızı bir sunucuya dağıtın

`erpc worker` ile Rust'ta küçük bir HTTP API oluşturun, makinenizde çalıştırın ve dört komutla bir sunucuya dağıtın.

Bu sayfada bir ön sürüm olan ERPC CLI `v0.1.0-rc.4` anlatılır.

`erpc worker` (takma adı `erpc w`) uygulamanızı native bir Linux binary'sine derler ve onu bir ERPC VPS'te, yeni bir saatlik VPS'te ya da kendi sunucunuzda, arada Docker ve çalışma zamanı olmadan, sıkılaştırılmış bir systemd birimi altında çalıştırır.

Sağlık kontrolünden geçerek ayağa kalkmayan bir release, bir öncekine geri alınır ve birden çok uygulama, her biri kendi bağlantı noktasında olmak üzere tek bir sunucuyu paylaşabilir. Uygulamaya dair her şey, uygulamanın kökündeki `erpc.toml` dosyasındadır; bu dosya hiçbir gizli değer içermez ve commit edilebilir.

## Ön koşullar

- **Bir ERPC hesabı**; bu makinede `erpc login` ile oturum açılmış olmalıdır ([Oturum açma ve anahtarlar](https://erpc.global/tr/doc/erpc-cli/sign-in-and-keys/)).
- **ERPC Credit**, yeni bir saatlik VPS için. Saatlik bir ürün, önceden satın alınan ERPC Credit'ten ödenir ve kredinin karşılamadığı bir başlatma reddedilir. Fiyatlar [Fiyatlandırma](https://erpc.global/tr/price/) sayfasında ve [ERPC Web Dashboard](https://dashboard.erpc.global/tr) üzerinde yer alır.
- **Bir SSH anahtarı**, bu makinede: `ssh-keygen -t ed25519` ya da elinizde olan bir anahtar için `erpc config set ssh_key <path>.pub`.
- **Linux için derleme yapmanın bir yolu.** Mac veya Windows'tan: sunucunun Rust hedefi (`rustup target add x86_64-unknown-linux-gnu`), `zig` (macOS'ta `brew install zig`) ve `cargo-zigbuild` (`cargo install cargo-zigbuild --locked`). Sunucuyla aynı türden bir Linux makinesinden (her ERPC sunucusu x86-64'tür): cargo'dan başka bir şey gerekmez. Çapraz derleme araçları olmadan uygulama bu makinenin kendi araç zinciriyle derlenir ve bu durumda binary, bağlandığı glibc'ye ihtiyaç duyar; `build` ve `deploy` bu glibc'yi belirtir. Bu araçlarla, glibc 2.31 ve üzeri için derlenir.

## HelloWorld'ü dağıtın

HelloWorld, hiçbir anahtar, gizli değer veya veri hattı gerektirmeyen, Rust'ta yazılmış küçük bir HTTP API'dir. `GET /`, `GET /hello/{name}` ve `GET /healthz` isteklerine yanıt verir.

```bash
erpc worker init --template helloworld   # makes ./hello-world
erpc worker run hello-world              # here: curl http://127.0.0.1:3000/
erpc worker deploy hello-world           # your VPS, or a new hourly one (price asked first)
erpc worker api / --dir hello-world      # {"message":"Hello, World!",…} from the server
```

1. `init`, uygulamayı `erpc.toml` dosyasıyla birlikte `./hello-world` içinde oluşturur.
2. `run`, uygulamayı derler ve makinenizde çalıştırır; böylece onu önce curl ile çağırabilirsiniz.
3. `deploy`, uygulamayı sunucu için derler ve dağıtır. Para gerektiren her şey önce saatlik fiyatıyla, bakiyenizle ve kredinin ne kadar süre yeteceğiyle birlikte gösterilir; terminalde ise yalnızca bir evet yanıtından sonra başlar.
4. `api`, dağıtılan uygulamanın API'sini makinenizden çağırır; API bu sırada sunucunun loopback'inde kalır.

`erpc worker check` uygulamada eksik olanları listeler ve bir şey eksikse `deploy` herhangi bir şey satın almadan önce çalışmayı reddeder. `erpc worker build` yalnızca derlemeyi çalıştırır; bir sunucu satın alınmadan önce derlemenin başarısız olduğunu görmenin yolu budur.

## Şablon seçin

`erpc worker init` tek bir şey sorar: ne oluşturulacağı. Seçim ok tuşlarıyla yapılır.

- **HelloWorld**, başlangıç için kullanılacak şablondur.
- **HFT** ve **pumpfun-bot** şimdilik ikisi de pumpfun şablonundan oluşturulur: ValidatorsDAO/solana-stream'den taşınmış bir pump.fun (PumpSwap) trading botu.

`--template hft` (ya da `helloworld`, `pumpfun-bot` veya bir şablon kimliği) seçiciyi atlar, `--name` ise uygulamaya ad verir. Ad verilmezse uygulama seçime göre adlandırılır (`hello-world`, `hft-bot`, `pumpfun-bot`). Bu adda bir dizin varsa, seçimi yapan bir kişiye `-2`, `-3` vb. verilir; bir betik (`--yes`, `--json`, terminal yok) ise hata alır. Sorulacak kimse yoksa ve `--template` verilmemişse, oluşturulan HelloWorld olur.

Bir trading botu çalışmadan önce bir anahtara ve birkaç ayara ihtiyaç duyar. Sırası şöyledir:

```bash
erpc login                             # once per machine: the session in 1Password or the keychain
erpc worker init                       # pick with the arrow keys; makes ./<name> with erpc.toml
cd <name>
erpc worker key new                    # the trading key, in 1Password, the keychain or the keystore; prints the public key to fund
erpc worker secret put API_TOKEN --generate          # the bot's own API token, made for you and shown to nobody
erpc worker secret put ERPC_API_KEY --from-account   # the account's RPC key, read from your account (or SOLANA_RPC_ENDPOINT in [vars])
erpc worker check                      # what erpc.toml describes, and what is missing
erpc worker run --grpc --ip <IPV4>     # build and run here, with an hourly gRPC line letting this machine in
erpc worker run --check --grpc --ip <IPV4>   # the same, stopped once healthy
erpc worker deploy --new-vps --grpc    # a new hourly VPS and gRPC line, prices asked first
```

`init`, oluşturduğu uygulama için bu sırayı yazdırır. Anahtarın ve gizli değerlerin nerede saklandığı [Anahtarlar ve gizli değerler](https://erpc.global/tr/doc/erpc-cli/worker-secrets/) sayfasında anlatılır.

## Sunucuyu seçin

`deploy`, aşağıdakilerden ilkini kullanır:

1. uygulamanın `[env.<name>]` bölümünün zaten belirttiği sunucu;
2. `--vps <id>`, hesabınızdaki bir ERPC VPS;
3. `--new-vps`, saat dilimine göre bu makineye en yakın bölgedeki en ucuz saatlik VPS (`--region` ve `--plan` başka bir seçim yapar);
4. `--host <address>`, kendi sunucunuz: systemd, nftables, `sudo` ve `/usr/bin/python3` konumunda Python 3 bulunan Ubuntu veya Debian; root olarak ya da parolasız sudo yetkisine sahip bir kullanıcıyla erişilir;
5. bunların hiçbiri yoksa, terminalde, hesabınızın çalışan VPS'lerinin bir listesi; listenin sonunda "start a new one" yer alır.

Kendi sunucunuzda worker'ın güvenlik duvarı, SSH ve uygulamanın bağlantı noktası dışındaki her gelen bağlantıyı düşürür; bu nedenle başka bir şey sunan bir sunucu, kullanılacak sunucu değildir.

## Terminal başında kimse olmadan dağıtın

Bir betiğin ya da `erpc ai` gibi bir ajanın yanıt verebileceği bir terminali yoktur. İki bayrak, yine de işi yapmasını sağlar:

```bash
erpc worker deploy hello-world --new-vps --yes                     # no key: all the way, unattended
erpc worker deploy pump-sniper --new-vps --grpc --yes --prepare    # a bot: everything but its key
erpc worker deploy pump-sniper                                     # then you, at a terminal: the key, and the start
```

- **`--yes`**, komutun adını verdiği her saatlik ürünün fiyat sorusunu yanıtlar (`--new-vps`, `--grpc`, `--shreds`, `--unlimited`). Ayrıca erpc'nin henüz yalnızca anahtarla girişe geçirmediği bir sunucuya (yeni bir sunucu ya da `--vps <ID>` ile adı verilen bir sunucu) yapılan ilk girişi de yanıtlar: erpc sunucunun parolasıyla bir kez giriş yapar, anahtarınızı yerleştirir ve parolayla girişleri kapatır. `--yes` olmadan ve terminal olmadan bir başlatma, herhangi bir şey satın alınmadan önce çıkış kodu 3 ile reddedilir.
- **Sunucularınız arasından seçim yapmak yine de bir kişi gerektirir.** Sunucuyu `--new-vps`, `--vps <ID>` veya `--host` ile belirtin.
- **`--prepare`**, ne trading anahtarını ne de bir gizli değeri gerektiren her şeyi yapar; hiçbir şeyi başlatmaz, durdurmaz veya yeniden başlatmaz. Terminalde çalıştırılan bir sonraki `erpc worker deploy`, anahtarı ve gizli değerleri teslim eder ve uygulamayı başlatır. Trading anahtarı yalnızca terminal başındaki bir kişi için okunur.

## Uygulamanızı gRPC, Shreds ve Unlimited RPC'ye bağlayın

ERPC'nin saatlik hatları sunucuyu adresine göre kabul eder ve hiçbir token kabul etmez. Her hat, `deploy` üzerindeki kendi bayrağıyla sunucu için başlatılır ve uygulama, hattın endpoint'ini bir ayar olarak alır:

| Bayrak | Hat | Uygulamanın aldığı |
| --- | --- | --- |
| `--grpc` | Geyser gRPC | `GRPC_ENDPOINT` |
| `--shreds` | Shreds (Shredstream gRPC) | `SHREDS_ENDPOINT` |
| `--unlimited` | Sunucunun bölgesindeki Unlimited RPC | `SOLANA_SEND_RPC_ENDPOINT` |

- `--grpc-plan`, `--shreds-plan` veya `--unlimited-plan` bir plan belirtmedikçe her hat, kendi ailesinin en ucuzudur.
- Unlimited RPC, kurulumu 45 dakikaya kadar süren özel bir sunucuda çalışır. `sendTransaction` ve kısa bir okuma listesi sunar; `getProgramAccounts` veya `getTokenAccountsByOwner` sunmaz. Endpoint'i düz HTTP'dir (TLS yok) ve yalnızca allowlist'teki adresi kabul eder.

### Makinenizdeki bir çalıştırma için hatlar

`erpc worker run` de `--grpc` ve `--shreds` alır; böylece uygulamayı bir sunucuya gitmeden önce burada gerçek verilerle deneyebilirsiniz.

- **Adres:** hatlar, bu makinenin `--ip` ile verdiğiniz genel IPv4 adresini kabul eder. erpc bu adresi kendisi bulmaz.
- **Satın alma:** yeni bir hat yalnızca terminalde, fiyatı gösterildikten sonra satın alınır. `run` komutunda `--yes` yoktur.
- **Sonlandırma:** çalıştırma sona erdiğinde her saatlik hat, sorulduktan sonra sonlandırılır. `--keep-lines` hatları tutar; ücretlendirilmeye devam ederler. Çalıştırma başka bir şekilde sona ererse (terminal kapanırsa, ikinci bir Ctrl-C), hatlar kalır ve ücretlendirilir.
- **Ölçümler:** uygulamanın burada ölçtükleri, bu makine ile hat arasındaki mesafeyi de içerir; bu yüzden aynı uygulamanın hattın yakınındaki bir sunucuda çalışan hâlinden daha yavaştır.

## Sonraki adımlar

- [Uygulama içe aktarma](https://erpc.global/tr/doc/erpc-cli/worker-import/): Elinizde olan bir uygulamayı, hangi dilde olursa olsun dağıtın.
- [Anahtarlar ve gizli değerler](https://erpc.global/tr/doc/erpc-cli/worker-secrets/): Trading anahtarını ve gizli değerleri sunucunun diskinden uzak tutun.
- [Güvenlik duvarı ve WAF](https://erpc.global/tr/doc/erpc-cli/worker-firewall-and-waf/): Herkese açık bir API'yi WAF'ın arkasına koyun.
- [Durum ve faturalandırma](https://erpc.global/tr/doc/erpc-cli/worker-status-and-billing/): Uygulamayı izleyin ve saatlik maliyetini görün.
