const Path = require('path'); const TMP_DIR = process.env["TMP_PATH"] || Path.resolve(Path.join(__dirname, "../../", "tmp")); module.exports = { mongo: { 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}) { return `HistoryLock:{${doc_id}}`; }, historyIndexLock({project_id}) { return `HistoryIndexLock:{${project_id}}`; } } }, history: { host: process.env["REDIS_HOST"] || "localhost", port: process.env['REDIS_PORT'] || 6379, password: process.env["REDIS_PASSWORD"] || "", key_schema: { uncompressedHistoryOps({doc_id}) { return `UncompressedHistoryOps:{${doc_id}}`; }, docsWithHistoryOps({project_id}) { return `DocsWithHistoryOps:{${project_id}}`; } } } }, 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 } };