NightmareJS is an awesome highlevel webscraping and browser automation library built ontop of electron. This repo is a good starting place to be able to use it with some default setups ontop of heroku using the following instructions. Read more
-
git clone --depth 1 [email protected]:oscarmorrison/nightmare-heroku [new-project-name]
-
cd [new-project-name]
-
rm -rf .git
-
git init
-
setup git remote repository on github.com from existing code
git remote add origin [email protected]:[username]/[new-project-name].git
git add -A
git commit -m "Initial commit"
git push -u origin master
heroku create
heroku stack:set cedar-14
- set build packs
heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt &&
heroku buildpacks:add --index 2 https://github.com/captain401/heroku-buildpack-xvfb.git &&
heroku buildpacks:add --index 3 https://github.com/causztic/heroku-electron-buildpack.git &&
heroku buildpacks:add --index 4 https://github.com/heroku/heroku-buildpack-nodejs.git
git push heroku master
- goto heroku dashboard and select created app; install
Heroku Scheduler
add-on heroku ps:scale web=0
node ./index.js
to verify nightmare runs correctly locally; npm install needs to be run. The following output should be seen.
Welcome to Nightmare scrape
==========
NightmareJS on Heroku the ultimate scraping setup
=========
All done
- Open heroku app from heroku dashboard. 'Application error' is displayed because no routes have been defined yet so this is normal in this case.
heroku logs
to check output for any errors. If everything went well, near the bottom of the output the 'Welcome to Nightmare scrape' messages as displayed above should appear. Now, you can work on the rest of your code knowing that nightmarejs will work on heroku as it works locally.
You may need to set a engines in package.json:
"engines": {
"node": "8.11.4"
},