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.
-
Clone the repository:
git clone ssh://git@gitea.avt.data-center.id:2525/othman.suseno/backstor-ui.git cd backstor-ui -
Run the Installer:
sudo ./install.sh -
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).
- Database: Host, User, Password, DB Name (default:
-
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
backstorservice. - 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:
-
Install Dependencies:
cd server npm install -
Configure Environment: Copy
.env.exampleto.envand edit it:cp .env.example .env nano .env -
Run Server:
node index.jsThe 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).