mirror of
https://github.com/JuniorDark/RustyHearts-API.git
synced 2026-05-07 06:01:44 -04:00
- Implemented authentication and billing routes for Jpn region. - Refactored and changed the project structure from CommonJS to ES Modules
100 lines
No EOL
2.6 KiB
JavaScript
100 lines
No EOL
2.6 KiB
JavaScript
import dotenv from 'dotenv';
|
|
dotenv.config();
|
|
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import { dirname } from 'path';
|
|
|
|
import cors from 'cors';
|
|
import compression from 'compression';
|
|
import express from 'express';
|
|
import helmet from 'helmet';
|
|
|
|
import { logger } from './utils/logger.js';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
export default {
|
|
// Port configurations
|
|
ports: {
|
|
main: process.env.API_LISTEN_PORT || 80,
|
|
usaApp: process.env.API_USA_PORT || 8070,
|
|
jpnApp: process.env.API_JPN_PORT || 8080,
|
|
proxy: process.env.API_PROXY_PORT || 8090,
|
|
gate: process.env.GATESERVER_PORT || 50001,
|
|
},
|
|
|
|
// IP configurations
|
|
ips: {
|
|
public: process.env.API_LISTEN_HOST || '0.0.0.0',
|
|
local: process.env.API_LOCAL_LISTEN_HOST || '127.0.0.1',
|
|
gate: process.env.GATESERVER_IP,
|
|
},
|
|
|
|
// configurations
|
|
config: {
|
|
serverId: Number(process.env.SERVER_ID) || 10101,
|
|
shopBalance: process.env.API_SHOP_INITIAL_BALANCE || 0,
|
|
timeZone: process.env.TZ,
|
|
},
|
|
|
|
// API configurations
|
|
apiConfig: {
|
|
trustProxyEnabled: process.env.API_TRUSTPROXY_ENABLE || 'false',
|
|
trustProxyHosts: process.env.API_TRUSTPROXY_HOSTS || [],
|
|
logIPAddresses: process.env.LOG_IP_ADDRESSES || 'false',
|
|
},
|
|
|
|
// Mailer configurations
|
|
mailer: {
|
|
host: process.env.SMTP_HOST,
|
|
port: Number(process.env.SMTP_PORT),
|
|
secure: process.env.SMTP_ENCRYPTION === 'ssl' || process.env.SMTP_ENCRYPTION === 'tls',
|
|
auth: {
|
|
user: process.env.SMTP_USERNAME,
|
|
pass: process.env.SMTP_PASSWORD
|
|
}
|
|
},
|
|
|
|
// middleware
|
|
middleware: {
|
|
baseMiddleware: [
|
|
cors(),
|
|
compression(),
|
|
express.json(),
|
|
express.urlencoded({ extended: true }),
|
|
],
|
|
|
|
getMiddleware: function () {
|
|
const middleware = [...this.baseMiddleware];
|
|
if (process.env.API_ENABLE_HELMET === 'true') {
|
|
middleware.unshift(helmet());
|
|
}
|
|
return middleware;
|
|
}
|
|
},
|
|
|
|
// Static file paths
|
|
staticPaths: {
|
|
public: path.join(__dirname, '../public'),
|
|
launcherNews: path.join(__dirname, '../public/launcher/news'),
|
|
launcherNewsImages: path.join(__dirname, '../public/launcher/news/images'),
|
|
launcherPatch: path.join(__dirname, '../public/launcher/patch'),
|
|
launcherClient: path.join(__dirname, '../public/launcher/client'),
|
|
site: path.join(__dirname, '../public/site'),
|
|
},
|
|
|
|
// Logger
|
|
logger,
|
|
|
|
// Backend configuration for proxy
|
|
BACKENDS: {
|
|
AUTH: {
|
|
paths: ['/Auth/cgi-bin/auth_rest_oem.cgi']
|
|
},
|
|
BILLING: {
|
|
paths: ['/Billing/S1/ApiPointTotalGetS.php', '/Billing/S1/ApiPointMoveS.php']
|
|
}
|
|
}
|
|
}; |