Merge pull request #213 from Yukaii/heroku-deploy
Config heroku deployment
This commit is contained in:
commit
5e72a69d18
5 changed files with 162 additions and 3 deletions
|
@ -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)
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
111
app.json
Normal file
111
app.json
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
|
||||||
|
"HMD_DOMAIN": {
|
||||||
|
"description": "domain name",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_URL_PATH": {
|
||||||
|
"description": "sub url path, like `www.example.com/<URL_PATH>`",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_ALLOW_ORIGIN": {
|
||||||
|
"description": "web app port",
|
||||||
|
"required": false,
|
||||||
|
"value": "80"
|
||||||
|
},
|
||||||
|
"HMD_PROTOCOL_USESSL": {
|
||||||
|
"description": "set to use ssl protocol for resources path (only applied when domain is set)",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_URL_ADDPORT": {
|
||||||
|
"description": "set to add port on callback url (port 80 or 443 won't applied) (only applied when domain is set)",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_FACEBOOK_CLIENTID": {
|
||||||
|
"description": "Facebook API client id",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_FACEBOOK_CLIENTSECRET": {
|
||||||
|
"description": "Facebook API client secret",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_TWITTER_CONSUMERKEY": {
|
||||||
|
"description": "Twitter API consumer key",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_TWITTER_CONSUMERSECRET": {
|
||||||
|
"description": "Twitter API consumer secret",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_GITHUB_CLIENTID": {
|
||||||
|
"description": "GitHub API client id",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_GITHUB_CLIENTSECRET": {
|
||||||
|
"description": "GitHub API client secret",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_GITLAB_BASEURL": {
|
||||||
|
"description": "GitLab authentication endpoint, set to use other endpoint than GitLab.com (optional)",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_GITLAB_CLIENTID": {
|
||||||
|
"description": "GitLab API client id",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_GITLAB_CLIENTSECRET": {
|
||||||
|
"description": "GitLab API client secret",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_DROPBOX_CLIENTID": {
|
||||||
|
"description": "Dropbox API client id",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_DROPBOX_CLIENTSECRET": {
|
||||||
|
"description": "Dropbox API client secret",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_GOOGLE_CLIENTID": {
|
||||||
|
"description": "Google API client id",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_GOOGLE_CLIENTSECRET": {
|
||||||
|
"description": "Google API client secret",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"HMD_IMGUR_CLIENTID": {
|
||||||
|
"description": "Imgur API client id",
|
||||||
|
"required": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"addons": [
|
||||||
|
"heroku-postgresql"
|
||||||
|
]
|
||||||
|
}
|
35
bin/heroku
Executable file
35
bin/heroku
Executable 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
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
# run command at repo root
|
# run command at repo root
|
||||||
CURRENT_PATH=$PWD
|
CURRENT_PATH=$PWD
|
||||||
cd $(git rev-parse --show-toplevel)
|
if [ -d .git ]; then
|
||||||
|
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
|
||||||
|
|
||||||
|
|
|
@ -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",
|
||||||
|
|
Loading…
Reference in a new issue