CREATE-REACT-ROVER
bootstrapper CLI for React App with basic conf for Caprover deployment.
It uses Parcel as bundler
Getting started
You can install it globally OR use npx instead
npx create-react-rover my-fresh-app cd my-fresh-app npm run dev
After each push to master
, GitHub Action will build the app and pushing it to a production
branch.
BUT actually, it doesn't create the Caprover config files on that branch, you have to do it on your own, following this :
# Create your GitHub repo and link it... git push -u origin master # Wait for the action to perform and create production branch git fetch --all git checkout production # copy Dockerfile, captain-definition and default.conf from master branch git add Dockerfile captain-definition default.confgit commit -m "youhou, basic config added !"git push -u origin production
Then setup your Caprover app
Extra dependencies
You can add some extra dependencies during the install prompt.
Currently, only the react-router one provides template files with it !
GitHub Actions
The template project use GitHub Actions for two things:
- Running ESLint on Pull Request on
master
anddev
- Building the app and push it to a
production
branch once code is merged onmaster
If you do not want to use the production
branch with the build action, to let your Caprover instance building it, you can delete the build.yml
file and replace original Dockerfile with this one :
(This one just add an automatic build command)
# build environmentFROM node:12 as builderRUN mkdir /usr/src/appWORKDIR /usr/src/appENV PATH /usr/src/app/node_modules/.bin:$PATHCOPY . /usr/src/appRUN npm installRUN npm run build # production environmentFROM nginx:1.13.9-alpineRUN rm -rf /etc/nginx/conf.dRUN mkdir -p /etc/nginx/conf.dCOPY ./default.conf /etc/nginx/conf.d/COPY --from=builder /usr/src/app/dist /usr/share/nginx/htmlEXPOSE 80CMD ["nginx", "-g", "daemon off;"]