imafaz/netback

lightweight library for backup and restore vpn servers

1.0.0 2024-11-14 12:29 UTC

This package is auto-updated.

Last update: 2025-06-14 13:48:22 UTC


README

NetBack is a PHP library designed for backing up and restoring data from network devices and applications. It provides an easy-to-use interface for managing backups across various platforms, including IBSng, Mikrotik, and xui.

Features

  • Backup and restore functionality for network devices.
  • Support for multiple device types: IBSng, Mikrotik, and xui.
  • Logging capabilities to track backup operations.

Requirements

  • PHP 7.4 or higher
  • Composer
  • phpseclib3 library
  • EasyLog library

Installation

You can install NetBack using Composer. Run the following command in your terminal:

composer require imafaz/netback

Usage

To use the NetBack library, you need to create instances of the classes corresponding to the devices you want to back up. Below are examples of how to use each class.

Examples

Example for IBSng

require __DIR__ . '/vendor/autoload.php';

use NetBack\IBSng;

$ibsng = new IBSng('IBSngDevice', '192.168.1.1', 'username', 'password', 22);
$ibsng->backup('/path/to/local/backup.sql');

Example for Mikrotik

require __DIR__ . '/vendor/autoload.php';

use NetBack\Mikrotik;

$mikrotik = new Mikrotik('MikrotikDevice', '192.168.1.2', 'username', 'password', 22);
$mikrotik->backup('backupName', '/path/to/local/backup.backup');

Example for xui

require __DIR__ . '/vendor/autoload.php';

use NetBack\xui;

$xui = new xui('xuiDevice', '192.168.1.3', 'username', 'password', 22);
$xui->backup('/path/to/local/xui.db');

Available Methods

IBSng

__construct

Description:

Initializes the IBSng object with connection parameters.

Signature:

$ibsng = new IBSng(string $name, string $ip, string $username, string $password, int $port);

Attributes:

Attribute Description Type Required Default
$name Name of the IBSng device string Yes -
$ip IP address of the device string Yes -
$username Username for authentication string Yes -
$password Password for authentication string Yes -
$port Port for SSH connection int Yes 22

backup

Description:

Performs a backup of the IBSng database.

Signature:

$ibsng->backup(string $localPath);

Attributes:

Attribute Description Type Required Default
$localPath Path to save the backup file string Yes -

Mikrotik

__construct

Description:

Initializes the Mikrotik object with connection parameters.

Signature:

$mikrotik = new Mikrotik(string $name, string $ip, string $username, string $password, int $port);

Attributes:

Attribute Description Type Required Default
$name Name of the Mikrotik device string Yes -
$ip IP address of the device string Yes -
$username Username for authentication string Yes -
$password Password for authentication string Yes -
$port Port for SSH connection int Yes 22

backup

Description:

Creates a backup of the Mikrotik device.

Signature:

$mikrotik->backup(string $backupName, string $localPath);

Attributes:

Attribute Description Type Required Default
$backupName Name of the backup file string Yes -
$localPath Path to save the backup file string Yes -

xui

__construct

Description:

Initializes the xui object with connection parameters.

Signature:

$xui = new xui(string $name, string $ip, string $username, string $password, int $port);

Attributes:

Attribute Description Type Required Default
$name Name of the xui device string Yes -
$ip IP address of the device string Yes -
$username Username for authentication string Yes -
$password Password for authentication string Yes -
$port Port for SSH connection int Yes 22

backup

Description:

Downloads the xui database file.

Signature:

$xui->backup(string $localPath);

Attributes:

Attribute Description Type Required Default
$localPath Path to save the database file string Yes -

Todo

  • add restore method
  • add other devices support

License

This project is licensed under the MIT License. See the LICENSE file for details.