This has been tried and tested on Mac OS X. It should work on Linux as well. However, Windows is not guranteed, as Jekyll does not officially support it.
- Ruby 2.0+
- Python 2.7+
- NodeJS v0.12.* with
npm
v2.0+ - Bower. (get via
npm install -g bower
) - Docker (you can get it through Docker Toolbox)
Run the following commands on the project root:
> bundle install --path vendor/bundle
> npm install && bower install
Get your local IP address and set it as the LOCAL_IP
environment variable:
> export LOCAL_IP=192.168.99.1
This IP address should be what Docker can use to talk to your host machine.
192.168.99.1
should be what it is for a default install of Docker.
Run:
> grunt serve
Once complete, a browser window should eventually open up pointing to http://localhost:8080
.
To hit the proxy, you will have to access the site through http://192.168.99.1
.
Test the following redirects to see it in action:
http://192.168.99.1/activelamp => http://activelamp.com
http://182.168.99.1/bienvenue => http://192.168.99.1/jekyll/update/2015/10/15/welcome-to-jekyll/
The first redirect is configured in _config.yml
. The second one is in app/_posts/2016-10-15-welcome-to-jekyll.md
.
The grunt proxy
task is the entry task that orchestrates the building and running of the nginx proxy. Checkout
the Gruntfile.js
file for how it is done. Its a rather long file (~300 lines), so I added @notes
in comments preceeding all pertinent parts.
Majority of the implementation can be found in grunt/tasks/nginx-proxy/index.js
.
You can find more info about this module here: https://github.com/activelamp/jekyll-nginx-config
For questions, comments, and feedbacks, you can shoot me an email at [email protected].