---
title: "Elinizdeki bir uygulamayı erpc worker import ile dağıtın"
description: "erpc worker import uygulamanın dizinini okuyup erpc.toml dosyasını yazar; Cargo paketi ya da herhangi bir dildeki Linux binary'si kodu değişmeden dağıtılır."
canonical: "https://erpc.global/tr/doc/erpc-cli/worker-import/"
locale: "tr"
---

# Elinizdeki bir uygulamayı erpc worker import ile dağıtın

`erpc worker import`, elinizde olan bir uygulamayı olduğu gibi alır. Uygulamanın `erpc.toml` dosyasını yazar ve kodunun hiçbir kısmını değiştirmez.

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

## İçe aktarın ve dağıtın

Uygulama, bugün systemd veya Docker altında çalışan bir bot ya da başka bir dilde yazılmış bir servis olabilir. `import`, uygulamanın dizinini okur ve dizinin tarif ettiği `erpc.toml` dosyasını yazar. Uygulamaya başka hiçbir şey yazılmaz, içindeki hiçbir şey çalıştırılmaz ve kodu değiştirilmez. erpc, `init` komutunda olduğu gibi, uygulamayı kendi listesine ekler.

```bash
cd my-bot                                   # a Cargo package
erpc worker import                          # writes erpc.toml from what is there
erpc worker check                           # what it describes, and what is missing
erpc worker deploy                          # your VPS, or a new hourly one

cd my-go-service && make linux              # any other toolchain: build the Linux binary your way
erpc worker import --binary dist/service --port 8080 --health /healthz
erpc worker deploy
```

- **Bir Cargo paketi**, `init` ile oluşturulan bir uygulama gibi `cargo build --release` ile derlenir. `--name` başka bir ad vermedikçe uygulama, paketin adını alır; paketin birden çok binary'si olduğunda `--bin` binary'yi seçer. Bir workspace kökü reddedilir: `import` komutunu pakete yöneltin.
- **Herhangi bir yerde, herhangi bir dilde derlenmiş bir Linux binary'si** de `--binary <PATH>` ile aynı şekilde dağıtılır ve olduğu gibi gönderilir. erpc, binary'nin başlığını okur ve bir sunucunun çalıştıramayacağı bir binary'yi reddeder: bir macOS veya Windows binary'si, bir betik, paylaşılan bir kütüphane, yarıda kesilmiş bir dosya ya da `build.target` dışında bir mimari için derlenmiş bir binary. Binary statik olmalı ya da yükleyicisi olağan yolda bulunan glibc'ye bağlanmış olmalıdır. Binary uygulamanın bir dosyasıdır: bu ad altında, uygulamanın dizininin dışına çıkan bir link reddedilir. Kullanılamaz bir binary'de dağıtım, bir sunucu satın alınmadan önce durur. Bir değişikliği taşıması gereken bir dağıtımdan önce binary'yi yeniden derleyin.

## import neleri okur

| Dizinde | `import` bununla ne yapar |
| --- | --- |
| `.env.example` ve benzeri örnek dosyalar | Her ad, bir ayar olabiliyorsa ayar olur: büyük harf, rakam ve `_` dışında karakter içeren ya da rakamla başlayan bir ad veya erpc'nin ya da sunucunun kendisinin ayarladığı bir ad (`ERPC_WORKER_…`, `LD_…`) dışarıda bırakılır. Düz bir ad, örnekteki değeriyle `[vars]` içine girer. Adından gizli bir değer gibi görünen ya da değeri bir kimlik bilgisi taşıyan bir ad, onu saklayacak komutla birlikte belirtilir ve değeri kopyalanmaz |
| `.env` | Bağlantı noktası numarası dışında yalnızca adlar okunur |
| `PORT`, `API_PORT`, bir Dockerfile'daki `EXPOSE` | `--port` vermedikçe `run.port`. `--health <PATH>`, bu bağlantı noktasında sağlık kontrolünü ekler |
| `GRPC_ENDPOINT`, `SHREDS_ENDPOINT` ve bir veri hattının sağladığı diğer ayarlar | `[vars]` dışında bırakılır: bunları `deploy` üzerindeki hattın bayrağı ayarlar |
| `wallet.json`, `id.json`, `*keypair.json` | Anahtarı erpc worker'ın okuduğu yerde saklayıp dosyayı silen `erpc worker key import <FILE> --wipe` komutuyla birlikte belirtilir |
| Redis veya PostgreSQL içeren bir compose dosyası | `[services]`; böylece `deploy` bunları sunucuya kurar |
| `Dockerfile`, compose dosyasının kendisi | Uygulamayı çalıştırmak için kullanılmaz: erpc worker binary'yi sıkılaştırılmış bir systemd birimi altında kendisi çalıştırır |

`import --chain`, uygulamanın hangi zincir için olduğunu belirtir; varsayılan `solana` zinciridir.

## import bir dizini nasıl okur

Dizin bir dakika önce klonladığınız bir dizin olabilir; bu yüzden `import` onu dikkatle okur.

- **`erpc.toml` yeni oluşturulur.** O yolda herhangi bir şey varsa `import` yazmayı reddeder: hiçbir zaman bir dosyanın üzerine ya da bir link üzerinden yazmaz.
- **Dizinin içindeki normal dosyaları, her biri en fazla 1 MiB olmak üzere okur.** Dizinin dışına çıkan bir link, bir pipe, bir aygıt, daha büyük bir dosya ve UTF-8 olmayan bir dosya okunmaz ve her biri bildirilir.
- **Gizli değer saydığı hiçbir değer kopyalanmaz.** Kimlik bilgilerini biçimlerine göre arar; bu yüzden bu kontrol bir kanıt değil, bir süzgeçtir: tanımadığı bir biçimdeki gizli değer, herhangi bir değer gibi kopyalanır. `erpc.toml` dosyasını commit etmeden önce okumak size düşer.
- **`erpc worker check`, `import` komutunun geri tuttuğundan daha az türde uyarı verir.** `[vars]` altındaki, yolunda anahtar bulunan bir RPC URL'si ya da bir kurtarma ifadesi hakkında hiçbir şey söylemez: bunları `erpc worker secret put` ile saklayın.

## Uygulamanızın sunucuda bulduğu ortam

- **Ayarlar, `[vars]` ve `[secrets]` için aynı şekilde, ortam değişkenleri olarak gelir.** Sunucuda `.env` yoktur ve bir dotenv kütüphanesiyle `.env` dosyası okuyan bir uygulama çalışmaya devam eder.
- **Uygulamanın kendi dizini salt okunurdur.** Yazdığı dosyalar, `ERPC_WORKER_STATE_DIR` değişkeninin belirttiği dizinin (aynı zamanda `HOME` dizini) altına gider; bu dizini bir dağıtım korur ve `erpc worker backup` yedekler.
- **Trading anahtarı bir dosyada değil, bir pipe üzerinden gelir:** uygulama başladığında bir kez, `ERPC_WORKER_KEY_FD` değişkeninin belirttiği dosya tanımlayıcısında 64 bayt olarak gelir; açık anahtar ise `ERPC_WORKER_PUBKEY` içindedir. Bir anahtar dosyası okuyan bir uygulamada değiştirilecek olan, o tek okumadır; pumpfun şablonunun `src/wallet.rs` dosyası bunu gösterir.
- **Uygulama tek bir binary ve `run.files` listesindeki dosyalardan oluşur.** Çalışma zamanında açtığı başka her şeyin bu listede olması gerekir.

## Sonraki adımlar

- [Anahtarlar ve gizli değerler](https://erpc.global/tr/doc/erpc-cli/worker-secrets/): `import` komutunun geri tuttuğu ayarları ve trading anahtarını saklayın.
- [Güvenlik duvarı ve WAF](https://erpc.global/tr/doc/erpc-cli/worker-firewall-and-waf/): Uygulamaya kimin erişebileceğini seçin.
- [Worker kılavuzu](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md): `import` komutunun okuduğu her dosya ve aradığı kimlik bilgisi biçimleri.
