Domainatrix LogoDomainatrix

Installation & Setup

Guide on how to run, deploy, and configure Domainatrix.

Domainatrix is designed to be highly versatile. You can run it as a lightweight Docker container, host it as a background service on a Linux VPS, or run it locally on your machine.


🚀 Desktop Installation

If you prefer to run Domainatrix as a standalone desktop utility on your local machine, download the pre-compiled package for your system.

Linux (x64):

Windows (x64):

Linux Installation

Debian / Ubuntu (.deb)

  1. Download the .deb package.
  2. Install it using dpkg or apt:
    sudo dpkg -i domainatrix_1.0.0_amd64.deb
    # If there are missing dependencies:
    sudo apt install -f
  3. Launch Domainatrix from your application menu or run domainatrix in your terminal.

Fedora / RHEL (.rpm)

  1. Download the .rpm package.
  2. Install it using dnf:
    sudo dnf install ./domainatrix-1.0.0.x86_64.rpm
  3. Launch Domainatrix from your application menu or run domainatrix in your terminal.

AppImage (Universal)

  1. Download the .AppImage package.
  2. Grant execution permissions:
    chmod +x Domainatrix-1.0.0.AppImage
  3. Run the application:
    ./Domainatrix-1.0.0.AppImage

All application state, history, and domain settings will be safely stored locally in: ~/.config/domainatrix/data/domainatrix.sqlite

Windows Installation

  1. Download the .exe installer.
  2. Run the Domainatrix.Setup.1.0.0.exe installer and follow the instructions.

🐳 Docker Deployment

Docker is the easiest way to deploy Domainatrix on a server or network with persistent data and isolated dependencies.

Prepare the Directory

Create a dedicated folder for your Domainatrix deployment:

mkdir -p ~/domainatrix/data
cd ~/domainatrix

Create docker-compose.yml

Save the following configuration inside that folder as docker-compose.yml:

version: '3'

services:
  domainatrix:
    image: pinkpixeldev/domainatrix:latest
    container_name: domainatrix
    restart: unless-stopped
    ports:
      - "8765:3000"
    environment:
      - NODE_ENV=production
      - DB_FILE_NAME=/app/data/domainatrix.sqlite
      - PORT=3000
      - HOSTNAME=0.0.0.0
      - CRON_SECRET=your_super_secure_cron_secret
      # Add optional environment variables here (see Environment Setup page)
    volumes:
      - ./data:/app/data

Start the Container

Run the container in detached (background) mode:

docker compose up -d

Domainatrix will now be accessible at http://localhost:8765 (or the IP address of your host on port 8765).


⚙️ Native Linux VPS Deployment (Node.js & PM2)

If you prefer to run Domainatrix natively without Docker:

Install Prerequisites

Ensure Node.js (v20+), npm, and SQLite3 are installed on your server:

# Ubuntu/Debian example
sudo apt update
sudo apt install -y nodejs npm sqlite3

# Arch Linux example
sudo pacman -Syu nodejs npm sqlite

Clone and Build

Clone the repository, install dependencies, and build the production bundle:

git clone https://github.com/pinkpixel-dev/domainatrix.git
cd domainatrix
npm install
npm run build

This compiles a standalone server inside the .next/standalone/ folder.

Run with PM2

Use PM2 to run and keep the application alive:

# Install PM2 globally
sudo npm install -g pm2

# Run the standalone server with necessary environment variables
pm2 start .next/standalone/server.js --name domainatrix --env PORT=8765,DB_FILE_NAME=./data/domainatrix.sqlite,CRON_SECRET=your_cron_secret

# Ensure PM2 restarts upon system boot
pm2 save
pm2 startup

🕒 Setting Up Scheduled Checks (Cron Jobs)

To automate background uptime checks, domain/SSL expiration scans, and DNS monitor updates, you need to configure a cron job to call the internal API.

Open your system crontab:

crontab -e

Add the following entries (make sure to replace your_super_secure_cron_secret with the value you defined in your .env or docker-compose.yml file, and update http://127.0.0.1:8765 with your actual instance URL if needed):

# 1. Trigger HTTP uptime checks every 5 minutes (lightweight, rapid checks)
*/5 * * * * curl -fsS -X POST -H "Authorization: Bearer your_super_secure_cron_secret" http://127.0.0.1:8765/api/monitoring/uptime/run > /dev/null 2>&1

# 2. Trigger full WHOIS, DNS, and SSL portfolio updates once a day (heavyweight checks)
0 0 * * * curl -fsS -X POST -H "Authorization: Bearer your_super_secure_cron_secret" http://127.0.0.1:8765/api/monitoring/checks/cron > /dev/null 2>&1

[!TIP] Splitting the cron jobs ensures your server performs lightweight uptime checks frequently, while doing heavy WHOIS queries only once a day to prevent getting rate-limited by public registries.

On this page