summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rwxr-xr-xbin/heroku6
-rw-r--r--config.json.example4
-rw-r--r--lib/config.js7
-rw-r--r--lib/models/index.js8
5 files changed, 14 insertions, 13 deletions
diff --git a/README.md b/README.md
index 406986a5..a9270fb2 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,7 @@ Environment variables (will overwrite other server configs)
| HMD_USECDN | `true` or `false` | set to use CDN resources or not (default is `true`) |
| HMD_ALLOW_ANONYMOUS | `true` or `false` | set to allow anonymous usage (default is `true`) |
| HMD_ALLOW_FREEURL | `true` or `false` | set to allow new note by accessing not exist note url |
+| HMD_DB_URL | `mysql://localhost:3306/database` | set the db url |
| HMD_FACEBOOK_CLIENTID | no example | Facebook API client id |
| HMD_FACEBOOK_CLIENTSECRET | no example | Facebook API client secret |
| HMD_TWITTER_CONSUMERKEY | no example | Twitter API consumer key |
@@ -157,6 +158,7 @@ Server settings `config.json`
| usecdn | `true` or `false` | set to use CDN resources or not (default is `true`) |
| allowanonymous | `true` or `false` | set to allow anonymous usage (default is `true`) |
| allowfreeurl | `true` or `false` | set to allow new note by accessing not exist note url |
+| dburl | `mysql://localhost:3306/database` | set the db url, if set this variable then below db config won't be applied |
| db | `{ "dialect": "sqlite", "storage": "./db.hackmd.sqlite" }` | set the db configs, [see more here](http://sequelize.readthedocs.org/en/latest/api/sequelize/) |
| sslkeypath | `./cert/client.key` | ssl key path (only need when you set usessl) |
| sslcertpath | `./cert/hackmd_io.crt` | ssl cert path (only need when you set usessl) |
diff --git a/bin/heroku b/bin/heroku
index 0375e9e7..6ee7fa41 100755
--- a/bin/heroku
+++ b/bin/heroku
@@ -23,12 +23,6 @@ EOF
{
"production": {
- "db": {
- "database": "${DATABASE_URL}",
- "dialectOptions": {
- "ssl": true
- }
- }
}
}
diff --git a/config.json.example b/config.json.example
index 22fd5c92..7e4ac0b7 100644
--- a/config.json.example
+++ b/config.json.example
@@ -1,4 +1,8 @@
{
+ "test": {
+ "dialect": "sqlite",
+ "storage": "./db.hackmd.sqlite"
+ },
"development": {
"domain": "localhost",
"db": {
diff --git a/lib/config.js b/lib/config.js
index 9e8aa337..f8df0a73 100644
--- a/lib/config.js
+++ b/lib/config.js
@@ -24,10 +24,8 @@ var allowanonymous = process.env.HMD_ALLOW_ANONYMOUS ? (process.env.HMD_ALLOW_AN
var allowfreeurl = process.env.HMD_ALLOW_FREEURL ? (process.env.HMD_ALLOW_FREEURL === 'true') : !!config.allowfreeurl;
// db
-var db = config.db || {
- dialect: 'sqlite',
- storage: './db.hackmd.sqlite'
-};
+var dburl = config.dburl || process.env.HMD_DB_URL || process.env.DATABASE_URL;
+var db = config.db || {};
// ssl path
var sslkeypath = config.sslkeypath || '';
@@ -131,6 +129,7 @@ module.exports = {
usecdn: usecdn,
allowanonymous: allowanonymous,
allowfreeurl: allowfreeurl,
+ dburl: dburl,
db: db,
sslkeypath: path.join(cwd, sslkeypath),
sslcertpath: path.join(cwd, sslcertpath),
diff --git a/lib/models/index.js b/lib/models/index.js
index d52f5508..de6cd13c 100644
--- a/lib/models/index.js
+++ b/lib/models/index.js
@@ -13,10 +13,12 @@ var dbconfig = config.db;
dbconfig.logging = config.debug ? logger.info : false;
var sequelize = null;
-if (dbconfig.hasOwnProperty('username') || dbconfig.hasOwnProperty('password'))
- sequelize = new Sequelize(dbconfig.database, dbconfig.username, dbconfig.password, dbconfig);
+
+// Heroku specific
+if (config.dburl)
+ sequelize = new Sequelize(config.dburl, dbconfig);
else
- sequelize = new Sequelize(dbconfig.database, dbconfig);
+ sequelize = new Sequelize(dbconfig.database, dbconfig.username, dbconfig.password, dbconfig);
var db = {};