feat: Complete NestJS backend scaffold — 22 modules, 39 entities, WebSocket gateway
All checks were successful
Test Asgard Runner / test (push) Successful in 3s
All checks were successful
Test Asgard Runner / test (push) Successful in 3s
Full backend rewrite from Rust/Axum to NestJS/TypeScript. - 22 feature modules (auth, servers, wipes, maps, plugins, players, console, chat, team, notifications, settings, schedules, analytics, alerts, status, store, webstore, admin, setup, migration, users, licenses) - 39 TypeORM entities matching PostgreSQL schema (12 migrations) - Common infrastructure: JWT/RBAC guards, decorators, exception filter - NATS service with pub/sub/request-reply - Socket.IO WebSocket gateway with NATS bridge - Docker: NestJS Dockerfile + updated docker-compose.yml - Zero compile errors (npx tsc --noEmit clean) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
42
backend-nest/src/config/configuration.ts
Normal file
42
backend-nest/src/config/configuration.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
export default () => ({
|
||||
port: parseInt(process.env.API_PORT || '3000', 10),
|
||||
database: {
|
||||
url: process.env.DATABASE_URL || 'postgres://corrosion:corrosion_dev@localhost:5432/corrosion',
|
||||
maxConnections: parseInt(process.env.DATABASE_MAX_CONNECTIONS || '20', 10),
|
||||
},
|
||||
nats: {
|
||||
url: process.env.NATS_URL || 'nats://localhost:4222',
|
||||
},
|
||||
jwt: {
|
||||
secret: process.env.JWT_SECRET || 'change-me',
|
||||
accessExpirySeconds: parseInt(process.env.JWT_ACCESS_EXPIRY_SECONDS || '900', 10),
|
||||
refreshExpirySeconds: parseInt(process.env.JWT_REFRESH_EXPIRY_SECONDS || '604800', 10),
|
||||
},
|
||||
encryption: {
|
||||
key: process.env.ENCRYPTION_KEY || '',
|
||||
},
|
||||
admin: {
|
||||
email: process.env.ADMIN_EMAIL || '',
|
||||
password: process.env.ADMIN_PASSWORD || '',
|
||||
username: process.env.ADMIN_USERNAME || 'Commander',
|
||||
licenseKey: process.env.ADMIN_LICENSE_KEY || '',
|
||||
},
|
||||
cloudflare: {
|
||||
apiToken: process.env.CLOUDFLARE_API_TOKEN || '',
|
||||
zoneId: process.env.CLOUDFLARE_ZONE_ID || '',
|
||||
baseDomain: process.env.BASE_DOMAIN || 'corrosionmgmt.com',
|
||||
},
|
||||
steam: {
|
||||
apiKey: process.env.STEAM_API_KEY || '',
|
||||
},
|
||||
smtp: {
|
||||
host: process.env.SMTP_HOST || '',
|
||||
port: parseInt(process.env.SMTP_PORT || '587', 10),
|
||||
username: process.env.SMTP_USERNAME || '',
|
||||
password: process.env.SMTP_PASSWORD || '',
|
||||
from: process.env.SMTP_FROM || 'noreply@corrosionmgmt.com',
|
||||
},
|
||||
frontend: {
|
||||
url: process.env.FRONTEND_URL || 'http://localhost:5174',
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user