Public Source Viewer
비나래아카이브 개발자 포털
실제 서비스 구조를 살펴볼 수 있는 공개용 코드 뷰어입니다. 인증, 세션, 외부 연동, 토큰, 관리자 식별 등 보안상 민감한 구현은 파일 단위 또는 줄 단위로 검열됩니다.
src/routes/index.ts
공개 가능
1
import { Application } from 'express';
2
import express from 'express';
3
import path from 'path';
4
import { setupSessionMiddleware, setupCsrfMiddleware, themeMiddleware, csrfErrorHandler } from '../middleware';
5
import { UPLOAD_DIR, PUBLIC_DIR } from '../utils/paths';
6
7
// Import all route modules
8
import aiRoutes from './ai.routes';
9
import blogRoutes from './blog.routes';
10
import authRoutes from './auth.routes';
11
import userRoutes from './user.routes';
12
import uploadRoutes from './upload.routes';
13
import adminRoutes from './admin.routes';
14
import gameRoutes from './game.routes';
15
import communityRoutes from './community.routes';
16
import trainRoutes from './train.routes';
17
import discordRoutes from './discord.routes';
18
import personaRoutes from './persona.routes';
19
import kivotosRoutes from './kivotos.routes';
20
import mainRoutes from './main.routes';
21
import legacyRoutes from './legacy.routes';
22
import pushRoutes from './push.routes';
23
import endRoutes from './end.routes';
24
import personalNoteRoutes from './personal-note.routes';
25
import monitoringRoutes from './monitoring.routes';
26
import developerPortalRoutes from './developer-portal.routes';
27
28
export default function setupRoutes(app: Application): void {
29
// Setup middleware
30
setupSessionMiddleware(app);
31
app.use(themeMiddleware);
32
setupCsrfMiddleware(app);
33
34
// Setup static file serving for uploads
35
app.use('/uploads', express.static(path.join(PUBLIC_DIR, 'uploads')));
36
37
// Register all routes
38
app.use(endRoutes); // end.hinana.moe routes (subdomain)
39
app.use(authRoutes); // Auth routes (login, logout, signup)
40
app.use(userRoutes); // User/settings routes
41
app.use(aiRoutes); // AI chat routes
42
app.use(personalNoteRoutes); // Personal notes routes
43
app.use(blogRoutes); // Blog routes
44
app.use(uploadRoutes); // Upload routes
45
app.use(adminRoutes); // Admin routes
46
app.use(monitoringRoutes); // Monitoring/admin feature flags
47
app.use(developerPortalRoutes); // Public redacted source viewer
48
app.use(gameRoutes); // Game routes (tetris)
49
app.use(communityRoutes); // Community routes (lounge, plaza)
50
app.use(trainRoutes); // Train route
51
app.use(discordRoutes); // Discord share route
52
app.use(personaRoutes); // Persona routes
53
app.use(kivotosRoutes); // Kivotos Express Railway
54
app.use(mainRoutes); // Main page routes
55
app.use(pushRoutes); // Web Push subscription routes
56
app.use(legacyRoutes); // Legacy routes
57
58
// CSRF error handler (must be after routes)
59
app.use(csrfErrorHandler);
60
}
61