🦄 Open-source blogging platform from the land of rainbows
HTML JavaScript CSS Shell Nginx
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
build better subscriber graph, some refactorings. Aug 19, 2016
client responsiveness Aug 24, 2016
controllers user authentication views Aug 20, 2016
dat unsupervised limited account creation Aug 19, 2016
deploy cleanup Aug 10, 2016
lib user authentication views Aug 20, 2016
models simple improvements Aug 24, 2016
resources simple improvements Aug 24, 2016
scripts simple improvements Aug 24, 2016
services user authentication views Aug 20, 2016
test/controllers author change for articles, prefer backticks, more eslint rules Aug 16, 2016
views simple improvements Aug 24, 2016
.editorconfig ln May 10, 2014
.env.defaults.json fixes Aug 3, 2016
.eslintignore lint more things Aug 10, 2016
.eslintrc.json author change for articles, prefer backticks, more eslint rules Aug 16, 2016
.gitignore let, const Aug 10, 2016
.node-version upgrade to es6, node 6 Aug 10, 2016
.nodemonignore ignore deep node_modules Jun 12, 2014
.taunusrc inlining, better default model taunus perf Oct 2, 2014
.travis.yml logs, more visibility Aug 3, 2015
CHANGELOG.md update changelog Oct 21, 2014
LICENSE conference speaking page Jan 14, 2016
README.md add shots May 4, 2016
app.js author change for articles, prefer backticks, more eslint rules Aug 16, 2016
chdir.js fix chdir for jobs Oct 21, 2014
cluster.js author change for articles, prefer backticks, more eslint rules Aug 16, 2016
package.json simple improvements Aug 24, 2016
preconfigure.js author change for articles, prefer backticks, more eslint rules Aug 16, 2016

README.md

Pony Foo

Open-source blogging platform

Evolution

Watch history unfold!

Development

Merely install dependencies and run the application using npm start. The start command will compile and bundle all necessary assets, set up file watchers, as well as nodemon and browser-sync so that you’re able to continuously develop.

npm install
npm start

Deployments

First off you’ll need to download and install the awscli tool.

pip install awscli

Then configure it with your AWS credentials. Make sure to leave the default JSON format output as-is, the deployment scripts revolve around using jq to parse the awscli output.

aws configure

You’ll probably want to create an instance on EC2. The command below will spin up a new instance, give it an IP address, and set it up for node and nginx. Note that the database server must be hosted separately. For this purpose I chose mLab as my DBaaS provider of choice, the free tier should suffice.

npm run launch

Configure it with it’s private environment variables, which you should place in an .env file in the application root. The command below will push the .env file via rsync to the server and restart it, so make sure you only update environment variables when necessary.

npm run configure

Whenever you want to deploy, use the command below. It’ll bump the version by a single patch digit and upload the diff since the last deployment. Uploading occurs via rsync, then nginx and node are hot-reloaded thanks to forever and recluster.

npm run deploy

You can then quickly access the deployed site on your favorite browser.

npm run open

If you run into trouble, you can ssh into the instance and ammend the situation by yourself.

npm run ssh

Usage

To access the production site visit ponyfoo.com, or use curl to get a plaintext edition.

curl -L -H "Accept: text/plain" ponyfoo.com/articles/last

License

MIT