Boilerplate app to get you up and running with Hapi, HTTP2, Web Socket and React.
GPL-2.0 License
Boilerplate app to get you up and running with Hapi, HTTP/2, Web Sockets and React.
Demo can be found here
I've written a blog article detailing the steps I've gone through to create. Also the good 😇, the bad 👿 and the ugly ☠️.
Assuming you are on Mac OS 🍏 and Node 8.9.4 or higher installed. Not tested on any other OS.
As this boilerplate uses HTTPS, you will need to create a local SSL (Secure Socket Layer) certificate and key. If you are not familar with creating an SSL certificate on your Mac, plaese look here.
By following the below steps you will run an NPM script npm run createCertificate
, which will create an SSL certficate and key for you. It will also move them to the correct folder, to make life as painless as possible for you. In the project there is a folder named ssl
, in here I have created a shell script named createCerts.sh
. This is where the magic (told myself this) happens. You are more than welcome to delve in here and see the dark arts of shell scripting if you are unfamilar with this.
In the terminal run the following: -
git clone [email protected]:blairg/hapi-socket-react-boilerplate.git
cd hapi-socket-react-boilerplate
npm run createCertificate
. Fill in the questions when asked. Can be fictitious values.npm i
npm run dev
https://localhost:3000/index
(add security exception rule for local cert). Look here for Chrome chrome://flags/#allow-insecure-localhost.Ensure you have created the cert and key as per the previous step.
Assuming you have cloned the repo and installed the packages. Also, that you have Docker and Docker Compose installed too. In the terminal do the following, in the root of the directory you cloned the repo too: -
npm run createCertificate
. Details are all optional..env
file, this can be blank as the Dockerfile has default values set.docker-compose up
https://localhost:3000/index
(add security exception rule for local cert).Following options: -
npm run test
npm run test:coverage
. This will output to coverage
folder. Locate the index.html
in here and open in your browser.npm run test:watch
Unit Tests
will execute tests. Tests with Coverage
, will run tests with coverage.npm run storybook
npm run storybook:build
npm run lint
npm run pretty
If you find anything wrong with this repo post them here please.
Refer to CONTRIBUTING.md
in the root of this repo.
I've left myself some work to do. Look in todo.md
.