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:
139
README-MariaDB.md
Normal file
139
README-MariaDB.md
Normal 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`
|
Reference in New Issue
Block a user