diff --git a/Configuration-Files-and-Application-Settings.md b/Configuration-Files-and-Application-Settings.md new file mode 100644 index 0000000..ecbecc4 --- /dev/null +++ b/Configuration-Files-and-Application-Settings.md @@ -0,0 +1,62 @@ +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](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/` | +| 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` 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](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) | +| 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](docs/guides/s3-image-upload.md) | + +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 | \ No newline at end of file