Node.js
소개
Node.js는 JavaScript로 작성된 애플리케이션을 실행하는 서버 플랫폼입니다.
먼저 Node.js를 설치해야 합니다:
- "Settings" -> "Applications"로 이동

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

웹사이트를 생성합니다:
- Node.js 웹사이트용 템플릿을 선택

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

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

- 사이트 대시보드로 이동한 다음 "Services" 섹션을 열어 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 애플리케이션은 로그를 생성할 수 있습니다. 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입니다.