Skip to main content
HomeFeaturesMarketplaceAboutPricingDownloadDocsBlogContact
Docs/Installation

Linux Automation Node & Server Installation Guide

Complete guide to installing BrowserMesh on Linux desktop or VPS servers. Run high-performance automation nodes with 100% local data privacy.

BrowserMesh provides first-class support for Linux operating systems, catering to both visual desktop workstations (Ubuntu, Fedora, Arch Linux) and headless cloud servers (DigitalOcean, AWS EC2, Hetzner, Linode).

Running automation nodes on Linux offers exceptional performance, minimal memory footprints, and effortless integration with enterprise DevOps pipelines and systemd process management.


Desktop Application Installation (GUI)

For graphical desktop environments, BrowserMesh is distributed as a portable AppImage and a Debian package (.deb):

Option 1: Universal AppImage

  1. Download the latest BrowserMesh-linux.AppImage from the Download Center (/download).
  2. Open your terminal and grant execution permissions:
    Terminal / Code
    chmod +x BrowserMesh-linux.AppImage
    
  3. Launch the application:
    Terminal / Code
    ./BrowserMesh-linux.AppImage
    

Option 2: Debian / Ubuntu .deb Package

Terminal / Code
wget https://github.com/browsermesh/releases/releases/latest/download/browsermesh-linux.deb
sudo dpkg -i browsermesh-linux.deb
sudo apt-get install -f # Fix any missing dependencies

How to Set Up Headless BrowserMesh Nodes on Linux Servers?

Deploying BrowserMesh on headless Linux distributions requires executing our automated installation script or running the lightweight companion daemon binary. The background daemon installs required Chromium runtime dependencies, registers a systemd background service, and establishes an outbound TLS tunnel to the central orchestration server automatically.

Why Choose Headless Linux Daemons for Continuous Automation?

Headless Linux daemons provide uninterrupted 24/7 background automation without requiring graphical desktop environments or expensive cloud virtual machines. By running on private servers or local home labs, you eliminate recurring cloud proxy markups and retain absolute control over hardware compute resources and database storage.

For background automation nodes on cloud VPS instances without a graphical display:

Terminal / Code
curl -sSL https://www.browsermesh.in/scripts/install-headless.sh | bash

Alternative using wget:

Terminal / Code
wget -qO- https://www.browsermesh.in/scripts/install-headless.sh | bash

Essential Headless Chromium Dependencies

If deploying on a minimal Ubuntu or Debian server image, install required shared libraries for headless Chromium:

Terminal / Code
sudo apt-get update && sudo apt-get install -y \
  libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \
  libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 \
  libgbm1 libasound2 libpango-1.0-0 libcairo2

Running as a Persistent Systemd Service

To ensure the BrowserMesh node daemon starts automatically on server boot and recovers gracefully from system crashes, configure a systemd service:

Create /etc/systemd/system/browsermesh.service:

Terminal / Code
[Unit]
Description=BrowserMesh Automation Node Daemon
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/browsermesh-node
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=10
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

Enable and start the service:

Terminal / Code
sudo systemctl daemon-reload
sudo systemctl enable browsermesh
sudo systemctl start browsermesh

Managing Your Node via the mesh CLI

The setup script creates a global command shortcut called mesh:

  • mesh status : View memory consumption, CPU load, and connected cloud status.
  • mesh logs : Tail live execution logs and scraping workflow events.
  • mesh restart: Perform a graceful reboot of the node worker.
  • mesh stop : Temporarily pause the background automation engine.
  • mesh start : Resume the background daemon.

Docker Container Deployment

You can also deploy BrowserMesh inside containerized Kubernetes or Docker environments.

Terminal / Code
FROM node:20-slim
RUN apt-get update && apt-get install -y chromium \
    && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
CMD ["npm", "start"]

Headless Chromium Memory Optimization

When hosting on entry-level cloud VPS instances (such as a 1 GB or 2 GB RAM VPS from Hetzner, DigitalOcean, or AWS EC2 t4g.small), add the following performance tuning flags to /home/ubuntu/browsermesh-node/.env:

Terminal / Code
BROWSER_FLAGS="--no-sandbox,--disable-setuid-sandbox,--disable-dev-shm-usage,--disable-accelerated-2d-canvas,--no-first-run,--disable-gpu"

These flags prevent /dev/shm shared memory exhaustion, disable superfluous GPU virtualization layers, and lower base Chromium resident memory down to under 120 MB per process.