Ce code vous permet de lancer votre propre nœud de relai libp2p pour vos applications basées sur SFIP ou OrbitDB.
En premier lieu, fourchez ce projet et installez-le localement :
pnpm install
Pour déployer votre propre serveur relai, suivre les instructions suivantes :
Vous devrez choisir un fournisseur d'hébergement. Back4App Containers offre des options gratuites qui sont suffisamment puissantes pour ce relai. Heroku offre également des options payantes.
Créez votre compte sur le site de votre fournisseur, puis choisissez de créer une nouvelle application avec l'addresse GitHub de la fourche de ce projet que vous avez créée ci-dessus.
- Exécutez
pnpm lancer
. - Ouvrez le fichier
.env
qui vient d'être généré et copiez la valeur secrète dans les variables d'environnement (Back4App, Heroku) de votre fournisseur d'hébergement.
- Choisissez un nom de domaine pour votre serveur relai. Ceci peut être un nom par défaut de votre fournisseur (p. ex., monprojet.b4a.run ou monprojet.herokuapp.com) ou bien votre propre domaine.
- Copiez ce nom de domaine dans une variable d'environnement nommée
DOMAINE
sur votre fournisseur d'hébergement.
Beaucoup du code provient originalement de https://github.com/libp2p/js-libp2p-example-circuit-relay.
https://docs.digitalocean.com/products/droplets/getting-started/recommended-droplet-setup/
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04
pm2 start pnpm --name serveur -- lancer
/etc/nginx/sites-available/MON_DOMAINE
server {
server_name relai-ws-libp2p.xn--rseau-constellation-bzb.ca;
location / {
proxy_pass http://localhost:12345;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /info/ {
proxy_pass http://localhost:8000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /adresses/ {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/relai-ws-libp2p.xn--rseau-constellation-bzb.ca/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/relai-ws-libp2p.xn--rseau-constellation-bzb.ca/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = relai-ws-libp2p.xn--rseau-constellation-bzb.ca) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name relai-ws-libp2p.xn--rseau-constellation-bzb.ca;
return 404; # managed by Certbot
}