---
title: "Deploy aplikasi yang sudah Anda miliki dengan erpc worker import"
description: "erpc worker import membaca direktori aplikasi dan menulis erpc.toml, sehingga package Cargo atau biner Linux dalam bahasa apa pun di-deploy tanpa mengubah kode."
canonical: "https://erpc.global/id/doc/erpc-cli/worker-import/"
locale: "id"
---

# Deploy aplikasi yang sudah Anda miliki dengan erpc worker import

`erpc worker import` mengambil aplikasi yang sudah Anda miliki, apa adanya. Perintah ini menulis `erpc.toml` milik aplikasi dan tidak mengubah kodenya sama sekali.

Halaman ini menjelaskan ERPC CLI `v0.1.0-rc.4`, versi pra-rilis.

## Impor dan deploy

Aplikasi tersebut bisa berupa bot yang saat ini berjalan di bawah systemd atau Docker, atau layanan dalam bahasa lain. `import` membaca direktori aplikasi dan menulis `erpc.toml` yang digambarkan oleh direktori tersebut. Tidak ada hal lain yang ditulis di aplikasi, tidak ada yang dijalankan di dalamnya, dan kodenya tidak diubah. erpc menambahkan aplikasi ke daftarnya sendiri, seperti yang dilakukan `init`.

```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
```

- **Package Cargo** di-build dengan `cargo build --release`, sama seperti aplikasi yang dibuat oleh `init`. Aplikasi dinamai sesuai package kecuali `--name` menentukan lain, dan `--bin` memilih biner jika package memiliki beberapa biner. Root workspace ditolak: arahkan `import` ke package-nya.
- **Biner Linux yang di-build di mana saja, dalam bahasa apa pun,** di-deploy dengan cara yang sama menggunakan `--binary <PATH>`, dan dikirim apa adanya. erpc membaca header-nya dan menolak biner yang tidak dapat dijalankan server: biner macOS atau Windows, skrip, shared library, file yang terpotong, atau arsitektur selain `build.target`. Biner harus statis, atau di-link ke glibc dengan loader-nya di path yang biasa. Biner ini adalah file milik aplikasi: link dengan nama tersebut yang mengarah keluar dari direktori aplikasi ditolak. Jika biner tidak dapat dipakai, deploy berhenti sebelum server dibeli. Build ulang biner sebelum deploy yang dimaksudkan untuk membawa perubahan.

## Yang dibaca import

| Di direktori | Yang dilakukan `import` dengannya |
| --- | --- |
| `.env.example` dan file contoh serupa | Setiap nama menjadi pengaturan jika memungkinkan: nama yang tidak terdiri dari huruf kapital, angka, dan `_` (tidak diawali angka), atau nama yang ditetapkan sendiri oleh erpc atau server (`ERPC_WORKER_…`, `LD_…`), tidak dimasukkan. Nama biasa masuk ke `[vars]` dengan nilai dari contoh. Nama yang tampak seperti secret dari namanya, atau yang nilainya berisi kredensial, disebutkan beserta perintah yang menyimpannya, dan nilainya tidak disalin |
| `.env` | Hanya nama yang dibaca, kecuali nomor port |
| `PORT`, `API_PORT`, `EXPOSE` dari Dockerfile | `run.port`, kecuali `--port` menentukannya. `--health <PATH>` menambahkan health check di port tersebut |
| `GRPC_ENDPOINT`, `SHREDS_ENDPOINT`, dan pengaturan lain yang disediakan oleh line data | Tidak dimasukkan ke `[vars]`: flag line tersebut pada `deploy` yang menetapkannya |
| `wallet.json`, `id.json`, `*keypair.json` | Disebutkan, beserta `erpc worker key import <FILE> --wipe`, yang menyimpan kunci di tempat erpc worker membacanya, lalu menghapus bersih file tersebut |
| File compose dengan Redis atau PostgreSQL | `[services]`, sehingga `deploy` memasangnya di server |
| `Dockerfile`, file compose itu sendiri | Tidak dipakai untuk menjalankan aplikasi: erpc worker menjalankan biner itu sendiri, di bawah unit systemd yang diperketat |

`import --chain` menyebutkan chain tujuan aplikasi, `solana` secara default.

## Cara import membaca direktori

Direktori tersebut mungkin baru Anda clone semenit yang lalu, jadi `import` membacanya dengan hati-hati.

- **`erpc.toml` dibuat baru.** Jika sudah ada sesuatu di path tersebut, `import` menolak: perintah ini tidak pernah menimpa file atau menulis melalui link.
- **Perintah ini membaca file biasa di dalam direktori, hingga 1 MiB per file.** Link yang mengarah keluar dari direktori, pipe, device, file yang lebih besar, dan file yang bukan UTF-8 tidak dibaca, dan masing-masing disebutkan.
- **Tidak satu pun nilai yang dianggapnya secret disalin.** Perintah ini mencari kredensial berdasarkan bentuknya, jadi pemeriksaan ini adalah jaring pengaman, bukan bukti: secret dalam bentuk yang tidak dikenalinya disalin seperti nilai lainnya. Andalah yang perlu membaca `erpc.toml` sebelum meng-commit-nya.
- **`erpc worker check` memperingatkan lebih sedikit jenis daripada yang ditahan oleh `import`.** Perintah ini tidak memperingatkan apa pun tentang URL RPC dengan kunci di path-nya, atau tentang frasa pemulihan, di bawah `[vars]`: simpan keduanya dengan `erpc worker secret put`.

## Yang ditemukan aplikasi Anda di server

- **Pengaturan diterima sebagai variabel lingkungan**, baik `[vars]` maupun `[secrets]`. Tidak ada `.env` di server, dan aplikasi yang membaca file `.env` dengan library dotenv tetap berfungsi.
- **Direktori aplikasi itu sendiri bersifat read-only.** File yang ditulisnya disimpan di bawah direktori yang disebut oleh `ERPC_WORKER_STATE_DIR` (juga `HOME` miliknya), yang dipertahankan saat deploy dan di-backup oleh `erpc worker backup`.
- **Kunci trading tiba melalui pipe, bukan di file:** 64 byte pada file descriptor yang disebut oleh `ERPC_WORKER_KEY_FD`, sekali, saat aplikasi mulai berjalan, dengan kunci publik di `ERPC_WORKER_PUBKEY`. Aplikasi yang membaca file kunci perlu mengubah satu pembacaan tersebut; `src/wallet.rs` milik template pumpfun menunjukkan caranya.
- **Aplikasi ini terdiri dari satu biner dan file yang dicantumkan di `run.files`.** Apa pun lainnya yang dibukanya saat berjalan harus ada di daftar tersebut.

## Langkah Selanjutnya

- [Kunci dan secret](https://erpc.global/id/doc/erpc-cli/worker-secrets/): Simpan pengaturan yang ditahan oleh `import`, serta kunci trading.
- [Firewall dan WAF](https://erpc.global/id/doc/erpc-cli/worker-firewall-and-waf/): Tentukan siapa yang boleh menjangkau aplikasi.
- [Panduan worker](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md): Setiap file yang dibaca oleh `import`, dan bentuk kredensial yang dicarinya.
