2025-12-08 12:12:07 +07:00
2025-12-08 12:12:07 +07:00
2025-12-08 12:12:07 +07:00
2025-12-08 15:54:46 +07:00
2025-12-08 16:05:04 +07:00
2025-12-08 15:56:32 +07:00

Backstor UI

Backstor UI is a modern, web-based interface for managing the Bacula Backup System. It provides a dashboard for job statistics, client management, and detailed job reporting, connected directly to your Bacula PostgreSQL database and Bacula Director.

Features

  • 📊 Dashboard: Real-time overview of backup jobs, success rates, and storage usage.
  • 📝 Jobs List: Detailed history of backup jobs with status and duration.
  • 🖥️ Client Management: View connected clients and easily add new clients via the UI.
  • ⚙️ Automated Configuration: Generates and pushes client configuration files to the Bacula server via SSH.
  • 🌓 Modern Design: Clean, responsive interface.

Prerequisites

  • Linux Server (tested on Ubuntu/Debian/CentOS).
  • Node.js (v16+ recommended).
  • Bacula installed with PostgreSQL backend.
  • SSH Access to the Bacula Director server (for client management features).

Installation

We provide an automated installer script that sets up dependencies, configuration, and a systemd service.

  1. Clone the repository:

    git clone ssh://git@gitea.avt.data-center.id:2525/othman.suseno/backstor-ui.git
    cd backstor-ui
    
  2. Run the Installer:

    sudo ./install.sh
    
  3. Configuration: The installer will prompt you for the following details:

    • Database: Host, User, Password, DB Name (default: bacula), Port.
    • SSH (Remote Admin): Host IP, User (usually root), Password OR Key Path.
    • App: Port to run the UI on (default: 3000).
  4. Access the UI: Open your browser and navigate to: http://<your-server-ip>:3000

Uninstallation

To remove the application and service:

sudo ./uninstall.sh

This script will:

  • Stop and disable the backstor service.
  • Remove the systemd service file.
  • Optionally remove configuration (.env) and dependencies (node_modules) upon confirmation.

Manual Setup (Development)

If you prefer to run it manually for development:

  1. Install Dependencies:

    cd server
    npm install
    
  2. Configure Environment: Copy .env.example to .env and edit it:

    cp .env.example .env
    nano .env
    
  3. Run Server:

    node index.js
    

    The frontend is served statically by the Node.js server.

Architecture

  • Frontend: HTML5, Vanilla CSS, Vanilla JS (No build step required).
  • Backend: Node.js, Express.
  • Database: pg (PostgreSQL client).
  • Remote Mgmt: ssh2 (For executing commands on Bacula server).
Description
Adastra BackSTOR appliance UI
Readme 1.7 MiB
Languages
JavaScript 74.2%
CSS 11.5%
Shell 9%
HTML 5.3%