This package is HTTP gateway for Decentraweb. It allows to access domains hosted Decentraweb, without making any additional configuration on client side. This package is used by https://dwebs.to/ You can find mode details here.
We assume you have node.js v16+ and npm installed. If not please go to https://nodejs.org/ to get latest stable version.
Preparation steps:
mkdir ~/dweb-gateway
)cd ~/dweb-gateway
)mkdir ./certs
)npm install @decentraweb/http-gateway
index.mjs
file with following content:import path from 'path';
import {HTTPGateway} from "@decentraweb/http-gateway";
import {providers} from "ethers";
import * as Sentry from '@sentry/node';
import {addExtensionMethods} from '@sentry/tracing';
const ETH_NETWORK = 'mainnet';
const JSONRPC_URL = 'https://mainnet.infura.io/v3/00000000000000000000000000000000';
const provider = new providers.JsonRpcProvider(JSONRPC_URL, ETH_NETWORK);
// You can register your own Sentry account and provide your own DSN here to monitor your gateway
Sentry.init();
addExtensionMethods();
const gateway = new HTTPGateway({
baseDomain: 'gw.acme.com', // This is domain that will be used to access Decentraweb domains ({domain}.gw.acme.com)
ipfsGatewayIp: '18.177.155.53',
network: ETH_NETWORK,
provider,
certs: {
storageDir: path.resolve('../../certs'),
maintainerEmail: 'admin@acme.com'
}
});
gateway.listenHttp(8080).then((port) => {
console.log(`Decentraweb gateway listening port ${port}`);
});
gateway.listenHttps(8443).then((port) => {
console.log(`Decentraweb gateway listening port ${port}`);
});
To start gateway execute node index.mjs
in shell console. You should see following output:
Decentraweb gateway listening port 80
Decentraweb gateway listening port 443
To test, open https://sagan.gw.acme.com/
in your browser.
There are numerous ways to run Node.js process as a service. We recommend using pm2.
Generated using TypeDoc