DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
VGSources
Blog

How to Deploy a NestJS Application with Nginx on Ubuntu

Deploy a production NestJS service on Ubuntu with a private Node port, PM2 or systemd supervision, Nginx reverse proxying, HTTPS, and tested reboot recovery.
Length12 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable Ubuntu pattern is to run the compiled NestJS application on a private local port, keep it alive with PM2 or systemd, and let Nginx handle the public IP, TLS certificate, and reverse proxy. DNS must point your domain to the VPS, ports 80 and 443 must be reachable, and a reboot test must prove that both services recover automatically.

This guide takes a clean Ubuntu server from prerequisites to a verified HTTPS deployment. It uses the NestJS production build, a lockfile-aware dependency install, an Nginx server block, and supervised startup after crashes or reboots.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the finished deployment looks like

A browser or API client connects to https://app.example.com on Nginx. Nginx terminates TLS, applies the public HTTP policy, and forwards the request to a NestJS process listening only on 127.0.0.1:3000 (or the port your application actually uses). PM2 or systemd starts that process, restarts it after a crash, and restores it after Ubuntu reboots.

  • Public edge: Nginx owns ports 80 and 443, certificates, redirects, and proxy headers.
  • Application: NestJS runs the JavaScript produced by npm run build, normally from dist/main.js.
  • Supervisor: PM2 or systemd owns the Node.js process and its environment.
  • Dependencies: databases, queues, and other required services must be reachable from the server.

A simple VPS lowers infrastructure complexity and cost, but you remain responsible for patching, firewall rules, backups, certificates, logs, and recovery testing.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.

Prerequisites and version requirements

Start with a reachable production Ubuntu server and an application that already runs. NestJS’s deployment guidance requires Node.js 20.19 or later, or 22.12 or later on the 22.x line; use an active-LTS release rather than an end-of-life version. You also need npm, the application’s production environment variables, and access to every database or broker it requires.

Choose the final hostname before configuring Nginx. Create an A record for the domain’s IPv4 address and an AAAA record only when the server has working IPv6. Allow DNS time to propagate, then confirm that both records resolve to the intended host. For HTTPS, the public path to ports 80 and 443 must be open.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Minimum access and data you should have ready

  • An administrative account that is not root, with a controlled method for using sudo.
  • The repository URL or deployment artifact, plus its lockfile (package-lock.json, yarn.lock, or the lockfile used by your project).
  • A production environment file or secret-management plan. Do not commit secrets to Git or copy them into tracked files.
  • The port passed to app.listen(). NestJS commonly uses 3000, but PORT or application code can change it.
  • A health endpoint, such as /health, that you can call without relying on a browser session.

1. Prepare and secure the Ubuntu host

Log in as the administrative user and apply updates before installing the runtime. Keep SSH available while changing firewall rules so you do not lock yourself out.

  1. Update the package index and installed packages:

    sudo apt update && sudo apt upgrade -y
  2. Install basic tools needed to retrieve and inspect the application:

    sudo apt install -y git curl ca-certificates
  3. Install a supported active-LTS Node.js release and npm using the distribution or runtime installation method approved for your organization. Verify the result:

    node --version
    npm --version

    The Node.js version must satisfy the NestJS baseline above. If the host already has an older system Node.js, remove ambiguity before deploying; the shell used by your service manager must resolve the same supported binary you tested.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  4. Allow only the ports you actually need. A typical web VPS keeps SSH, HTTP, and HTTPS reachable:

    sudo ufw allow OpenSSH
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
    sudo ufw status verbose

    Do not expose port 3000 publicly when Nginx is the edge. Restrict database and administration ports to trusted networks or private interfaces.

  5. Check DNS from a workstation or the server:

    dig +short A app.example.com
    dig +short AAAA app.example.com

    Each answer should identify this VPS. An incorrect record will make a correctly configured Nginx server appear broken.

    Rank #2
    Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
    • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
    • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
    • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
    • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
    • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

2. Put the NestJS application on the server

Use a dedicated directory and a non-root owner. The exact path is yours; /var/www/nest-app is used below.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Create the directory and assign it to your deployment user:

    sudo mkdir -p /var/www/nest-app
    sudo chown -R "$USER":"$USER" /var/www/nest-app
  2. Check out the application or copy a versioned release into that directory:

    cd /var/www/nest-app
    git clone YOUR_REPOSITORY_URL .

    Pin a known commit or release for repeatable deployments instead of deploying an unreviewed moving branch.

  3. Install dependencies with the lockfile-aware command used by the project. For npm projects, a clean production build commonly starts with:

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    npm ci

    Do not replace the lockfile with an ad-hoc install during production deployment. If your build requires development dependencies, install them for the build and use your project’s documented approach for pruning afterward.

  4. Create the production environment outside version control. Set NODE_ENV=production, the listening port, database credentials, signing keys, and every other value the application expects. Protect the file:

    chmod 600 .env

    Ensure the process manager receives the same variables; a shell’s interactive environment is not automatically inherited by a boot-time service.

  5. Confirm required databases, caches, message brokers, and migrations are ready. A successful Node.js start does not prove that downstream services are reachable.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    Rank #3
    Sale
    LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
    • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
    • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
    • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
    • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
    • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)

3. Build and smoke-test the compiled application

NestJS production execution should use compiled JavaScript, not the development watcher. Build from the application root:

npm run build

The compiler normally writes to dist and produces dist/main.js. Custom project layouts can instead produce dist/src/main.js, so inspect the output rather than assuming the path.

find dist -maxdepth 3 -type f -name 'main.js' -print

Start the exact entry point manually for a smoke test, with production variables loaded:

NODE_ENV=production node dist/main.js

In a second shell, call the local endpoint:

curl -i http://127.0.0.1:3000/health

Use the real port and route if they differ. Check that the response status, JSON body, database queries, and startup logs are correct. Stop the foreground process after the test with Ctrl+C; the supervisor will start it in the next step.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The application must bind to the private interface when Nginx is on the same host. In NestJS, make the host and port explicit when your code permits it:

await app.listen(Number(process.env.PORT || 3000), '127.0.0.1');

If the application intentionally listens on all interfaces for a multi-host design, compensate with firewall rules and network controls. For a single VPS, a loopback bind prevents direct public access to the Node process.

4. Keep NestJS running with PM2

PM2 is a practical choice for one Ubuntu VPS. It owns the Node process, exposes logs and restart controls, and can generate a systemd startup hook. Install it in the environment used for deployment:

sudo npm install --global pm2

Start the production entry point

From the application directory, start the compiled file and define the production environment:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
cd /var/www/nest-app
pm2 start dist/main.js --name nest-app --time --update-env

Set NODE_ENV=production through your PM2 ecosystem configuration or the service environment rather than assuming an interactive shell variable will survive a reboot. An ecosystem file makes the command and variables reviewable:

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
module.exports = {
  apps: [{
    name: 'nest-app',
    script: 'dist/main.js',
    cwd: '/var/www/nest-app',
    instances: 1,
    exec_mode: 'fork',
    env: {
      NODE_ENV: 'production',
      PORT: 3000
    }
  }]
};

Keep secrets out of this file when it is stored in the repository; inject them through a protected environment file or your secret-management system. Start it with pm2 start ecosystem.config.js when appropriate.

Inspect, save, and enable reboot recovery

pm2 status
pm2 logs nest-app --lines 100
pm2 save
pm2 startup

The pm2 startup command prints a system command containing the correct user and Node.js path. Run that printed command with sudo, then run pm2 save again. Saving the process list is essential: the startup hook can exist while no application is configured to resurrect.

After a deployment that changes the compiled files, rebuild, restart the named process, inspect logs, and save the list again:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
npm run build
pm2 restart nest-app --update-env
pm2 save
pm2 status

5. Configure Nginx as the reverse proxy

Install Nginx and create a server block for the domain:

sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/nest-app

The following HTTP configuration proxies to the loopback port, preserves the original request information, and gives an API reasonable connection timeouts. Replace the hostname and port with your values.

server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

Host lets NestJS identify the requested domain. The forwarding headers preserve client and protocol information for URL generation, audit logs, rate limits, and secure-cookie decisions. If your application handles long-running requests, set a larger read timeout deliberately instead of accepting a value that hides stalled requests.

Enable and validate the site

  1. Enable the server block:

    sudo ln -s /etc/nginx/sites-available/nest-app /etc/nginx/sites-enabled/nest-app
  2. Remove or disable the default site if it would win the hostname match:

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    sudo rm -f /etc/nginx/sites-enabled/default
  3. Validate syntax and referenced files:

    sudo nginx -t
  4. Reload without dropping existing connections:

    sudo systemctl reload nginx

Before TLS, request the domain over HTTP and inspect both Nginx and PM2 logs. A 502 response usually means Nginx cannot connect to the configured port, the process exited, or the application is bound to a different address.

6. Add HTTPS and redirect HTTP

Obtain a certificate for the exact DNS names you serve from a trusted certificate authority. Certificate issuance normally validates control of the domain, so DNS and inbound port 80 must already work. Store the certificate and private key with permissions that allow Nginx to read them while preventing ordinary users from reading the key.

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.

After issuance, configure the TLS server block. The paths below are examples; use the paths delivered by your certificate process:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name app.example.com;

    ssl_certificate /etc/ssl/example/fullchain.pem;
    ssl_certificate_key /etc/ssl/example/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;
    return 301 https://$host$request_uri;
}

Test and reload after adding the certificate:

sudo nginx -t
sudo systemctl reload nginx

Confirm that the certificate covers the requested hostname, that the HTTP URL returns a redirect, and that the HTTPS endpoint reaches the expected health route. Record how renewal works and test renewal in the certificate authority’s supported dry-run mode; an untested renewal job is not a recovery plan.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

7. Verify the complete service path

Run checks from outside the VPS as well as locally. A green process status alone does not prove that DNS, TLS, Nginx, and the application agree.

  1. Resolve the hostname and verify it returns the VPS address.

  2. Check the redirect and final HTTPS response:

    curl -I http://app.example.com
    curl -i https://app.example.com/health
  3. Inspect the certificate and negotiated endpoint with your normal TLS diagnostic tools. Confirm the certificate name, expiration date, and complete chain.

  4. Watch application output while making a request:

    pm2 logs nest-app
  5. Inspect Nginx access and error logs:

    sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log
  6. Test a representative authenticated API call, a database-backed operation, and any upload, webhook, or queue route that uses different timeouts.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  7. Reboot during a maintenance window:

    sudo reboot

    After SSH returns, verify systemctl is-active nginx, pm2 status, the local health route, and the public HTTPS route. This confirms that the saved PM2 process list, Nginx enablement, environment variables, and certificate paths all survive a restart.

PM2 or systemd: which supervisor should you use?

Both approaches can keep a NestJS service alive. Choose one owner for the process; running the same application under both creates competing restarts and confusing logs.

Concern PM2 systemd
Crash and reboot recovery Automatic restarts plus a generated startup hook; requires pm2 save. Native Restart=on-failure and enablement with systemctl enable.
Deployment reload pm2 restart and ecosystem configuration are convenient for Node-focused teams. Explicit unit reload/restart commands integrate with the operating system.
Logs pm2 logs and PM2-managed log files. journalctl with centralized system journal controls.
Resource controls Available through PM2 features and configuration. Native CPU, memory, filesystem, and capability limits.
Scaling Can run multiple instances and coordinate reloads. Best suited to explicit service instances; Nginx can load-balance several backends.
Environment ownership Ecosystem files and PM2 startup context must be kept consistent. The unit’s EnvironmentFile and permissions make ownership explicit.

A native systemd unit

Use systemd instead of PM2 when the team wants operating-system-native lifecycle, journal integration, and strict resource policy. Create /etc/systemd/system/nest-app.service:

[Unit]
Description=NestJS application
After=network.target

[Service]
Type=simple
User=nestapp
WorkingDirectory=/var/www/nest-app
Environment=NODE_ENV=production
Environment=PORT=3000
ExecStart=/usr/bin/node /var/www/nest-app/dist/main.js
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Create the unprivileged nestapp user, ensure it can read the application and environment files, then activate the unit:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo systemctl daemon-reload
sudo systemctl enable --now nest-app
sudo systemctl status nest-app
sudo journalctl -u nest-app -n 100 --no-pager

If Node.js is installed outside /usr/bin/node, use the absolute path returned by command -v node for the service account. Test the unit after every runtime or path change.

Scaling beyond one NestJS process

One supervised process is usually the clearest starting point. When traffic or availability requirements justify multiple instances, run each instance on a distinct local port or use a process manager’s instance mode, then configure Nginx upstream load balancing. Shared sessions, uploaded files, WebSocket behavior, database connection limits, migrations, and graceful shutdown all need explicit design before adding replicas. Nginx can distribute traffic across multiple Node.js application servers, but it cannot make a stateful application horizontally safe by itself.

Common failures and recovery paths

Symptom Likely cause Checks and fix
502 Bad Gateway Node is stopped, listening on another port, or bound somewhere Nginx cannot reach. Run pm2 status or systemctl status nest-app; call the local port with curl; compare it with proxy_pass.
Connection refused locally The build failed, the entry path is wrong, or the process exited during startup. Run npm run build, verify the actual dist path, and read PM2 or journal logs for missing variables and dependency errors.
Works over localhost but not by domain DNS, firewall, Nginx server-name matching, or port exposure is wrong. Check A/AAAA records, UFW rules, nginx -t, and the access log. Do not open the Node port as a shortcut.
HTTPS certificate warning The certificate does not cover the hostname, the chain is incomplete, or the wrong server block answers. Inspect the certificate names and expiration, verify ssl_certificate paths, and reload Nginx after correction.
Application loses variables after reboot Variables existed only in an interactive shell. Move them to the supervisor’s protected environment configuration and restart through that supervisor.
Service vanishes after reboot PM2’s process list was not saved or its startup command was never installed. Run pm2 startup, execute its printed privileged command, then pm2 save; or enable the systemd unit.
Requests time out Application work exceeds proxy timeouts or a downstream dependency is stalled. Compare Nginx timeout settings with measured request duration and inspect application and dependency logs before increasing limits.

Operational checklist for every release

  • Confirm the server still uses a supported Node.js active-LTS release.
  • Deploy a reviewed commit and install from the lockfile.
  • Update production variables through the supervisor’s environment mechanism.
  • Run npm run build and verify the generated entry path.
  • Smoke-test the local health route before exposing the release.
  • Restart one supervisor, inspect its logs, and verify the public HTTPS route.
  • Run sudo nginx -t before every Nginx reload.
  • Keep backups of environment configuration, deployment scripts, Nginx server blocks, and database data.
  • Periodically perform a deliberate reboot and certificate-renewal test.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.