Add README.md documentation

This commit is contained in:
2025-12-08 16:05:04 +07:00
parent 7b406e764f
commit 84563d3748

85
README.md Normal file
View File

@@ -0,0 +1,85 @@
# 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).