settings.defaults.cjs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. const http = require('node:http')
  2. const https = require('node:https')
  3. http.globalAgent.keepAlive = false
  4. https.globalAgent.keepAlive = false
  5. module.exports = {
  6. mongo: {
  7. url:
  8. process.env.MONGO_CONNECTION_STRING ||
  9. `mongodb://${process.env.MONGO_HOST || '127.0.0.1'}/sharelatex`,
  10. options: {
  11. monitorCommands: true,
  12. },
  13. },
  14. internal: {
  15. history: {
  16. port: 3054,
  17. host: process.env.LISTEN_ADDRESS || '127.0.0.1',
  18. },
  19. },
  20. apis: {
  21. documentupdater: {
  22. url: `http://${process.env.DOCUPDATER_HOST || '127.0.0.1'}:3003`,
  23. },
  24. docstore: {
  25. url: `http://${process.env.DOCSTORE_HOST || '127.0.0.1'}:3016`,
  26. },
  27. filestore: {
  28. enabled: process.env.FILESTORE_ENABLED !== 'false',
  29. url: `http://${process.env.FILESTORE_HOST || '127.0.0.1'}:3009`,
  30. },
  31. web: {
  32. url: `http://${
  33. process.env.WEB_API_HOST || process.env.WEB_HOST || '127.0.0.1'
  34. }:${process.env.WEB_PORT || 3000}`,
  35. user: process.env.WEB_API_USER || 'overleaf',
  36. pass: process.env.WEB_API_PASSWORD || 'password',
  37. historyIdCacheSize: parseInt(
  38. process.env.HISTORY_ID_CACHE_SIZE || '10000',
  39. 10
  40. ),
  41. },
  42. project_history: {
  43. url: `http://${process.env.PROJECT_HISTORY_HOST || '127.0.0.1'}:3054`,
  44. },
  45. },
  46. redis: {
  47. lock: {
  48. host: process.env.REDIS_HOST || '127.0.0.1',
  49. password: process.env.REDIS_PASSWORD,
  50. port: process.env.REDIS_PORT || 6379,
  51. key_schema: {
  52. projectHistoryLock({ project_id: projectId }) {
  53. return `ProjectHistoryLock:{${projectId}}`
  54. },
  55. },
  56. },
  57. project_history: {
  58. host:
  59. process.env.HISTORY_REDIS_HOST || process.env.REDIS_HOST || '127.0.0.1',
  60. port: process.env.HISTORY_REDIS_PORT || process.env.REDIS_PORT || 6379,
  61. password:
  62. process.env.HISTORY_REDIS_PASSWORD || process.env.REDIS_PASSWORD,
  63. key_schema: {
  64. projectHistoryOps({ project_id: projectId }) {
  65. return `ProjectHistory:Ops:{${projectId}}`
  66. },
  67. projectHistoryFirstOpTimestamp({ project_id: projectId }) {
  68. return `ProjectHistory:FirstOpTimestamp:{${projectId}}`
  69. },
  70. projectHistoryCachedHistoryId({ project_id: projectId }) {
  71. return `ProjectHistory:CachedHistoryId:{${projectId}}`
  72. },
  73. },
  74. },
  75. },
  76. history: {
  77. healthCheck: {
  78. project_id: process.env.HEALTH_CHECK_PROJECT_ID || '',
  79. },
  80. },
  81. overleaf: {
  82. history: {
  83. host:
  84. process.env.V1_HISTORY_FULL_HOST ||
  85. `http://${
  86. process.env.V1_HISTORY_HOST ||
  87. process.env.HISTORY_V1_HOST ||
  88. '127.0.0.1'
  89. }:3100/api`,
  90. user: process.env.V1_HISTORY_USER || 'staging',
  91. pass: process.env.V1_HISTORY_PASSWORD || 'password',
  92. sync: {
  93. retries_max: 30,
  94. interval: 2,
  95. },
  96. requestTimeout: parseInt(process.env.V1_REQUEST_TIMEOUT || '300000', 10),
  97. },
  98. },
  99. path: {
  100. uploadFolder: process.env.UPLOAD_FOLDER || '/tmp/',
  101. },
  102. maxFileSizeInBytes: 100 * 1024 * 1024, // 100 megabytes
  103. shortHistoryQueues: (process.env.SHORT_HISTORY_QUEUES || '')
  104. .split(',')
  105. .filter(s => !!s),
  106. estimateCompressionSample: parseInt(
  107. process.env.ESTIMATE_COMPRESSION_SAMPLE || '0',
  108. 10
  109. ),
  110. }