nfl / react-wildcat

An opinionated React environment.
https://medium.com/nfl-engineers/nfl-react-84e9cd11d384
MIT License
435 stars 38 forks source link

DEPRECATED - React Wildcat - This react framework is no longer supported

Join the chat at https://gitter.im/nfl/react-wildcat

npm package build status codecov.io dependency status

A new, opinionated React environment from the National Football League. Read more on Wildcat.

Todo

Add more documentation. So much to document...

Features

Server Requirements

Client Requirements

Development environment

Getting started: docker development

Clone this repository.

Create the file /etc/resolver/dev with the following contents (requires root permission):

nameserver 127.0.0.1
port 53535

Run:

This will run the example wildcat project, with automatic file syncing in src/ and api/. The example/ folder is a great starting point to create your own project.

Getting started: local development

Clone this repository, then:

127.0.0.1 www.example.dev
127.0.0.1 static.example.dev

Note: You'll very likely need to increase the file watch limit. Follow these steps to do so.

Accepting the development SSL certificate:

While it is possible to run the environment with an untrusted SSL certificate, for best results you should have OS X trust the self-signed certificate. Here's how:

Production environment

Wildcat is designed to run on two servers:

This setup provides several benefits, including:

An example production setup with docker can be found in example/docker-compose.prod.yml. To run, use the command docker-compose -f docker-compose.prod.yml up.

Each server should have the required tools installed (see above). Each server is designed to run in its own environment. Below is an implementation reference to set up and run the web prototype:

Node server

Your app server environment must contain the following files and directories:

package.json
wildcat.config.js
cd path/to/project
npm install --production
env PORT=80 STATIC_URL=https://static.example.com npm run prod

Static assets

Note: The provided static file server is an optional dependency. The app server is agnostic about what solution is provided to serve static assets. It only expects the correct files to live in the domain specified via your STATIC_URL environment variable.

Your static server environment must contain the following files and directories:

bin
bundles
favicon.ico
public

Follow step one below to implement your own custom server, or skip to step 2 to use the bundled static asset server.

1. Custom static server

You will need to precompile the static assets:

cd path/to/project
npm install --production
env STATIC_URL=https://static.example.com npm run preprod-static

2. Setting up the static file server

cd path/to/project
npm install --production
env STATIC_URL=https://static.example.com npm run prod-static

Environment variables

LOGGING_HOST The graylog host to use to send server logs too.

Contributing to this project

Please take a moment to review the guidelines for contributing.

License

MIT