Ana içeriğe atla

Node.js

Giriş

Node.js, JavaScript ile yazılmış uygulamaları çalıştıran bir sunucu platformudur.

Öncelikle Node.js'i yüklemeniz gerekir:

  • "Ayarlar" -> "Uygulamalar" bölümüne gidin

FASTPANEL'de Uygulama yönetimi menüsü

  • Gerekli Node.js sürümü için "Yükle" düğmesine tıklayın

FASTPANEL'de Node.js sürümünü yükleme

Bir web sitesi oluşturun:

  • Node.js web sitesi için bir şablon seçin

FASTPANEL'de yeni site yapılandırması

  • Alan adını ve ilgili parametreleri belirtin. Yapılandırma aşamasında VT'yi, FTP kullanıcısını ve Backend'i değiştirebilirsiniz

FASTPANEL'de yeni site yapılandırması

  • Uygulama dosyalarını web sitesi dizinine yükleyin
  • Bağımlılıkları yüklemek için Terminal'de npm20.15.1 install komutunu çalıştırın (FASTPANEL® için ttyd uygulamasının kurulu olması gerekir)

Node.js bağımlılıklarını yükleme

  • Site panosuna gidip ardından "Hizmetler" bölümünü açarak Node.js'i yeniden başlatın.

Node.js hizmetini yeniden başlatma

Express framework

Express framework'ünü örnek olarak kullanarak basit bir web sunucusu oluşturalım:

  • Site sahibi kullanıcı olarak SSH üzerinden sunucuya bağlanın (FASTPANEL® için ttyd uygulamasını kullanabilirsiniz)
  • Web sitesi dizininde app.js dosyasını oluşturun ve aşağıdaki kodla doldurun:
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}`);
});

  • Web sitesi dizininde express'i yüklemek için komutu çalıştırın
npm20.15.1 install express
  • Site panosuna, ardından Hizmetler bölümüne gidin
  • Hizmeti yeniden başlatın
  • Web sitesini kontrol edin

Docusaurus

Docusaurus web uygulamasını örnek olarak kullanarak ayarları yapılandıralım:

  • Site sahibi kullanıcı olarak SSH üzerinden sunucuya bağlanın (FASTPANEL® için ttyd uygulamasını kullanabilirsiniz)
  • Web sitesi dizininde Docusaurus kurulumunu çalıştırın
npx20.15.1 create-docusaurus -j ./docs
  • Bir şablon seçmeniz istendiğinde classic (recommended) yanıtını verin

  • Kurulumdan sonra docs/package.json dosyasındaki bir satırı değiştirin

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

$SERVICE_PORT, FASTPANEL® içinde ayarlanmış bir sistem değişkenidir

  • Kontrol panelinde "site ayarları" -> "Backend" bölümüne gidin

  • Standalone veya PM2 işleyicisini seçin.

  • İstenen Node.js sürümünü seçin.

  • Çalışma klasörü olarak docs belirtin

  • Başlatma komutu alanına şunu girin: npm run start

  • Kaydedin. Uygulamanın derlenmesini bekleyin (bilgiler günlüklerde görünecektir). Web sitesini kontrol edin

Next.js

Node.js 20.19 ile Next.js'i örnek olarak kullanarak basit bir web sunucusu oluşturalım:

  • Web sitesinin sahibi olan kullanıcı olarak SSH üzerinden sunucuya bağlanın (FASTPANEL® içindeki ttyd uygulamasını da kullanabilirsiniz).
  • Web sitesi dizininde proje başlatma komutunu çalıştırın:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • package.json dosyasına bir scripts bloğu ekleyin:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • Bir pages dizini oluşturun ve içine index.js adlı bir dosya ekleyin:
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
  • Proje derlemesini çalıştırın.
yarn20.19.4 build
  • Kontrol panelinde "site ayarları" -> "Backend" bölümüne gidin
  • Standalone veya PM2 işleyicisini seçin.
  • İstenen Node.js sürümünü seçin.
  • Başlatma komutu alanına şunu girin: yarn run start.
  • Kaydedin. Uygulamanın derlenmesini bekleyin (bilgiler günlüklerde görünecektir). Web sitesini kontrol edin

Ek bilgiler

Standalone modunda, betiklerinizi çalıştırmak için bir Node.js süreci başlatılır.

PM2 modunda, Node.js süreçlerini, günlükleri ve sistem yükünü yönetmek için PM2 süreç yöneticisi kullanılır.
Bu mod ayrıca worker sayısını, yani sunucuya gelen istekleri işleyen Node.js süreçlerinin sayısını belirtmenize olanak tanır.
Ayrıca bu mod, Enable file watch seçeneğini sunar — PM2, geçerli dizinde veya alt dizinlerinde bir dosya değiştirildiğinde uygulamanızı otomatik olarak yeniden başlatır. Lütfen bu modun ek sistem yükü getirdiğini ve üretim ortamları için önerilmediğini unutmayın.

Benzer şekilde, uygulama NPM yerine YARN gerektiriyorsa da yapılandırabilirsiniz

package.json içinde listelenen projenizin bağımlılıklarını FASTPANEL® üzerinden doğrudan YARN veya NPM kullanarak yükleyebilirsiniz. Bunu yapmak için web sitesi kartını açın ve Hizmetler bölümüne gidin:

Node.js hizmetleri

Günlükler

Bir Node.js uygulaması günlükler oluşturabilir. FASTPANEL®'de bunlar site panosundaki Günlükler bölümünde, "Backend log" sekmesi altında bulunur

Konsol komutları

Node.js, FASTPANEL®'e yüklendikten sonra kullanıcılar projeleriyle şu gibi konsol komutlarını kullanarak çalışabilir:

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

Örnek:

$ 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 │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Her komut adı, yüklenen Node.js sürüm numarasını içerir. Bu örnekte kullanılabilir sürüm Node.js 20.15.1'dir.