From 617057727d203184cf2c17d4262bf5f8d0766b48 Mon Sep 17 00:00:00 2001 From: caadiq Date: Wed, 31 Dec 2025 21:44:40 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Initial=20commit=20-=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=20=EB=B0=8F=20?= =?UTF-8?q?Docker=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 26 ++++++++++++++++++++++++++ Dockerfile | 24 ++++++++++++++++++++++++ README.md | 20 ++++++++++++++++++++ backend/package.json | 13 +++++++++++++ docker-compose.yml | 16 ++++++++++++++++ frontend/package.json | 28 ++++++++++++++++++++++++++++ 6 files changed, 127 insertions(+) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 backend/package.json create mode 100644 docker-compose.yml create mode 100644 frontend/package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d380c5e --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Dependencies +node_modules/ + +# Build output +dist/ +build/ + +# Environment variables +.env +.env.local +.env.*.local + +# IDE +.vscode/ +.idea/ + +# OS +.DS_Store +Thumbs.db + +# Logs +*.log +npm-debug.log* + +# Cache +.cache/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..49726a2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +# 빌드 스테이지 - 프론트엔드 빌드 +FROM node:20-alpine AS frontend-builder +WORKDIR /frontend +COPY frontend/package*.json ./ +RUN npm install +COPY frontend/ ./ +RUN npm run build + +# 프로덕션 스테이지 +FROM node:20-alpine +WORKDIR /app + +# 백엔드 의존성 설치 +COPY backend/package*.json ./ +RUN npm install --production + +# 백엔드 파일 복사 +COPY backend/ ./ + +# 프론트엔드 빌드 결과물 복사 +COPY --from=frontend-builder /frontend/dist ./dist + +EXPOSE 80 +CMD ["node", "server.js"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..aad7f6b --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# fromis_9 Fan Site + +프로미스나인 팬사이트입니다. + +## 기술 스택 + +- **Frontend**: React 18 + Vite + TailwindCSS +- **Backend**: Express.js (Node 20) +- **Database**: MariaDB +- **Container**: Docker Compose + +## 실행 방법 + +```bash +docker-compose up -d --build +``` + +## 도메인 + +- https://fromis9.caadiq.co.kr diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..6f49576 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,13 @@ +{ + "name": "fromis9-backend", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "start": "node server.js" + }, + "dependencies": { + "express": "^4.18.2", + "mysql2": "^3.11.0" + } +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..cd0cb03 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +services: + fromis9-web: + build: . + container_name: fromis9-web + env_file: + - .env + networks: + - app + - db + restart: unless-stopped + +networks: + app: + external: true + db: + external: true diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..21f9b27 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,28 @@ +{ + "name": "fromis9-frontend", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "framer-motion": "^11.0.8", + "lucide-react": "^0.344.0", + "react": "^18.2.0", + "react-device-detect": "^2.2.3", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.3" + }, + "devDependencies": { + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "autoprefixer": "^10.4.22", + "postcss": "^8.5.6", + "tailwindcss": "^3.4.18", + "vite": "^5.4.1" + } +} \ No newline at end of file