traxxx-web/config/default.cjs

120 lines
2.5 KiB
JavaScript
Executable File

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',
},
};