const Path = require('path') const TMP_DIR = process.env.TMP_PATH || Path.resolve(Path.join(__dirname, '../../', 'tmp')) module.exports = { mongo: { options: { useUnifiedTopology: (process.env.MONGO_USE_UNIFIED_TOPOLOGY || 'true') === 'true', }, url: process.env.MONGO_CONNECTION_STRING || `mongodb://${process.env.MONGO_HOST || 'localhost'}/sharelatex`, }, internal: { trackchanges: { port: 3015, host: process.env.LISTEN_ADDRESS || 'localhost', }, }, apis: { documentupdater: { url: `http://${ process.env.DOCUMENT_UPDATER_HOST || process.env.DOCUPDATER_HOST || 'localhost' }:3003`, }, docstore: { url: `http://${process.env.DOCSTORE_HOST || 'localhost'}:3016`, }, web: { url: `http://${ process.env.WEB_API_HOST || process.env.WEB_HOST || 'localhost' }:${process.env.WEB_API_PORT || process.env.WEB_PORT || 3000}`, user: process.env.WEB_API_USER || 'sharelatex', pass: process.env.WEB_API_PASSWORD || 'password', }, }, redis: { lock: { host: process.env.REDIS_HOST || 'localhost', port: process.env.REDIS_PORT || 6379, password: process.env.REDIS_PASSWORD || '', key_schema: { historyLock({ doc_id: docId }) { return `HistoryLock:{${docId}}` }, historyIndexLock({ project_id: projectId }) { return `HistoryIndexLock:{${projectId}}` }, }, }, history: { host: process.env.REDIS_HOST || 'localhost', port: process.env.REDIS_PORT || 6379, password: process.env.REDIS_PASSWORD || '', key_schema: { uncompressedHistoryOps({ doc_id: docId }) { return `UncompressedHistoryOps:{${docId}}` }, docsWithHistoryOps({ project_id: projectId }) { return `DocsWithHistoryOps:{${projectId}}` }, }, }, }, trackchanges: { s3: { key: process.env.AWS_ACCESS_KEY_ID, secret: process.env.AWS_SECRET_ACCESS_KEY, endpoint: process.env.AWS_S3_ENDPOINT, pathStyle: process.env.AWS_S3_PATH_STYLE === 'true', }, stores: { doc_history: process.env.AWS_BUCKET, }, continueOnError: process.env.TRACK_CHANGES_CONTINUE_ON_ERROR || false, }, path: { dumpFolder: Path.join(TMP_DIR, 'dumpFolder'), }, sentry: { dsn: process.env.SENTRY_DSN, }, }