CloudsLinker는 여러 클라우드 스토리지 서비스를 통합 관리할 수 있는 플랫폼입니다. PikPak, WebDAV, Synology NAS 등 다양한 클라우드 스토리지 간의 파일 전송과 동기화를 제로 대역폭으로 수행할 수 있습니다.
- PikPak: OAuth 2.0 인증을 통한 안전한 연결
- WebDAV: Basic/Digest 인증 지원
- Synology NAS: DSM API를 통한 직접 연결
- 클라우드 간 직접 전송으로 대역폭 절약
- 스트림 기반 파일 전송으로 메모리 효율성 확보
- 실시간 진행률 모니터링
- 양방향 및 단방향 동기화 지원
- 유연한 스케줄링 (수동, 주기적, Cron)
- 충돌 해결 전략 설정
- 한국어/영어 지원
- 실시간 언어 전환
- WebSocket 기반 실시간 상태 업데이트
- 전송 속도 및 진행률 추적
- 상세한 로그 및 에러 정보
- Node.js 18.0.0 이상
- PostgreSQL 15 이상
- Redis 7 이상
- Docker & Docker Compose (선택사항)
-
저장소 클론
git clone https://github.com/yourusername/cloudslinker.git cd cloudslinker -
환경 변수 설정
cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env # 필요한 환경 변수들을 수정하세요 -
Docker Compose로 실행
# 개발 환경 docker-compose up -d # 프로덕션 환경 docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
-
접속
- 프론트엔드: http://localhost:3000
- 백엔드 API: http://localhost:3001
- API 문서: http://localhost:3001/api-docs
-
데이터베이스 설정
# PostgreSQL 데이터베이스 생성 createdb cloudslinker # Redis 시작 redis-server
-
백엔드 설정
cd backend npm install npm run db:migrate npm run dev -
프론트엔드 설정
cd frontend npm install npm run dev
cloudslinker/
├── backend/ # Node.js + Express + TypeScript
│ ├── src/
│ │ ├── controllers/ # API 컨트롤러
│ │ ├── services/ # 비즈니스 로직
│ │ ├── models/ # 데이터 모델
│ │ ├── routes/ # API 라우트
│ │ ├── middleware/ # Express 미들웨어
│ │ ├── utils/ # 유틸리티 함수
│ │ └── types/ # TypeScript 타입 정의
│ ├── database/ # 데이터베이스 마이그레이션
│ └── docs/ # API 문서화
├── frontend/ # React + TypeScript + Vite
│ ├── src/
│ │ ├── components/ # React 컴포넌트
│ │ ├── store/ # Redux Store
│ │ ├── hooks/ # 커스텀 Hooks
│ │ ├── services/ # API 서비스
│ │ ├── utils/ # 유틸리티 함수
│ │ ├── types/ # TypeScript 타입
│ │ └── i18n/ # 다국어 설정
│ └── public/ # 정적 파일
├── nginx/ # Nginx 설정 (프로덕션)
├── monitoring/ # 모니터링 설정
└── docker-compose*.yml # Docker Compose 설정
- React 18 + TypeScript
- Vite (빌드 도구)
- Redux Toolkit + RTK Query (상태 관리)
- Ant Design + Tailwind CSS (UI 라이브러리)
- React Router v6 (라우팅)
- i18next (다국어 지원)
- Socket.IO Client (실시간 통신)
- Node.js + Express + TypeScript
- PostgreSQL (메인 데이터베이스)
- Redis (캐시 및 세션)
- Bull Queue (작업 큐 시스템)
- Socket.IO (실시간 통신)
- JWT + OAuth 2.0 (인증)
- Swagger (API 문서화)
- Winston (로깅)
- Docker + Docker Compose
- Nginx (리버스 프록시)
- Prometheus + Grafana (모니터링)
Swagger UI를 통해 API 문서를 확인할 수 있습니다:
- 개발 환경: http://localhost:3001/api-docs
- JSON 스키마: http://localhost:3001/api-docs.json
POST /api/auth/login- 로그인POST /api/auth/register- 회원가입GET /api/auth/profile- 프로필 조회POST /api/auth/refresh- 토큰 갱신
GET /api/clouds- 연결된 클라우드 목록POST /api/clouds- 새 클라우드 연결PUT /api/clouds/:id- 클라우드 설정 수정DELETE /api/clouds/:id- 클라우드 연결 해제POST /api/clouds/:id/test- 연결 테스트
GET /api/transfers- 전송 작업 목록POST /api/transfers- 새 전송 작업 생성GET /api/transfers/:id- 전송 작업 상세POST /api/transfers/:id/start- 전송 시작POST /api/transfers/:id/pause- 전송 일시정지POST /api/transfers/:id/cancel- 전송 취소
GET /api/sync- 동기화 작업 목록POST /api/sync- 새 동기화 작업 생성GET /api/sync/:id- 동기화 작업 상세PUT /api/sync/:id- 동기화 설정 수정POST /api/sync/:id/run- 수동 동기화 실행
cd frontend
npm test # 단위 테스트 실행
npm run test:watch # 테스트 감시 모드
npm run test:coverage # 커버리지 리포트
cd backend
npm test # 단위 테스트 실행
npm run test:watch # 테스트 감시 모드
npm run test:coverage # 커버리지 리포트
- JWT 기반 인증 시스템
- OAuth 2.0 지원
- CORS 설정
- Rate Limiting
- 입력 데이터 검증
- 암호화된 비밀번호 저장
-
환경 변수 설정
# 프로덕션 환경 변수 파일 생성 cp .env.example .env.production -
SSL 인증서 설정
# SSL 인증서를 ssl/ 디렉토리에 배치 mkdir ssl # certificate.crt, private.key 파일 복사
-
프로덕션 배포
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
NODE_ENV=production
PORT=3001
DATABASE_URL=postgresql://username:password@host:port/database
REDIS_URL=redis://host:port
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRES_IN=24h
CORS_ORIGIN=https://yourdomain.com
VITE_API_URL=https://api.yourdomain.com
VITE_WS_URL=wss://api.yourdomain.com
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
MIT License에 따라 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
- 이슈 트래커: GitHub Issues
- 이메일: support@cloudslinker.com
- 문서: Wiki
- Ant Design - 아름다운 React UI 라이브러리
- Socket.IO - 실시간 통신 라이브러리
- Bull - 강력한 작업 큐 시스템
- TypeScript - 타입 안정성
CloudsLinker로 모든 클라우드를 하나로! 🚀