MariaDB 완전 마이그레이션 및 NAS 배포 최적화

- MariaDB 환경별 자동 감지 (Windows/NAS/Linux)
- Unix Socket 및 TCP 연결 지원
- 완전한 UTF8MB4 스키마 적용
- 자동 초기화 스크립트 개선
- NAS 배포 스크립트 MariaDB 지원
- 환경변수 기반 설정 시스템
- 상세한 배포 가이드 문서화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-08-22 13:38:25 +09:00
parent ced3fd03e4
commit 7be1f2ed07
15 changed files with 833 additions and 44 deletions

139
README-MariaDB.md Normal file
View File

@@ -0,0 +1,139 @@
# Jaryo File Manager - MariaDB 배포 가이드
## 개요
Jaryo File Manager를 시놀로지 NAS의 MariaDB와 함께 배포하는 가이드입니다.
## 시스템 요구사항
### NAS 환경
- 시놀로지 DSM 7.0+
- Node.js 18+ (DSM 패키지 센터에서 설치)
- MariaDB 10+ (DSM 패키지 센터에서 설치)
- Git Server (DSM 패키지 센터에서 설치)
### 개발 환경
- Node.js 18+
- MariaDB/MySQL 5.7+
- Git
## NAS 배포 단계
### 1. 빠른 배포 (권장)
```bash
# 자동 배포 스크립트 실행
./deploy-to-nas.sh [NAS-IP] jaryo [PASSWORD]
# 예시:
./deploy-to-nas.sh 192.168.1.100 jaryo mypassword
```
### 2. 수동 배포
#### 2.1 MariaDB 설정
NAS SSH 접속 후:
```sql
mysql -u root -p
CREATE DATABASE IF NOT EXISTS jaryo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'jaryo_user'@'localhost' IDENTIFIED BY 'JaryoPass2024!@#';
GRANT ALL PRIVILEGES ON jaryo.* TO 'jaryo_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
#### 2.2 스키마 설정
```bash
mysql -u jaryo_user -p jaryo < database/mariadb-schema.sql
```
#### 2.3 서비스 배포
```bash
# 소스 코드 클론
cd /volume1/web
git clone [GITEA_URL] jaryo
cd jaryo
# 의존성 설치
npm install
# 데이터베이스 초기화
npm run init-mariadb
# 서비스 시작
./start-service.sh
```
## 환경별 설정
### Windows 개발 환경
`.env` 파일 생성:
```env
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=jaryo
HOST=0.0.0.0
PORT=3000
```
### NAS 운영 환경
환경 변수는 자동으로 설정됩니다:
- `NODE_ENV=production`
- `DEPLOY_ENV=nas`
- Unix Socket 연결: `/run/mysqld/mysqld10.sock`
## 관리 명령어
### 서비스 관리
```bash
# 시작
./start-service.sh
# 중지
kill $(cat jaryo-nas.pid)
# 로그 확인
tail -f logs/app.log
```
### 데이터베이스 관리
```bash
# 초기화
npm run init-mariadb
# 직접 연결
mysql -u jaryo_user -p -S /run/mysqld/mysqld10.sock jaryo
```
## 접속 정보
### 기본 관리자 계정
- **이메일**: admin@jaryo.com
- **비밀번호**: Hee150603!
### 서비스 URL
- **메인**: http://[NAS-IP]:3005
- **관리자**: http://[NAS-IP]:3005/admin
## 문제 해결
### 연결 오류
1. MariaDB 서비스 상태 확인
2. 데이터베이스 및 사용자 권한 확인
3. 소켓 파일 경로 확인
4. 방화벽 설정 확인
### 상세 가이드
더 자세한 설정 방법은 `mariadb-setup.md` 파일을 참조하세요.
## 기술 스택
- **Backend**: Node.js + Express
- **Database**: MariaDB
- **Frontend**: Vanilla JavaScript
- **Deployment**: Shell Scripts
## 지원
- 로그 파일: `/volume1/web/jaryo/logs/app.log`
- 설정 파일: `database/mariadb-helper.js`
- 스키마: `database/mariadb-schema.sql`