module.exports = { title: 'traxxx', database: { owner: { host: '127.0.0.1', user: 'traxxx', password: 'password', database: 'traxxx', }, query: { host: '127.0.0.1', user: 'visitor', password: 'password', database: 'traxxx', }, manticore: { host: '127.0.0.1', sqlPort: 9306, httpPort: 9308, forceSql: true, maxMatches: 2000, // high match count needed primarily for actor aggregations maxAggregateSize: 2000, // must be lower or equal to maxMatches maxQueryTime: 10000, }, timeout: 5000, pool: { min: 0, max: 20, acquireTimeoutMillis: 300000, createTimeoutMillis: 300000, destroyTimeoutMillis: 300000, }, }, web: { host: '0.0.0.0', port: 5000, sfwHost: '0.0.0.0', sfwPort: 5001, session: { secret: '12345678abcdefghij', resave: false, saveUninitialized: false, cookie: { secure: true, maxAge: 2629800000, // 1 month }, }, }, redis: { host: 'localhost', port: 6379, username: null, password: null, }, analytics: { enabled: false, address: 'http://localhost:3000/script.js', siteId: '1b28ac3b-d229-43bf-aec9-75cf0a72a466', }, auth: { login: true, signup: true, usernameLength: [2, 24], usernamePattern: /^[a-zA-Z0-9_-]+$/, }, bans: { defaultExpiry: 60 * 24 * 3, // in minutes, 3 days }, socials: { urls: { cashapp: 'https://cash.app/${handle}', // eslint-disable-line no-template-curly-in-string fansly: 'https://fansly.com/{handle}', linktree: 'https://linktr.ee/{handle}', loyalfans: 'https://www.loyalfans.com/{handle}', manyvids: 'https://www.manyvids.com/Profile/{handle}/slug/Store/Videos', onlyfans: 'https://onlyfans.com/{handle}', pornhub: 'https://www.pornhub.com/model/{handle}', twitter: 'https://x.com/{handle}', }, prefix: { default: '@', cashapp: '$', reddit: 'u/', }, }, apiAccess: { graphqlEnabled: true, keySize: 24, // bytes keyLimit: 5, // max keys per user keyCooldown: 1, // minutes between key generation }, revisions: { unapprovedLimit: 3, }, psa: { text: 'Welcome to traxxx!', // html enabled type: 'notice', // notice, alert enabled: false, }, links: { content: 'mailto:content@traxxx.me', discord: 'https://discord.gg/gY6fnq6jJV', }, stashes: { nameLength: [2, 24], namePattern: /^[a-zA-Z0-9!?$&\s_-]+$/, viewRefreshCron: '* * * * *', // every minute viewRefreshCooldowns: { actors: 60, // minutes stashes: 1, }, }, media: { path: './media', assetPath: '/img', mediaPath: '/media', s3Path: 'https://s3.wasabisys.com', }, };