Config heroku deployment

This commit is contained in:
Yukai Huang 2016-10-14 19:28:54 +08:00
parent 33d070e52d
commit 9f63581c61
5 changed files with 84 additions and 3 deletions

View file

@ -15,6 +15,13 @@ Thanks for using! :smile:
Before you go too far, here is the great docker repo for HackMD. Before you go too far, here is the great docker repo for HackMD.
With docker, you can deploy a server in minutes without any downtime. With docker, you can deploy a server in minutes without any downtime.
Heroku Deployment
---
You can quickly setup a sample heroku hackmd application by clicking the button below.
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
[migration-to-0.4.0](https://github.com/hackmdio/migration-to-0.4.0) [migration-to-0.4.0](https://github.com/hackmdio/migration-to-0.4.0)
--- ---

33
app.json Normal file
View file

@ -0,0 +1,33 @@
{
"name": "HackMD",
"description": "Realtime collaborative markdown notes on all platforms",
"keywords": [
"Collaborative",
"Markdown",
"Notes"
],
"website": "https://hackmd.io",
"repository": "https://github.com/hackmdio/hackmd",
"logo": "https://github.com/hackmdio/hackmd/raw/master/public/hackmd-icon-1024.png",
"success_url": "/",
"scripts": {
"postdeploy": "./node_modules/.bin/sequelize db:migrate"
},
"env": {
"BUILD_ASSETS": {
"description": "Our build script variable",
"value": "true"
},
"NPM_CONFIG_PRODUCTION": {
"description": "Let npm also install development build tool",
"value": "false"
},
"DB_TYPE": {
"description": "Specify database type. See sequelize available databases. Default using postgres",
"value": "postgres"
}
},
"addons": [
"heroku-postgresql"
]
}

35
bin/heroku Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
set -e
if [ "$BUILD_ASSETS" = true ]; then
BUILD_ASSETS=false npm install && npm run assets:install
# setup config files
cat << EOF > .sequelizerc
var path = require('path');
module.exports = {
'config': path.resolve('config.json'),
'migrations-path': path.resolve('lib', 'migrations'),
'models-path': path.resolve('lib', 'models'),
'url': process.env.DATABASE_URL,
'dialect': process.env.DB_TYPE
}
EOF
cat << EOF > config.json
{
"production": {
}
}
EOF
cp public/js/config.js.example public/js/config.js
# build app
npm run build
fi

View file

@ -2,7 +2,9 @@
# run command at repo root # run command at repo root
CURRENT_PATH=$PWD CURRENT_PATH=$PWD
if [ -d .git ]; then
cd $(git rev-parse --show-toplevel) cd $(git rev-parse --show-toplevel)
fi
if ! type npm > /dev/null if ! type npm > /dev/null
then then
@ -34,7 +36,7 @@ if [ ! -f .sequelizerc ]; then
fi fi
echo "install npm and bower packages" echo "install npm and bower packages"
npm install && bower install BUILD_ASSETS=false npm install && bower install
cat << EOF cat << EOF

View file

@ -6,7 +6,10 @@
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"dev": "webpack --config webpack.config.js --progress --colors --watch", "dev": "webpack --config webpack.config.js --progress --colors --watch",
"build": "webpack --config webpack.production.js --progress --colors" "build": "webpack --config webpack.production.js --progress --colors",
"assets:install": "bower install",
"postinstall": "bin/heroku",
"start": "node app.js"
}, },
"dependencies": { "dependencies": {
"Idle.Js": "github:shawnmclean/Idle.js", "Idle.Js": "github:shawnmclean/Idle.js",
@ -121,6 +124,7 @@
"devDependencies": { "devDependencies": {
"babel-core": "^6.17.0", "babel-core": "^6.17.0",
"babel-loader": "^6.2.5", "babel-loader": "^6.2.5",
"bower": "^1.7.9",
"bower-webpack-plugin": "^0.1.9", "bower-webpack-plugin": "^0.1.9",
"css-loader": "^0.25.0", "css-loader": "^0.25.0",
"ejs-loader": "^0.3.0", "ejs-loader": "^0.3.0",