Déployer votre première application sur un serveur avec erpc worker
Créez une petite API HTTP en Rust avec
erpc worker, exécutez-la sur votre machine et déployez-la sur un serveur en quatre commandes.Cette page décrit ERPC CLI
v0.1.0-rc.4, une préversion.erpc worker (alias erpc w) compile votre application en binaire Linux natif et l'exécute sur un ERPC VPS, sur un nouveau VPS horaire ou sur votre propre serveur, sous une unité systemd durcie, sans Docker ni runtime intermédiaire.Une release qui ne démarre pas saine est ramenée à la release précédente, et plusieurs applications peuvent partager un même serveur, chacune sur son propre port. Tout ce qui concerne l'application se trouve dans
erpc.toml, à sa racine ; ce fichier ne contient aucun secret et peut être commité.Prérequis
- Un compte ERPC, connecté sur cette machine avec
erpc login(Connexion et clés). - Des ERPC Credits, pour un nouveau VPS horaire. Un produit horaire est payé en ERPC Credits, achetés à l'avance, et un démarrage que le crédit ne couvre pas est refusé. Les prix figurent sur la page Tarifs et dans l'ERPC Web Dashboard.
- Une clé SSH sur cette machine :
ssh-keygen -t ed25519, ouerpc config set ssh_key <path>.pubpour une clé que vous avez déjà. - Un moyen de compiler pour Linux. Depuis un Mac ou Windows : la cible Rust du serveur (
rustup target add x86_64-unknown-linux-gnu),zig(brew install zigsur macOS) etcargo-zigbuild(cargo install cargo-zigbuild --locked). Depuis une machine Linux du même type que le serveur (x86-64 pour tous les serveurs ERPC), cargo suffit. Sans les outils de compilation croisée, l'application est compilée avec la chaîne d'outils de cette machine, et le binaire a alors besoin de la glibc avec laquelle il a été lié, quebuildetdeployindiquent. Avec ces outils, il est compilé pour glibc 2.31 et les versions ultérieures.
Déployer HelloWorld
HelloWorld est une petite API HTTP en Rust qui n'a besoin d'aucune clé, d'aucun secret ni d'aucune ligne de données. Elle répond à
GET /, GET /hello/{name} et GET /healthz.bash
initcrée l'application dans./hello-world, avec sonerpc.toml.runcompile l'application et l'exécute sur votre machine, pour que vous puissiez d'abord l'appeler avec curl.deployla compile pour le serveur et la déploie. Tout ce qui coûte de l'argent est d'abord affiché avec son prix horaire, votre solde et la durée que couvre le crédit, et, dans un terminal, ne démarre qu'après un oui.apiappelle l'API de l'application déployée depuis votre machine, l'API restant sur le loopback du serveur.
erpc worker check liste ce qui manque à l'application, et deploy refuse avant d'acheter quoi que ce soit s'il manque quelque chose. erpc worker build lance la compilation seule : c'est le moyen de voir une compilation échouer avant l'achat d'un serveur.Choisir un modèle
erpc worker init ne demande qu'une chose : quoi créer, à choisir avec les flèches.- HelloWorld est celui par lequel commencer.
- HFT et pumpfun-bot sont tous deux créés à partir du modèle pumpfun pour l'instant : un bot de trading pump.fun (PumpSwap) porté depuis ValidatorsDAO/solana-stream.
--template hft (ou helloworld, pumpfun-bot, ou un identifiant de modèle) saute le sélecteur, et --name donne son nom à l'application. Sans nom, l'application prend le nom du choix (hello-world, hft-bot, pumpfun-bot). Lorsqu'un répertoire de ce nom existe, une personne qui choisit obtient -2, -3 et ainsi de suite, et un script (--yes, --json, sans terminal) obtient une erreur. Sans personne à qui demander et sans --template, c'est HelloWorld qui est créé.Un bot de trading a besoin d'une clé et de quelques paramètres avant de s'exécuter. Dans l'ordre :
bash
init affiche cet ordre pour l'application qu'il a créée. Clés et secrets explique où la clé et les secrets sont conservés.Choisir le serveur
deploy utilise le premier des choix suivants :- le serveur que
[env.<name>]de l'application désigne déjà ; --vps <id>, un ERPC VPS de votre compte ;--new-vps, le VPS horaire le moins cher dans la région la plus proche de cette machine d'après son fuseau horaire (--regionet--planen décident autrement) ;--host <address>, votre propre serveur : Ubuntu ou Debian avec systemd, nftables,sudoet Python 3 dans/usr/bin/python3, accessible en root ou via un utilisateur disposant de sudo sans mot de passe ;- sinon, dans un terminal, une liste des VPS de votre compte en cours d'exécution, avec "start a new one" à la fin.
Sur votre propre serveur, le pare-feu du worker ignore toute connexion entrante sauf SSH et le port de l'application ; un serveur qui sert autre chose n'est donc pas celui à utiliser.
Déployer sans personne devant le terminal
Un script, ou un agent comme
erpc ai, n'a pas de terminal où répondre. Deux options lui permettent malgré tout de faire le travail :bash
--yesrépond à la demande de prix de chaque produit horaire que nomme la commande (--new-vps,--grpc,--shreds,--unlimited). Il répond aussi à la première connexion à un serveur qu'erpc n'a pas encore passé en connexion par clé uniquement, qu'il soit nouveau ou désigné avec--vps <ID>: erpc se connecte une fois avec le mot de passe du serveur, y installe votre clé et désactive les connexions par mot de passe. Sans--yeset sans terminal, un démarrage est refusé avant tout achat, avec le statut de sortie 3.- Choisir parmi vos serveurs nécessite toujours une personne. Désignez le serveur avec
--new-vps,--vps <ID>ou--host. --preparefait tout ce qui ne nécessite ni la clé de trading ni un secret, et ne démarre, n'arrête ni ne redémarre rien. Leerpc worker deploysuivant, dans un terminal, transmet la clé et les secrets et démarre l'application. La clé de trading n'est lue que pour une personne devant le terminal.
Connecter votre application à gRPC, Shreds et Unlimited RPC
Les lignes horaires d'ERPC admettent le serveur d'après son adresse et n'acceptent aucun token. Chaque ligne est démarrée pour le serveur par sa propre option de
deploy, et l'application reçoit son endpoint sous forme de paramètre :- Chaque ligne est la moins chère de sa famille, sauf si
--grpc-plan,--shreds-planou--unlimited-planen désigne une. - L'Unlimited RPC s'exécute sur un serveur dédié dont la mise en place prend jusqu'à 45 minutes. Il sert
sendTransactionet une courte liste de lectures, mais pasgetProgramAccountsnigetTokenAccountsByOwner. Son endpoint est en HTTP simple (sans TLS) et n'admet que l'adresse en liste blanche.
Lignes pour une exécution sur votre machine
erpc worker run accepte aussi --grpc et --shreds, pour essayer l'application ici sur des données réelles avant qu'elle parte sur un serveur.- L'adresse : les lignes admettent l'adresse IPv4 publique de cette machine, que vous passez avec
--ip. erpc ne la détermine pas lui-même. - L'achat : une nouvelle ligne n'est achetée que dans un terminal, après l'affichage de son prix.
runn'a pas de--yes. - La fin : à la fin de l'exécution, il est mis fin à chaque ligne horaire après confirmation.
--keep-linesles conserve, toujours facturées. Si l'exécution se termine autrement (terminal fermé, second Ctrl-C), les lignes restent et sont facturées. - Les chiffres : ce que l'application mesure ici inclut la distance entre cette machine et la ligne ; l'application y est donc plus lente que sur un serveur proche de la ligne.
Prochaines étapes
- Importer une application : déployez une application que vous avez déjà, dans n'importe quel langage.
- Clés et secrets : gardez une clé de trading et des secrets hors du disque du serveur.
- Pare-feu et WAF : placez une API publique derrière un WAF.
- Statut et facturation : surveillez l'application et voyez ce qu'elle coûte à l'heure.






