86 lines
2.6 KiB
Markdown
86 lines
2.6 KiB
Markdown
# 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**:
|
|
```bash
|
|
git clone ssh://git@gitea.avt.data-center.id:2525/othman.suseno/backstor-ui.git
|
|
cd backstor-ui
|
|
```
|
|
|
|
2. **Run the Installer**:
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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**:
|
|
```bash
|
|
cd server
|
|
npm install
|
|
```
|
|
|
|
2. **Configure Environment**:
|
|
Copy `.env.example` to `.env` and edit it:
|
|
```bash
|
|
cp .env.example .env
|
|
nano .env
|
|
```
|
|
|
|
3. **Run Server**:
|
|
```bash
|
|
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).
|