BYTEBOOK
Bytebook Docs • Node.js / Express / Subdomain
PATH:
DOCS /
NODE_DEPLOY_GUIDE.HTML
_
[00:00:00] DOCS_READY
DEMOS
Main Archive
JAVA LABS
Enterprise
PY LABS
Neural Assets
NODE LABS
Async Runtime
INFRA
Control Center
DEPLOYMENT GUIDES • NODE.JS & EXPRESS.JS
Ghid Rapid: Adăugare Subdomeniu Nou & Deploy Aplicație Node.js (Express)
Acest ghid descrie pașii necesari pentru a crea o aplicație web Node.js folosind Express.js, a o sincroniza din IntelliJ / WebStorm / VS Code pe VPS și a o publica pe un subdomeniu nou (node-demo.bytebook.xyz).
# Structura Locală a Proiectului (pe Mac)
Proiectul tău local (/Users/admin/Projects/node-demo) va avea următoarea structură de bază:
node-demo/
├── package.json # Fișierul de configurare și dependențe
└── app.js # Fișierul principal al aplicației
├── package.json # Fișierul de configurare și dependențe
└── app.js # Fișierul principal al aplicației
A. Fișierul package.json
{
"name": "node-demo",
"version": "1.0.0",
"description": "Demo Node.js Express App",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.18.2"
}
}
B. Fișierul app.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.json({ message: "Hello Alin din Node.js Express!" });
});
app.get('/api/info', (req, res) => {
res.json({
status: "success",
framework: "Express.js",
timestamp: new Date()
});
});
app.listen(PORT, () => {
console.log(`Serverul rulează pe portul ${PORT}`);
});
1. Configurare Advanced DNS (Namecheap)
- Conectează-te la contul Namecheap →
bytebook.xyz→ Advanced DNS. - Adaugă o înregistrare de tip A Record:
- Type:
A Record - Host:
node-demo(sau numele subdomeniului dorit) - Value:
63.250.40.142(IP-ul VPS-ului) - TTL:
Automatic
- Type:
2. Sincronizare Cod prin SFTP (din IntelliJ / IDE)
- În IDE: Tools → Deployment → Configuration...
- La Mappings:
- Local path:
/Users/admin/Projects/node-demo - Deployment path:
/root/projects/node-demo
- Local path:
- Click dreapta pe folderul rădăcină
node-demo→ Deployment → Upload.
Notă: Folderul
node_modules NU se urcă prin SFTP. Se vor instala dependențele direct pe server.
3. Instalează Node.js și Dependențele pe VPS
- Conectează-te la VPS prin SSH și instalează Node.js (dacă nu este instalat deja):
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs - Navighează în folderul proiectului încărcat și instalează pachetele din
package.json:cd /root/projects/node-demo npm install
4. Configurare Serviciu Systemd pentru Node.js
- Creează un fișier de serviciu
systemdpentru aplicația Node.js:nano /etc/systemd/system/node-app.service - Adaugă următoarea configurație (rulează aplicația pe portul
3000):[Unit] Description=Node.js Express Application After=network.target [Service] User=root WorkingDirectory=/root/projects/node-demo ExecStart=/usr/bin/node app.js Restart=always Environment=PORT=3000 [Install] WantedBy=multi-user.target - Salvează fișierul, reîncarcă
systemdși pornește serviciul:systemctl daemon-reload systemctl enable node-app systemctl start node-app
5. Configurare Subdomeniu în Caddy
- Editează
Caddyfile:nano /etc/caddy/Caddyfile - Adaugă blocul pentru subdomeniul Node.js, făcând reverse proxy către portul
3000:node-demo.bytebook.xyz { reverse_proxy localhost:3000 } - Reîncarcă Caddy:
systemctl reload caddy
# Testare
• Accesează în browser: https://node-demo.bytebook.xyz
• Testează endpoint-ul de API: https://node-demo.bytebook.xyz/api/info