Jalankan, pantau, dan bayar aplikasi dengan erpc worker

erpc worker status menampilkan apakah aplikasi Anda berjalan dan berapa biayanya per jam. Setiap aktivasi menampilkan harganya lebih dulu, dan erpc worker delete --release-server mengakhiri gRPC, Shreds, dan Unlimited RPC yang dipakai aplikasi per jam, lalu server per jamnya.
Halaman ini menjelaskan ERPC CLI v0.1.0-rc.4, versi pra-rilis.

Memeriksa aplikasi

$ erpc worker status --env prod
api-prod on 203.0.113.10: running, release 20261101T093000Z-1a2b3c4d, pid 4217, up 2h 14m
  current 20261101T093000Z-1a2b3c4d, previous 20261028T171500Z-9f8e7d6c, 2 releases kept
  WAF: listening on port 8080, forwarding to 127.0.0.1:3000, since 2026-11-01T09:30:12Z; requests 5120, forwarded 5043, blocked 71, connections refused 12, app errors 6, addresses banned now 1
  `erpc worker delete --release-server --env prod` ends what this app is charged for.
status menampilkan apakah aplikasi terkunci atau berjalan, rilis yang mana, dan sejak kapan. Saat Anda sudah masuk, perintah ini juga menampilkan biaya per jam lingkungan tersebut, setiap item dengan harga yang ditagihkan ke akun Anda untuk item itu, serta kredit akun Anda beserta berapa lama kredit itu bertahan. --json memuat hal yang sama di bawah hourly.charged.
Item yang tidak ada di antara tagihan akun disebut tidak ada di antaranya, bukan disebut sudah berakhir, karena daftar itu bisa tertinggal satu menit dari sebuah aktivasi. Tanpa sesi, atau saat tagihan akun Anda tidak dapat dibaca, status menyebutkan apa yang tercatat.

Mengendalikan aplikasi

PerintahFungsinya
erpc worker logs -n 200, logs -fLog aplikasi dan log agen. Karakter kontrol di dalam baris dicetak sebagai ?
erpc worker startMenjalankan aplikasi, sambil mengirim kunci saat worker terkunci
erpc worker stop, stop --lockMenghentikannya; --lock juga menghapus kunci dari memori
erpc worker restartMenghentikan lalu menjalankannya lagi
erpc worker releasesRilis yang disimpan di server (deploy.keep_releases)
erpc worker rollback, rollback --to <release>Kembali ke rilis sebelumnya, atau ke rilis yang disebut. Ditolak, dengan rilis yang sedang dipakai dibiarkan seperti semula, jika port health check milik rilis itu sekarang dipakai worker lain yang sedang berjalan
erpc worker api <PATH>Membaca API aplikasi dari mesin ini, sementara API tetap di loopback server (-X POST, -d '{...}' untuk perubahan)
erpc worker trades [--profit]Trade aplikasi di server-nya
erpc worker listAplikasi di mesin ini dan tempat masing-masing di-deploy; --prune menghapus aplikasi yang erpc.toml-nya sudah tidak ada
API_TOKEN milik aplikasi dibaca di sini dan sampai ke server lewat standard input, tidak lewat command line mana pun dan tidak masuk ke journal mana pun. Setiap perintah worker menerima --env <name> (default default) dan --json, kecuali secret unlock dan secret lock, yang berkaitan dengan keystore mesin ini dan bukan dengan aplikasi, sehingga tidak menerima --env. Dijalankan dari mana saja, sebuah perintah menemukan aplikasinya lewat nama yang dikenal oleh erpc; secret put, secret rm, key import, firewall allow, dan firewall deny hanya menerima aplikasi lewat --dir.

Cara kerja biaya per jam

  • Setiap aktivasi menampilkan harganya lebih dulu. Di terminal, aktivasi hanya terjadi setelah jawaban "ya"; dengan --yes, command line yang menyebut apa yang akan diaktifkan itulah jawaban "ya"-nya.
  • Produk per jam dibayar dari ERPC Credit, yang dibeli sebelumnya, dan aktivasi yang biayanya tidak tercukupi oleh kredit akan ditolak. Harga tercantum di Harga dan di ERPC Web Dashboard.
  • VPS baru langsung tercatat begitu namanya disebut, sebelum VPS itu siap. Deploy berikutnya memakainya alih-alih membeli VPS lain.
  • Untuk deploy, aktivasi yang tidak mendapat jawaban dikirim ulang, tidak pernah sebagai aktivasi baru. Request key-nya tetap tercatat ([env.<name>.starting]), sehingga menjalankan perintah yang sama lagi mengirim request yang sama. Setelah beberapa jawaban tertentu, request key itu tetap ada sampai Anda menghapusnya secara manual (Pembelian yang tidak dapat dicatat oleh erpc). erpc worker run tidak menyimpan catatan, sehingga run berikutnya membuat request baru.
  • Deploy satu lingkungan dalam satu waktu. Dua deploy untuk lingkungan yang sama yang dimulai bersamaan bisa membeli dua, dan hal itu tidak didukung.
  • Apakah sebuah line masih ada ditentukan oleh apa yang ditagihkan ke akun. Line yang tidak ditagih per jam tidak pernah diakhiri oleh erpc: akhiri line itu di dashboard.

Menghapus aplikasi

erpc worker delete menghapus worker. erpc worker delete --release-server juga mengakhiri line-nya, lalu server per jamnya. Apa yang tidak dapat diakhiri tetap tercatat, dan line yang tidak ditagih per jam disebutkan namanya, untuk diakhiri di dashboard.
  • Delete biasa menolak VPS yang sudah dibeli tetapi belum pernah dijangkau, karena delete itu akan melupakannya padahal VPS itu masih ditagih. Delete biasa untuk VPS per jam yang sudah dijangkau menghapusnya dari catatan meskipun VPS itu masih ditagih, dan memberi peringatan tentang hal itu.
  • --forget tidak mencoba menjangkau server yang sudah tidak dapat dijangkau lagi, dan --forget-line <id> menghapus dari catatan line yang diakhiri di luar erpc.

Mengukur latensi RPC dari server

erpc worker bench mengukur waktu panggilan RPC dari server milik lingkungan tersebut: shared RPC milik ERPC, Unlimited RPC-nya, dan RPC lain mana pun, secara berdampingan. Agen di server mengukur waktu setiap panggilan, sehingga angkanya adalah apa yang didapat aplikasi.
bash
erpc worker bench                                  # getSlot: shared RPC vs the Unlimited RPC
erpc worker bench --rounds 300 --interval 150      # for a plan that limits calls per second
erpc worker bench --url other=op://<vault-id>/<item-id>/url   # another provider's RPC
  • --method menerima getSlot, getBlockHeight, getLatestBlockhash, atau getHealth.
  • --no-shared mengecualikan shared RPC. Nilai --url boleh berupa URL itu sendiri, referensi op://…, keychain:…, atau keystore:… (ke tempat disimpannya URL yang berisi kunci; tidak pernah ke entri kunci trading, yang akan ditolak), atau - (dibaca dari standard input, atau diminta lalu diketik tanpa ditampilkan). Lebih dari enam endpoint akan ditolak.
  • Bench mencetak p50, p90, p99, min, dan max, kegagalan beserta alasan pertamanya, dan berapa slot setiap jawaban tertinggal dari jawaban paling baru di ronde yang sama.
  • Kunci sampai ke server hanya lewat standard input, dan tabel menampilkan scheme, host, dan port.

Backup state aplikasi

erpc worker backup on mem-backup state aplikasi setiap hari ke ERPC Global Storage, dienkripsi oleh restic, pada --at menurut waktu server dan dalam 30 menit setelahnya. Diperlukan paket penyimpanan (erpc storage buy 5).
  • Yang di-backup adalah state aplikasi, /var/lib/private/erpc-worker-<id>. Rilis tidak di-backup, karena deploy memasangnya kembali. Data Redis dan PostgreSQL tidak tercakup.
  • Server tidak dapat menghapus snapshot. Server tidak pernah memegang sesi erpc, kunci admin akun, maupun kata sandi master-nya.
  • Server yang diambil alih dapat membaca snapshot semua mesin di akun, termasuk milik mesin ini; tetap memegang kunci repository, yang tidak pernah diubah oleh restic, setelah off; menambahkan snapshot dengan nama mesin lain, jadi setelah itu periksa apa yang dipilih restore latest; dan memenuhi penyimpanan akun, yang menghentikan backup semua mesin. erpc worker backup off mencabut access key server lebih dulu, baik server menjawab maupun tidak.
  • restic menyalin file apa adanya selagi worker berjalan, sehingga database mungkin memerlukan dump sendiri agar dapat dipulihkan dalam keadaan konsisten. Run yang terlewat selagi server mati akan berjalan saat server kembali menyala.
  • erpc worker backup off, status, dan now menghentikan, melaporkan, dan menjalankan backup. Snapshot tetap ada setelah off, dan erpc backup prune --host memangkas snapshot lama.
Pulihkan dari mesin ini, setelah menjalankan erpc backup init di mesin ini:
bash
erpc backup restore latest --from-host erpc-worker-<id>-<tag> --path /var/lib/private/erpc-worker-<id> --target ./restored

Beberapa lingkungan dan mesin

  • Beberapa worker di satu server masing-masing berjalan sebagai unit tersendiri, berbagi tabel firewall server, dan masing-masing hanya membuka port miliknya sendiri.
  • Satu aplikasi dapat memiliki beberapa lingkungan ([env.staging], [env.prod]), masing-masing dengan server dan line-nya sendiri.
  • Sebuah lingkungan dapat menyimpan data server-nya di 1Password, bukan di erpc.toml. Dengan begitu, mesin mana pun yang masuk ke vault tersebut, dengan repository aplikasi, dapat menjalankan setiap perintah; referensi keychain: dan keystore: di aplikasi seperti itu akan memunculkan peringatan, karena mesin lain tidak dapat membacanya. Lingkungan baru menyimpan datanya di 1Password jika erpc login menyimpan sesi di sana; deploy --vault <vault-id> menyebut vault lain, dan deploy --inline menyimpan data tersebut di erpc.toml.