Choisissez la plus petite surface de caisse qui corresponde à ce que vous avez déjà. Une demande de paiement est un lien que vous envoyez à quelqu'un — aucun site web requis, et la façon la plus rapide de facturer un client. Une application de point de vente transforme la même instance en caisse avec une liste de produits, ce qui fonctionne depuis un téléphone sur un étal de marché. Un bouton de paiement est un extrait de HTML pour un site statique. Un plugin de boutique ajoute Bitcoin comme moyen de paiement à une vraie vitrine, et reporte automatiquement le statut de la commande. Et l'API REST émet des factures, rapporte leur état et appelle un webhook quand l'une d'elles se règle, ce qui est l'intégration qui vieillit le mieux, car elle ne dépend de rien d'autre que de HTTP et d'un secret partagé.
Quel que soit votre choix, configurez le webhook, puis testez qu'il se déclenche. Une facture qui se règle et ne notifie jamais votre application est le mode de défaillance que personne ne détecte, parce que tout semble correct des deux côtés pris isolément : l'argent est arrivé, le client a vu une page de confirmation, et la commande reste non honorée. Envoyez-vous délibérément un webhook de facture réglée, confirmez que votre point de terminaison l'a reçu, et vérifiez la signature plutôt que de faire confiance à la charge utile — ce point de terminaison est public, et n'importe qui peut y poster.
Une sauvegarde nocturne n'est pas un chemin de restauration pour Lightning
C'est le seul avertissement de cette page qui peut vous coûter de l'argent plutôt que du temps, et la documentation du projet elle-même le dit dans les mêmes mots : un vieil état de canal Lightning est toxique. Restaurer la copie de la nuit dernière d'une base de données de canaux et laisser le nœud tourner revient à diffuser un état que votre contrepartie a déjà remplacé — ce que le protocole traite comme une tentative de triche, et punit en lui attribuant la totalité du solde du canal. L'archive convient donc à la base de données de la boutique, à la configuration et à l'historique des factures, mais ce n'est pas un plan de récupération pour les canaux. Copiez la sauvegarde statique de canal hors de la machine en continu, gardez la plus récente, et si jamais vous restaurez un serveur entier à partir d'une archive, faites-le en sachant que le côté Lightning a besoin de la procédure de récupération documentée plutôt que d'une restauration directe.
Cela étant compris, la routine est courte. Le déploiement fournit un script de sauvegarde qui archive les volumes et exporte la base de données tout en sautant les données de la blockchain, et il accepte une phrase de passe pour que l'archive soit chiffrée avant de quitter la machine. Exécutez-le sur une minuterie, puis poussez le résultat vers une machine dans une juridiction différente, de la façon que décrit le guide des sauvegardes — un dépôt append-only vaut les dix minutes supplémentaires ici, parce qu'un serveur de paiement compromis ne devrait pas pouvoir effacer l'enregistrement de ce qu'il a traité.
cd ~/BTCPayServer/btcpayserver-docker
export BTCPAY_BACKUP_PASSPHRASE="a long passphrase you keep elsewhere"
./btcpay-backup.sh # archives volumes + database, skips the chain
# then ship the archive offsite, and keep the channel backup separately
Les mises à jour viennent ensuite, et une machine de paiement est la seule machine où « la mettre à jour plus tard, délibérément » est la bonne politique. Le déploiement a son propre script de mise à jour qui régénère le fichier compose et tire les nouvelles images ; exécutez-le quand vous avez lu les notes de version, pas quand une tâche cron en décide ainsi. Prenez d'abord l'archive. Montez d'une version à la fois. Et gardez la version précédente notée quelque part, parce qu'un retour en arrière que vous pouvez faire en une minute est ce qui rend le tout peu risqué.
./btcpay-update.sh # deliberate, after reading the release notes
df -h / # the check that should be an alert, not a habit
Enfin, réglez une alerte et un rappel. L'alerte porte sur l'utilisation du disque — un nœud blockchain est le seul processus de la machine qui grossit tout seul, et un volume plein met la caisse hors service d'une manière lente à diagnostiquer, parce que rien d'autre n'a changé. Déclenchez-la à quatre-vingts pour cent, pas quatre-vingt-quinze. Le rappel est mensuel, et il consiste à ouvrir la boutique et à regarder deux choses : que les factures se règlent toujours, et que les canaux Lightning que vous avez ouverts sont toujours vivants. Un processeur de paiement échoue en silence, et la façon dont vous vous en rendez compte, c'est un client qui vous dit qu'il n'a pas pu payer.