Merhaba Dünya!
Lokalinizde çalıştığınız node.js projesini sunucuda sürekli çalışır şekilde ayakta tutmak için node.js + nodemon + pm2 kurulumu yapabilirsiniz.
Ubuntu sunucunuza nodejs yüklemek istediğinizde varsayılan repositoryden yüklediğinizde (yani apt install nodejs) node.js v10 gibi bir sürüm yüklüyor. Ama biz projemizi nodejs. 16 ile geliştirdik ve sunucuya bunu yüklemek istiyoruz. Bunun içi node.js’in bize sunduğu repository’den setup dosyasını çekip kullanabiliyoruz.
distributions/README.md at master · nodesource/distributions (github.com) Bu adresten node.js dağıtımlarını görebilirsiniz. Sayfayı aşağı indirdiğinizde Installation instructions kısmından kullamanız gereken komuta ulaşabiliyorsunuz.
Ben node.js 16 yüklemek istiyorum. Bunun için şu komutu yürüteceğim.
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
yükleme işlemi bitti. Versiyonumuzu kontrol edelim.
node -v
Eğer çıktı olarak versiyon 16.*.* gibi bir şey görüyorsak yüklemek işlemimiz başarılı.
Şimdi dosyalarımızı sunucuya aktaralım. İsterseniz githubdan klonlayabilir. Otomatik deploy alabilir. Github public repository ise curl ile çekip unzip edebilir. Ya da ftp’den atabilirsiniz. Sunucunuza bağlandığınız kullanıcı adı şifre ve ile filezilla üzerinden sftp bağlantısı yapıp da atabilirsiniz. Bunları başka bir yazıda paylaşacağım.
Package.json’ın olduğu klasörümüze girelim ve paketlerimizi yükleyelim.
cd my-sample-project
npm install
Paket yükleme işlemi bittikten sonra global olarak nodemon’umuzu yükleyebiliriz.
sudo npm install -g nodemon
Daha sonra pm2 paketimizi yükleyelim.
sudo npm install -g pm2@latest
Artık projemizi başlatmaya hazırız. Bu komutla projemiz pm2 ile başlatılır ve sürekli yürütülür.
pm2 start nodemon
Sunucumuz yeniden başlasa bile projemizin otomatik başlamasını istiyorsanız.
pm2 save
Eğer projenizde console.log’lar varsa ve bunları canlı takip etmek istiyorsanız.
pm2 logs
Genel olarak hatlarımız bu şekilde.
Eğer bir output klasörünüz varsa bunu yoksayılan olarak eklemelisiniz yoksa nodemon projeyi sürekli tekrar başlatır. package json’a ekleyin.
"nodemonConfig": {
"ignore": [
"rawdata/*"
]
},
isterseniz nodemon kullanmadan projeyi başlatabilirsiniz.
pm2 start index.js
Nodemon kullanmıyorsanız ve proje dosya değişikliklerinde pm2 yeniden başlasın istiyorsanız:
pm2 start app.js --watch
Eğer pm2de de aynı şekilde yoksayılması istediğiniz klasörleri eklemelisiniz yoksa proje .json dosyası vb. oluşturuyorsa sürekli yeniden başlar. Proje kök dizininize process.json dosyası oluşturalım. İçine ekleyelim.
{
"watch": ["server", "client"],
"ignore_watch" : ["node_modules", "public/images"],
"watch_options": {
"followSymlinks": false
}
}
Kısa bir şekilde anlatmaya çalıştım. Umarım faydalı olmuştur.
2007 yılından beri kod yazıyorum ve tam bir teknoloji severim.
Bu blogu kendim için hazırladığım notlara kolay erişebilmek ve bunların birilerine faydalı olmasını sağlamak için açtım. Umarım faydası olmuştur.
Copyright 2021 © Özgür Duyar. Tüm Hakları Saklıdır.