DataShield MCP Dataset Library

Deploy on Hostinger / LiteSpeed

Practical, step-by-step deployment guidance for a beginner-friendly server setup.

Goal

Run two processes:

  1. Web app (Next.js)
  2. Worker (pg-boss crawler)

Optionally:

  1. MCP server (stdio)

Prereqs

  • A Postgres database you can connect to
  • Node.js 18+ (Node 20+ recommended)
  • A way to run long-lived processes (PM2, systemd, Hostinger Node App manager, etc.)

Recommended layout

On the server:

  • /var/www/myorg-datasets/ (repo checkout)
  • .env file with secrets

1) Configure environment

Create .env in the repo root:

DATABASE_URL=postgres://USER:PASS@HOST:5432/DBNAME
EMERGENCY_ADMIN_TOKEN=change-me
TZ=America/Los_Angeles
FILESYSTEM_ALLOWED_ROOTS=/mnt/data

2) Install and build

npm install
npm run db:migrate
npm run db:seed
npm run build

3) Start the web process

Option A: Hostinger Node app manager

  • Point the app root to your repo
  • Start command: npm run start
  • Ensure it sets env vars from your .env (or Hostinger UI)

Option B: PM2

npm install -g pm2
pm2 start npm --name myorg-datasets-web -- run start
pm2 save

4) Start the worker

The worker must run separately:

pm2 start npm --name myorg-datasets-worker -- run worker
pm2 save

5) Reverse proxy / domain

Expose the web process at your chosen domain/subdomain.

  • If you already run another site at myorg.ai, consider a subdomain like datasets.myorg.ai.

6) Validate

  • Web: open / and /datasets
  • Management: open /app and enter the admin token
  • Health: open /api/health

7) Common “it’s down” checklist

  • pm2 ls shows both processes online
  • /api/health is reachable
  • Postgres is reachable from the server
  • Migrations are applied (doctor shows no pending migrations)

Notes

LiteSpeed/Hostinger environments vary. If you can’t keep a worker alive via their UI, use PM2/systemd.