settings.defaults.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. module.exports = {
  2. internal: {
  3. documentupdater: {
  4. host: process.env.LISTEN_ADDRESS || 'localhost',
  5. port: 3003,
  6. },
  7. },
  8. apis: {
  9. web: {
  10. url: `http://${
  11. process.env.WEB_API_HOST || process.env.WEB_HOST || 'localhost'
  12. }:${process.env.WEB_API_PORT || process.env.WEB_PORT || 3000}`,
  13. user: process.env.WEB_API_USER || 'sharelatex',
  14. pass: process.env.WEB_API_PASSWORD || 'password',
  15. },
  16. project_history: {
  17. url: `http://${process.env.PROJECT_HISTORY_HOST || 'localhost'}:3054`,
  18. },
  19. },
  20. redis: {
  21. pubsub: {
  22. host:
  23. process.env.PUBSUB_REDIS_HOST || process.env.REDIS_HOST || 'localhost',
  24. port: process.env.PUBSUB_REDIS_PORT || process.env.REDIS_PORT || '6379',
  25. password:
  26. process.env.PUBSUB_REDIS_PASSWORD || process.env.REDIS_PASSWORD || '',
  27. maxRetriesPerRequest: parseInt(
  28. process.env.REDIS_MAX_RETRIES_PER_REQUEST || '20'
  29. ),
  30. },
  31. history: {
  32. port: process.env.HISTORY_REDIS_PORT || process.env.REDIS_PORT || '6379',
  33. host:
  34. process.env.HISTORY_REDIS_HOST || process.env.REDIS_HOST || 'localhost',
  35. password:
  36. process.env.HISTORY_REDIS_PASSWORD || process.env.REDIS_PASSWORD || '',
  37. maxRetriesPerRequest: parseInt(
  38. process.env.REDIS_MAX_RETRIES_PER_REQUEST || '20'
  39. ),
  40. },
  41. project_history: {
  42. port: process.env.HISTORY_REDIS_PORT || process.env.REDIS_PORT || '6379',
  43. host:
  44. process.env.HISTORY_REDIS_HOST || process.env.REDIS_HOST || 'localhost',
  45. password:
  46. process.env.HISTORY_REDIS_PASSWORD || process.env.REDIS_PASSWORD || '',
  47. maxRetriesPerRequest: parseInt(
  48. process.env.REDIS_MAX_RETRIES_PER_REQUEST || '20'
  49. ),
  50. key_schema: {
  51. projectHistoryOps({ project_id: projectId }) {
  52. return `ProjectHistory:Ops:{${projectId}}`
  53. },
  54. projectHistoryFirstOpTimestamp({ project_id: projectId }) {
  55. return `ProjectHistory:FirstOpTimestamp:{${projectId}}`
  56. },
  57. },
  58. },
  59. lock: {
  60. port: process.env.LOCK_REDIS_PORT || process.env.REDIS_PORT || '6379',
  61. host:
  62. process.env.LOCK_REDIS_HOST || process.env.REDIS_HOST || 'localhost',
  63. password:
  64. process.env.LOCK_REDIS_PASSWORD || process.env.REDIS_PASSWORD || '',
  65. maxRetriesPerRequest: parseInt(
  66. process.env.REDIS_MAX_RETRIES_PER_REQUEST || '20'
  67. ),
  68. key_schema: {
  69. blockingKey({ doc_id: docId }) {
  70. return `Blocking:{${docId}}`
  71. },
  72. },
  73. },
  74. documentupdater: {
  75. port:
  76. process.env.DOC_UPDATER_REDIS_PORT || process.env.REDIS_PORT || '6379',
  77. host:
  78. process.env.DOC_UPDATER_REDIS_HOST ||
  79. process.env.REDIS_HOST ||
  80. 'localhost',
  81. password:
  82. process.env.DOC_UPDATER_REDIS_PASSWORD ||
  83. process.env.REDIS_PASSWORD ||
  84. '',
  85. maxRetriesPerRequest: parseInt(
  86. process.env.REDIS_MAX_RETRIES_PER_REQUEST || '20'
  87. ),
  88. key_schema: {
  89. blockingKey({ doc_id: docId }) {
  90. return `Blocking:{${docId}}`
  91. },
  92. docLines({ doc_id: docId }) {
  93. return `doclines:{${docId}}`
  94. },
  95. docOps({ doc_id: docId }) {
  96. return `DocOps:{${docId}}`
  97. },
  98. docVersion({ doc_id: docId }) {
  99. return `DocVersion:{${docId}}`
  100. },
  101. docHash({ doc_id: docId }) {
  102. return `DocHash:{${docId}}`
  103. },
  104. projectKey({ doc_id: docId }) {
  105. return `ProjectId:{${docId}}`
  106. },
  107. docsInProject({ project_id: projectId }) {
  108. return `DocsIn:{${projectId}}`
  109. },
  110. ranges({ doc_id: docId }) {
  111. return `Ranges:{${docId}}`
  112. },
  113. unflushedTime({ doc_id: docId }) {
  114. return `UnflushedTime:{${docId}}`
  115. },
  116. pathname({ doc_id: docId }) {
  117. return `Pathname:{${docId}}`
  118. },
  119. projectHistoryId({ doc_id: docId }) {
  120. return `ProjectHistoryId:{${docId}}`
  121. },
  122. projectState({ project_id: projectId }) {
  123. return `ProjectState:{${projectId}}`
  124. },
  125. pendingUpdates({ doc_id: docId }) {
  126. return `PendingUpdates:{${docId}}`
  127. },
  128. lastUpdatedBy({ doc_id: docId }) {
  129. return `lastUpdatedBy:{${docId}}`
  130. },
  131. lastUpdatedAt({ doc_id: docId }) {
  132. return `lastUpdatedAt:{${docId}}`
  133. },
  134. flushAndDeleteQueue() {
  135. return 'DocUpdaterFlushAndDeleteQueue'
  136. },
  137. },
  138. },
  139. },
  140. max_doc_length: 2 * 1024 * 1024, // 2mb
  141. maxJsonRequestSize:
  142. parseInt(process.env.MAX_JSON_REQUEST_SIZE, 10) || 8 * 1024 * 1024,
  143. dispatcherCount: parseInt(process.env.DISPATCHER_COUNT || 10, 10),
  144. mongo: {
  145. url:
  146. process.env.MONGO_CONNECTION_STRING ||
  147. `mongodb://${process.env.MONGO_HOST || '127.0.0.1'}/sharelatex`,
  148. },
  149. sentry: {
  150. dsn: process.env.SENTRY_DSN,
  151. },
  152. publishOnIndividualChannels:
  153. process.env.PUBLISH_ON_INDIVIDUAL_CHANNELS === 'true',
  154. continuousBackgroundFlush: process.env.CONTINUOUS_BACKGROUND_FLUSH === 'true',
  155. smoothingOffset: process.env.SMOOTHING_OFFSET || 1000, // milliseconds
  156. delayShutdownMs: parseInt(process.env.DELAY_SHUTDOWN_MS || '10000', 10),
  157. }