Cursor 서버 수동 설치 방법
가이드를 통해 Cursor 서버를 수동으로 설치하고 구성하는 자세한 지침을 제공합니다. 이 방법은 사용자 지정 배포, 에어프로덕트 환경 또는 표준 설치에서 사용할 수 없는 특정 구성이 필요한 경우에 유용합니다.
전제 조건
수동 설치를 시작하기 전에 다음 사항을 확인하세요.
- 대시스템에 대한 관리자/루트 액세스 권한
- Node.js 16.x 이상 설치
- Git 설치
- 최소 4GB의 사용 가능한 RAM
- 2GB의 여유 디스크 공간
설치 단계
1. 리포지토리 복제
git clone https://github.com/getcursor/cursor-server.git
cd cursor-server
2. 종속설치
npm install
# 또는 yarn을 선호하는 경우
yarn install
3. 환경 변수구성
루트 디렉토리에 .env
파일을 생성합니다.
touch .env
다음 구성을 추가합니다.
PORT=3000
HOST=localhost
NODE_ENV=production
LOG_LEVEL=info
MAX_REQUESTS_PER_MINUTE=60
4. 서버 빌드
npm run build
# 또는
yarn build
서 버 구성
기본 구성
서버를 환경 변수나 구성 파일을 통해 구성할 수 있습니다:
// config.ts
export default {
server: {
port: process.env.PORT || 3000,
host: process.env.HOST || 'localhost',
cors: {
origin: '*',
methods: ['GET', 'POST']
}
},
security: {
rateLimit: {
windowMs: 60 * 1000, // 1분
max: process.env.MAX_REQUESTS_PER_MINUTE || 60
}
}
}
고급 구성
고급 사용 사례인 경우 다음을 수정할 수 있습니다:
- 인증 설정
- 속도 제한
- CORS 정책
- 로깅 수준
- 캐시 구성
서버 실행
개발 모드
npm run dev
# 또는
yarn dev
프로덕션 모드
npm run start
# 또는
yarn start
PM2 사용 (프로덕션 권장)
npm install -g pm2
pm2 start npm --name "cursor-server" -- start
보안 고려 사항
-
API 인증
- API 인증 구현
- 프로덕션에서 HTTPS 사용
- 적절한 CORS 설정 구성
-
속도 제한
- 적절한 요청 제한 설정
- IP 기반 스로틀구현
- 남용 모니터링
-
접근 제어
- IP 서버 액세스제한
- 방화벽 규칙 사용
- 역할 기반 액세스구현
모니터링 유지 관리
상태 확인
상태 확인 엔드포인트구현:
app.get('/health', (req, res) => {
res.status(200).json({
status: 'healthy',
timestamp: new Date().toISOString(),
version: process.env.npm_package_version
});
});
로깅
문제 해결위한 로깅 구성:
import winston from 'winston';
const logger = winston.createLogger({
level: process.env.LOG_LEVEL || 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
문제 해결
일반적인 문제와 해결 방법:
연결 거부
연결 거부 오류가 발생하는 경우:
- 포트가 사용 중이 아닌지 확인
- 방화벽설정 확인
- 올바른호스트구성 확인