메인 콘텐츠로 건너뛰기

Node.js

소개

Node.js는 JavaScript로 작성된 애플리케이션을 실행하는 서버 플랫폼입니다.

먼저 Node.js를 설치해야 합니다:

  • "Settings" -> "Applications"로 이동

FASTPANEL의 애플리케이션 관리 메뉴

  • 필요한 Node.js 버전에 대해 "Install" 버튼을 클릭

FASTPANEL에서 Node.js 버전 설치

웹사이트를 생성합니다:

  • Node.js 웹사이트용 템플릿을 선택

FASTPANEL의 새 사이트 구성

  • 도메인 및 관련 매개변수를 지정합니다. 구성 단계에서 DB, FTP 사용자 및 Backend를 변경할 수 있습니다

FASTPANEL의 새 사이트 구성

  • 애플리케이션 파일을 웹사이트 디렉터리에 업로드
  • 의존성을 설치하려면 Terminal에서 npm20.15.1 install을 실행합니다 ( FASTPANEL®용 ttyd 애플리케이션을 설치해야 함 )

Node.js 의존성 설치

  • 사이트 대시보드로 이동한 다음 "Services" 섹션을 열어 Node.js를 재시작합니다.

Node.js 서비스 재시작

Express 프레임워크

Express 프레임워크를 예로 들어 간단한 웹 서버를 만들어 보겠습니다:

  • 사이트 소유자인 사용자로 SSH를 통해 서버에 연결합니다 ( FASTPANEL®용 ttyd 애플리케이션을 사용할 수 있습니다 )
  • 웹사이트 디렉터리에 app.js 파일을 생성하고 다음 코드로 채웁니다:
const express = require('express');
const app = express();
const PORT = process.env.SERVICE_PORT;

app.get('/', (req, res) => {
res.send('Hello! This is my first server on Node.js + Express 🚀');
});

app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`);
});

  • 웹사이트 디렉터리에서 express를 설치하는 명령을 실행합니다.
npm20.15.1 install express
  • 사이트 대시보드로 이동한 다음 Services 섹션으로 이동
  • 서비스를 재시작
  • 웹사이트를 확인

Docusaurus

Docusaurus 웹 애플리케이션을 예로 들어 설정을 구성해 보겠습니다:

  • 사이트 소유자인 사용자로 SSH를 통해 서버에 연결합니다 ( FASTPANEL®용 ttyd 애플리케이션을 사용할 수 있습니다 )
  • 웹사이트 디렉터리에서 Docusaurus 설치를 실행
npx20.15.1 create-docusaurus -j ./docs
  • 템플릿을 선택하라는 메시지가 표시되면 **classic (recommended)**라고 응답

  • 설치 후 docs/package.json 파일에서 한 줄을 교체합니다

"start": "docusaurus start",
# replace with
"start": "docusaurus start --port $SERVICE_PORT",

$SERVICE_PORT는 FASTPANEL®에 설정된 시스템 변수입니다

  • 제어판에서 "site settings" -> "Backend"로 이동

  • Standalone 또는 PM2 핸들러를 선택합니다.

  • 원하는 Node.js 버전을 선택합니다.

  • 작업 폴더 docs를 지정

  • Launch command 필드에 다음을 입력합니다: npm run start

  • 저장합니다. 애플리케이션이 컴파일될 때까지 기다립니다(정보는 로그에 표시됨). 웹사이트를 확인

Next.js

Node.js 20.19에서 Next.js를 예로 들어 간단한 웹 서버를 만들어 보겠습니다:

  • 웹사이트 소유자 사용자로 SSH를 통해 서버에 연결합니다(FASTPANEL®의 ttyd 애플리케이션도 사용할 수 있습니다).
  • 웹사이트 디렉터리에서 프로젝트 초기화 명령을 실행합니다:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • package.json 파일에 scripts 블록을 추가합니다:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • pages 디렉터리를 생성하고 그 안에 index.js라는 이름의 파일을 추가합니다:
mkdir pages
cat <<EOF > pages/index.js
export async function getServerSideProps() {
return {
props: {
nodeVersion: process.version,
port: process.env.SERVICE_PORT || 3000,
},
};
}

export default function Home({ nodeVersion, port }) {
return (
<div style={{
fontFamily: 'sans-serif',
textAlign: 'center',
marginTop: '20vh'
}}>
<h1>✅ It works!</h1>
<p>Next.js app running on Node.js {nodeVersion}</p>
<p>Port: {port}</p>
</div>
);
}
EOF
  • 프로젝트 빌드를 실행합니다.
yarn20.19.4 build
  • 제어판에서 "site settings" -> "Backend"로 이동
  • Standalone 또는 PM2 핸들러를 선택합니다.
  • 원하는 Node.js 버전을 선택합니다.
  • Launch command 필드에 다음을 입력합니다: yarn run start.
  • 저장합니다. 애플리케이션이 컴파일될 때까지 기다립니다(정보는 로그에 표시됨). 웹사이트를 확인

추가 정보

Standalone 모드에서는 스크립트를 실행하기 위해 Node.js 프로세스가 시작됩니다.

PM2 모드에서는 PM2 프로세스 관리자를 사용하여 Node.js 프로세스, 로그 및 시스템 부하를 관리합니다.
이 모드에서는 워커 수, 즉 서버로 들어오는 요청을 처리하는 Node.js 프로세스 수를 지정할 수도 있습니다.
또한 이 모드에서는 Enable file watch 옵션을 제공합니다. 현재 디렉터리 또는 그 하위 디렉터리에서 파일이 수정되면 PM2가 애플리케이션을 자동으로 재시작합니다. 이 모드는 추가적인 시스템 부하를 유발하므로 프로덕션 환경에는 권장되지 않습니다.

마찬가지로 애플리케이션이 NPM 대신 YARN을 요구하는 경우에도 구성할 수 있습니다

FASTPANEL®에서 직접 YARN 또는 NPM을 사용하여 package.json에 나열된 프로젝트 의존성을 설치할 수 있습니다. 이렇게 하려면 웹사이트 카드를 열고 Services 섹션으로 이동합니다:

Node.js 서비스

로그

Node.js 애플리케이션은 로그를 생성할 수 있습니다. FASTPANEL®에서는 사이트 대시보드의 Logs 섹션에 있는 "Backend log" 탭 아래에 있습니다

콘솔 명령

FASTPANEL®에 Node.js를 설치한 후 사용자는 다음과 같은 콘솔 명령으로 프로젝트 작업을 할 수 있습니다:

  • pm2
  • yarn20.15.1
  • npx20.15.1
  • npm20.15.1
  • node20.15.1

예:

$ npm20.15.1 list
node-socket-port-server@1.0.0 /var/www/node_user/data/www/node.site
└── express@4.21.2
$ pm2 ls
┌────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ amazing_site│ default │ 1.0.0 │ cluster │ 9355 │ 2m │ 0 │ online │ 0% │ 62.4mb │ user │ disabled │
│ 1 │ amazing_site│ default │ 1.0.0 │ cluster │ 9362 │ 2m │ 0 │ online │ 0% │ 62.5mb │ user │ disabled │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

각 명령 이름에는 설치된 Node.js의 버전 번호가 포함됩니다. 이 예에서는 사용 가능한 버전이 Node.js 20.15.1입니다.