2 Configuration Files and Application Settings
Wonder Chang edited this page 2017-03-25 17:39:41 +08:00

Configuration files

There are some configs you need to change in the files below

./config.json      ----application settings

Note: Environment variables will overwrite config setting. Please refer Environment Variables to get more information about environment variables.

Application settings config.json

variables example values description
debug true or false set debug mode, show more logs
domain localhost domain name
urlpath hackmd sub url path, like www.example.com/<urlpath>
port 80 web app port
alloworigin ['localhost'] domain name whitelist
usessl true or false set to use ssl server (if true will auto turn on protocolusessl)
protocolusessl true or false set to use ssl protocol for resources path (only applied when domain is set)
urladdport true or false set to add port on callback url (port 80 or 443 won't applied) (only applied when domain is set)
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
defaultpermission freely, editable, limited, locked, protected or private set notes default permission (only applied on signed users)
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
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)
sslcapath ['./cert/COMODORSAAddTrustCA.crt'] ssl ca chain (only need when you set usessl)
dhparampath ./cert/dhparam.pem ssl dhparam path (only need when you set usessl)
tmppath ./tmp/ temp directory path
defaultnotepath ./public/default.md default note file path
docspath ./public/docs docs directory path
indexpath ./public/views/index.ejs index template file path
hackmdpath ./public/views/hackmd.ejs hackmd template file path
errorpath ./public/views/error.ejs error template file path
prettypath ./public/views/pretty.ejs pretty template file path
slidepath ./public/views/slide.hbs slide template file path
sessionname connect.sid cookie session name
sessionsecret secret cookie session secret
sessionlife 14 * 24 * 60 * 60 * 1000 cookie session life
staticcachetime 1 * 24 * 60 * 60 * 1000 static file cache time
heartbeatinterval 5000 socket.io heartbeat interval
heartbeattimeout 10000 socket.io heartbeat timeout
documentmaxlength 100000 note max length
email true or false set to allow email signin
allowemailregister true or false set to allow email register (only applied when email is set, default is true)
imageUploadType imgur(default), s3 or filesystem Where to upload image
s3 { "accessKeyId": "YOUR_S3_ACCESS_KEY_ID", "secretAccessKey": "YOUR_S3_ACCESS_KEY", "region": "YOUR_S3_REGION", "bucket": "YOUR_S3_BUCKET_NAME" } When imageUploadType be setted to s3, you would also need to setup this key, check our S3 Image Upload Guide

Third-party integration api key settings

service settings location description
facebook, twitter, github, gitlab, dropbox, google, ldap environment variables or config.json for signin
imgur environment variables or config.json for image upload
google drive(google/apiKey, google/clientID), dropbox(dropbox/appKey) config.json for export and import