Een app draaien, volgen en betalen met erpc worker

erpc worker status toont of uw app draait en wat die per uur kost. Elke start toont eerst zijn prijs, en erpc worker delete --release-server beëindigt de gRPC, Shreds en Unlimited RPC die de app per uur gebruikt, en daarna zijn server per uur.
Deze pagina beschrijft ERPC CLI v0.1.0-rc.4, een pre-release.

Een app controleren

$ 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 toont of de app vergrendeld is of draait, welke release, en sinds wanneer. Als u bent ingelogd, toont het ook wat de omgeving per uur kost, elk item met de prijs die aan uw account ervoor in rekening wordt gebracht, en het credit van uw account met hoelang dat meegaat. --json bevat hetzelfde onder hourly.charged.
Van een item dat niet tussen de in rekening gebrachte posten van het account staat, wordt gezegd dat het er niet tussen staat, niet dat het beëindigd is, omdat die lijst een minuut achter kan lopen op een start. Zonder sessie, of als de in rekening gebrachte posten van uw account niet kunnen worden gelezen, zegt status wat er is vastgelegd.

De app bedienen

CommandoWat het doet
erpc worker logs -n 200, logs -fHet log van de app en van de agent. Een stuurteken in een regel wordt afgedrukt als ?
erpc worker startDraait de app en stuurt de sleutel als de worker vergrendeld is
erpc worker stop, stop --lockStopt hem; --lock haalt ook de sleutel uit het geheugen
erpc worker restartStopt hem en start hem opnieuw
erpc worker releasesDe releases die op de server worden bewaard (deploy.keep_releases)
erpc worker rollback, rollback --to <release>Gaat terug naar de vorige release, of naar de genoemde. Wordt geweigerd, waarbij de release die in gebruik is ongewijzigd blijft, als de health-checkpoort van die release nu van een andere draaiende worker is
erpc worker api <PATH>Leest de API van de app vanaf deze machine, terwijl de API op de loopback van de server blijft (-X POST, -d '{...}' voor een wijziging)
erpc worker trades [--profit]De trades van de app op zijn server
erpc worker listDe apps op deze machine en waar elk is uitgerold; --prune haalt de apps weg waarvan erpc.toml verdwenen is
De API_TOKEN van de app wordt hier gelezen en bereikt de server via standaardinvoer, op geen enkele commandoregel en in geen enkel journal. Elk worker-commando accepteert --env <name> (standaard default) en --json, behalve dat secret unlock en secret lock, die over de keystore van deze machine gaan en niet over een app, geen --env accepteren. Een commando dat u van waar dan ook draait, vindt zijn app aan de hand van de naam waaronder erpc die kent; secret put, secret rm, key import, firewall allow en firewall deny nemen de app alleen aan via --dir.

Hoe kosten per uur werken

  • Elke start toont eerst zijn prijs. Aan een terminal gebeurt een start pas na een ja; met --yes is de commandoregel die noemt wat er moet starten het ja.
  • Een product per uur wordt betaald uit ERPC Credit, dat vooraf wordt gekocht, en een start die het credit niet dekt, wordt geweigerd. De prijzen staan op de pagina Prijzen en in het ERPC Web Dashboard.
  • Een nieuwe VPS wordt vastgelegd zodra hij een naam heeft, voordat hij klaar is. De volgende uitrol neemt hem in gebruik in plaats van er nog een te kopen.
  • Voor deploy wordt een start die geen antwoord kreeg opnieuw verzonden, nooit als een nieuwe. De verzoeksleutel blijft vastgelegd ([env.<name>.starting]), zodat het opnieuw draaien van hetzelfde commando hetzelfde verzoek verzendt. Na sommige antwoorden blijft hij staan tot u hem met de hand verwijdert (Een aankoop die erpc niet kan vastleggen). erpc worker run legt niets vast, dus de volgende run doet een nieuw verzoek.
  • Rol één omgeving tegelijk uit. Twee uitrollen van dezelfde omgeving die tegelijk starten, kunnen er twee kopen, en dat wordt niet ondersteund.
  • Of een lijn nog bestaat, wordt bepaald door wat aan het account in rekening wordt gebracht. Een lijn die niet per uur wordt gefactureerd, wordt nooit door erpc beëindigd: beëindig die in het dashboard.

Een app verwijderen

erpc worker delete verwijdert de worker. erpc worker delete --release-server beëindigt ook zijn lijnen en daarna zijn server per uur. Wat niet kon worden beëindigd, blijft vastgelegd, en een lijn die niet per uur wordt gefactureerd, wordt genoemd, zodat u die in het dashboard kunt beëindigen.
  • Een gewone delete weigert een VPS die is gekocht en nooit is bereikt, omdat hij die zou vergeten terwijl er kosten voor in rekening worden gebracht. Een gewone delete van een bereikte VPS per uur haalt de registratie weg terwijl er nog kosten voor in rekening worden gebracht, en waarschuwt daarvoor.
  • --forget probeert een server die niet meer bereikbaar is niet te bereiken, en --forget-line <id> haalt de registratie weg van een lijn die buiten erpc is beëindigd.

RPC-latentie meten vanaf de server

erpc worker bench meet de duur van RPC-aanroepen vanaf de server van de omgeving: de shared RPC van ERPC, zijn Unlimited RPC, en elke andere, naast elkaar. De agent op de server meet de duur van elke aanroep, dus de cijfers zijn wat de app krijgt.
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 accepteert getSlot, getBlockHeight, getLatestBlockhash of getHealth.
  • --no-shared laat de shared RPC weg. Een waarde voor --url kan de URL zelf zijn, een verwijzing op://…, keychain:… of keystore:… (naar de plek waar een URL met een sleutel erin is bewaard; nooit naar het item van de tradingsleutel, dat wordt geweigerd), of - (gelezen via standaardinvoer, of gevraagd en onzichtbaar getypt). Meer dan zes endpoints worden geweigerd.
  • De bench drukt p50, p90, p99, min en max af, mislukte aanroepen met de eerste reden, en hoeveel slots elk antwoord achterliep op het meest recente in dezelfde ronde.
  • Sleutels bereiken de server alleen via standaardinvoer, en de tabel toont schema, host en poort.

Een back-up maken van de toestand van de app

erpc worker backup on maakt elke dag een back-up van de toestand van de app naar ERPC Global Storage, versleuteld door restic, op --at in de tijd van de server en binnen 30 minuten daarna. Er is een opslagabonnement nodig (erpc storage buy 5).
  • Wat er in de back-up gaat, is de toestand van de app, /var/lib/private/erpc-worker-<id>. De releases niet, omdat een uitrol die terugzet. Gegevens van Redis en PostgreSQL vallen er niet onder.
  • De server kan geen snapshots verwijderen. Hij heeft nooit de erpc-sessie, de beheerderssleutel van het account of het masterwachtwoord ervan.
  • Een overgenomen server kan de snapshots van elke machine in het account lezen, ook die van deze machine; de sleutel van de repository, die restic nooit wijzigt, na off behouden; snapshots toevoegen onder de naam van een andere machine, dus controleer daarna wat restore latest kiest; en de opslag van het account vullen, wat de back-ups van elke machine stopt. erpc worker backup off trekt eerst de toegangssleutel van de server in, of de server nu antwoordt of niet.
  • restic kopieert bestanden zoals ze zijn terwijl de worker draait, dus een database heeft mogelijk een eigen dump nodig om consistent te herstellen. Een run die werd gemist terwijl de server uit stond, draait wanneer hij weer aan is.
  • erpc worker backup off, status en now stoppen de back-up, rapporteren erover en voeren hem uit. De snapshots blijven na off bestaan, en erpc backup prune --host dunt oude snapshots uit.
Herstel vanaf deze machine, na erpc backup init daarop:
bash
erpc backup restore latest --from-host erpc-worker-<id>-<tag> --path /var/lib/private/erpc-worker-<id> --target ./restored

Meerdere omgevingen en machines

  • Meerdere workers op één server draaien elk als hun eigen unit, delen de firewalltabel van de server, en elk opent alleen zijn eigen poort.
  • Eén app kan meerdere omgevingen hebben ([env.staging], [env.prod]), elk met een eigen server en eigen lijnen.
  • Een omgeving kan haar servergegevens in 1Password bewaren in plaats van in erpc.toml. Dan kan elke machine die is ingelogd op die kluis, met de repository van de app, elk commando draaien; voor verwijzingen keychain: en keystore: in zo'n app wordt gewaarschuwd, omdat een andere machine ze niet kan lezen. Een nieuwe omgeving bewaart haar gegevens in 1Password wanneer erpc login de sessie daar bewaart; deploy --vault <vault-id> noemt een andere kluis, en deploy --inline bewaart de gegevens in erpc.toml.