手持ちのアプリを erpc worker import でデプロイする
erpc worker import は、手持ちのアプリをそのまま取り込みます。アプリの erpc.toml を書くだけで、コードには一切手を入れません。このページは、プレリリースの ERPC CLI
v0.1.0-rc.4 について説明しています。取り込んでデプロイする
取り込めるのは、今 systemd や Docker の下で動いている bot でも、別の言語で書いたサービスでもかまいません。
import はアプリのディレクトリを読み、そこから分かる内容で erpc.toml を書きます。アプリの中にほかのものは書かず、中のものを実行せず、コードも変えません。erpc は、init のときと同じように、そのアプリを自分の一覧に加えます。bash
- Cargo パッケージは、
initで作ったアプリと同じくcargo build --releaseでビルドされます。アプリの名前は、--nameで別の名前を指定しない限りパッケージの名前になり、パッケージに複数のバイナリがあるときは--binで選びます。ワークスペースのルートは受け付けないので、importにはパッケージを指定してください。 - どこで、どの言語でビルドした Linux バイナリでも、
--binary <PATH>を付ければ同じようにデプロイでき、そのままの形で送られます。erpc はバイナリのヘッダーを読み、サーバーで動かせないものは受け付けません。macOS や Windows のバイナリ、スクリプト、共有ライブラリ、途中で切れたファイル、build.targetと違うアーキテクチャのものです。バイナリは静的リンクか、通常の場所にローダーがある glibc とリンクしたものでなければなりません。バイナリはアプリのファイルとして扱われ、その名前でアプリのディレクトリの外へつながるリンクは受け付けません。使えないバイナリがあれば、デプロイはサーバーを購入する前に止まります。変更を載せるデプロイの前には、バイナリをビルドし直してください。
import が読むもの
import --chain でアプリが対象とするチェーンを指定します。既定は solana です。import がディレクトリを読む方法
ディレクトリは、ついさっきクローンしたものかもしれません。そのため
import は注意して読みます。erpc.tomlは新しく作ります。 その場所に何かがあれば、importは止まります。既存のファイルを上書きすることも、リンクを通して書くこともありません。- 読むのはディレクトリの中の通常のファイルで、1 つ 1 MiB まで。 ディレクトリの外へつながるリンク、パイプ、デバイス、それより大きいファイル、UTF-8 でないファイルは読まず、それぞれ読まなかったことを伝えます。
- シークレットと見なした値は写しません。 資格情報は形で探すので、この検査は網であって証明ではありません。知らない形のシークレットは、ほかの値と同じように写されます。
erpc.tomlはコミットする前に自分で読んでください。 erpc worker checkが警告する種類は、importが控える種類より少なくなります。[vars]の下にある、パスに鍵を含む RPC の URL や、リカバリーフレーズについては何も言いません。これらはerpc worker secret putで保管してください。
サーバーでアプリが受け取るもの
- 設定は環境変数として届きます。
[vars]も[secrets]も同じです。サーバーに.envはありませんが、dotenv ライブラリで.envファイルを読むアプリもそのまま動きます。 - アプリ自身のディレクトリは読み取り専用です。 アプリが書くファイルは、
ERPC_WORKER_STATE_DIRが示すディレクトリ(アプリのHOMEでもあります)の下に置きます。このディレクトリはデプロイしても残り、erpc worker backupがバックアップします。 - 取引用の鍵はファイルではなくパイプで届きます。 アプリの起動時に 1 回だけ、
ERPC_WORKER_KEY_FDが示すファイルディスクリプタに 64 バイトで届き、公開鍵はERPC_WORKER_PUBKEYに入ります。鍵ファイルを読むアプリは、その読み出し 1 か所を変える必要があります。変え方は pumpfun テンプレートのsrc/wallet.rsにあります。 - アプリは 1 つのバイナリと、
run.filesに並べたファイルだけでできています。 実行中に開くほかのものは、すべてその一覧に入れておく必要があります。
次のステップ
- 鍵とシークレット:
importが控えた設定と、取引用の鍵を保管します。 - ファイアウォールと WAF: アプリに届いてよい相手を選びます。
- ワーカーのガイド:
importが読むファイルと、探す資格情報の形をすべて載せています。






