- docker-compose: DB_PASSWORD, ACCESS_SECRET, REFRESH_SECRET, ADMIN_USER, ADMIN_PASS를 필수(:?)로 변경 - 누락 시 명확한 에러로 실패 - server.js: 시크릿/관리자 계정의 하드코딩 폴백 제거 (JWT 시크릿 누락 시 기동 중단, 관리자 계정 미설정 시 생성 건너뜀) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+13
-5
@@ -20,7 +20,7 @@ const PORT = process.env.PORT || 3000;
|
|||||||
const sequelize = new Sequelize(
|
const sequelize = new Sequelize(
|
||||||
process.env.DB_NAME || "report_db",
|
process.env.DB_NAME || "report_db",
|
||||||
process.env.DB_USER || "postgres",
|
process.env.DB_USER || "postgres",
|
||||||
process.env.DB_PASSWORD || "password",
|
process.env.DB_PASSWORD,
|
||||||
{
|
{
|
||||||
host: process.env.DB_HOST || "localhost",
|
host: process.env.DB_HOST || "localhost",
|
||||||
port: process.env.DB_PORT || 5432,
|
port: process.env.DB_PORT || 5432,
|
||||||
@@ -86,8 +86,12 @@ const swaggerOptions = {
|
|||||||
const swaggerDocs = swaggerJsdoc(swaggerOptions);
|
const swaggerDocs = swaggerJsdoc(swaggerOptions);
|
||||||
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocs));
|
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocs));
|
||||||
|
|
||||||
const ACCESS_SECRET = process.env.ACCESS_SECRET || "access_secret_123";
|
const ACCESS_SECRET = process.env.ACCESS_SECRET;
|
||||||
const REFRESH_SECRET = process.env.REFRESH_SECRET || "refresh_secret_123";
|
const REFRESH_SECRET = process.env.REFRESH_SECRET;
|
||||||
|
if (!ACCESS_SECRET || !REFRESH_SECRET) {
|
||||||
|
console.error("ACCESS_SECRET / REFRESH_SECRET 환경변수가 필요합니다.");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
// OpenAI 추가
|
// OpenAI 추가
|
||||||
const { OpenAI } = require("openai");
|
const { OpenAI } = require("openai");
|
||||||
@@ -215,8 +219,12 @@ sequelize
|
|||||||
.then(async () => {
|
.then(async () => {
|
||||||
console.log("DB Tables Synced...");
|
console.log("DB Tables Synced...");
|
||||||
// 초기 관리자 계정 생성 (환경 변수 기반)
|
// 초기 관리자 계정 생성 (환경 변수 기반)
|
||||||
const adminUser = process.env.ADMIN_USER || "admin";
|
const adminUser = process.env.ADMIN_USER;
|
||||||
const adminPass = process.env.ADMIN_PASS || "admin123!";
|
const adminPass = process.env.ADMIN_PASS;
|
||||||
|
if (!adminUser || !adminPass) {
|
||||||
|
console.log("ADMIN_USER/ADMIN_PASS 미설정 - 관리자 계정 생성을 건너뜁니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const adminExists = await User.findOne({ where: { username: adminUser } });
|
const adminExists = await User.findOne({ where: { username: adminUser } });
|
||||||
const hashedPassword = await bcrypt.hash(adminPass, 10);
|
const hashedPassword = await bcrypt.hash(adminPass, 10);
|
||||||
|
|||||||
+6
-6
@@ -6,7 +6,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: ${DB_NAME:-report_db}
|
POSTGRES_DB: ${DB_NAME:-report_db}
|
||||||
POSTGRES_USER: ${DB_USER:-postgres}
|
POSTGRES_USER: ${DB_USER:-postgres}
|
||||||
POSTGRES_PASSWORD: ${DB_PASSWORD:-daoblock12!!}
|
POSTGRES_PASSWORD: ${DB_PASSWORD:?DB_PASSWORD가 .env에 설정되어야 합니다}
|
||||||
ports:
|
ports:
|
||||||
- "5442:5432"
|
- "5442:5432"
|
||||||
volumes:
|
volumes:
|
||||||
@@ -30,12 +30,12 @@ services:
|
|||||||
- DB_HOST=${DB_HOST:-postgres}
|
- DB_HOST=${DB_HOST:-postgres}
|
||||||
- DB_PORT=${DB_PORT:-5432}
|
- DB_PORT=${DB_PORT:-5432}
|
||||||
- DB_USER=${DB_USER:-postgres}
|
- DB_USER=${DB_USER:-postgres}
|
||||||
- DB_PASSWORD=${DB_PASSWORD:-daoblock12!!}
|
- DB_PASSWORD=${DB_PASSWORD:?DB_PASSWORD가 .env에 설정되어야 합니다}
|
||||||
- DB_NAME=${DB_NAME:-report_db}
|
- DB_NAME=${DB_NAME:-report_db}
|
||||||
- ACCESS_SECRET=${ACCESS_SECRET:-your_jwt_access_secret_123}
|
- ACCESS_SECRET=${ACCESS_SECRET:?ACCESS_SECRET이 .env에 설정되어야 합니다}
|
||||||
- REFRESH_SECRET=${REFRESH_SECRET:-your_jwt_refresh_secret_123}
|
- REFRESH_SECRET=${REFRESH_SECRET:?REFRESH_SECRET이 .env에 설정되어야 합니다}
|
||||||
- ADMIN_USER=${ADMIN_USER:-kyeongmi}
|
- ADMIN_USER=${ADMIN_USER:?ADMIN_USER가 .env에 설정되어야 합니다}
|
||||||
- ADMIN_PASS=${ADMIN_PASS:-kyeongmi}
|
- ADMIN_PASS=${ADMIN_PASS:?ADMIN_PASS가 .env에 설정되어야 합니다}
|
||||||
- JEMINI_KEY=${JEMINI_KEY}
|
- JEMINI_KEY=${JEMINI_KEY}
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
|
|||||||
Reference in New Issue
Block a user