System Overview

System Overview

SqlBak is an agent-based backup solution that consists of the following components:

  • SqlBak Server – The main server that hosts the web interface https://app.sqlbak.com and API for interaction with the SqlBak Agent.
  • SqlBak Agent – A system process installed on the user’s server that receives commands from SqlBak Server and executes scheduled backup tasks.
  • SqlBak Agent Config App – A configuration tool that links the SqlBak Agent with SqlBak Server and manages database connections.

All components of the system are developed using .NET Framework.

SqlBak Reference Architecture Diagram

SqlBak Agent

SqlBak Agent is a persistent process installed on the user’s server. It runs in the background regardless of whether users are logged in or not. This process is responsible for executing backups and restores configured by the user via web interface app.sqlbak.com.

🪟 On Windows

On Windows, SqlBak Agent runs as a Windows service named SqlBak Service. Open the Windows Services application (services.msc) to locate and manage it.

SqlBak Service installs automatically when SqlBak is set up on Windows. It starts automatically upon system boot.

SqlBak (Database backup) Windows service

By default, the SqlBak Service runs under the Local System account. You can modify this setting in SqlBak Service properties under “Log On” tab, if needed.

SqlBak System account settings

All necessary files and settings are stored in: 📂C:\ProgramData\Pranas.NET\SqlBak

On Linux

SqlBak Agent on Linux runs as a systemd service.

Check service status: systemctl status sqlbak

SqlBak on Linux check status

The systemd service is configured automatically and starts on its own when the system boots.

During installation, a SqlBak user is created, under which the systemd service will operate. This user is automatically added to the following groups (if they exist): mysql, postgresql, mssql. This is necessary to grant the application access to the corresponding databases.

All necessary data for operation is stored in the /opt/sqlbak/ directory.


SqlBak Agent Config App

Immediately after installing SqlBak on the server, the SqlBak Agent Config App will open.
This application interacts with the SqlBak Agent backup process through sockets and performs the following tasks:

  • Connects the SqlBak Agent to sqlbak.com.
  • Allows adding database connections.
  • Manages settings for DBMS connection configuration
  • Manages security settings, including enabling script execution and password protection for the application UI.
  • Enable Advanced logging.

The SqlBak Agent Config App is available in two formats:

  1. Desktop Application (Windows)
  2. Command-Line Interface (Linux)

Desktop Application (Windows)

After installing SqlBak on a Windows-based operating system, the SqlBak Desktop Application will launch automatically.

The desktop application interacts with the SqlBak Service, allowing users to configure DBMS connections, manage security settings, and enable advanced logging.

SqlBak desktop application

Once the initial setup is complete, you can close the desktop application. The SqlBak Service will continue running in the background to execute scheduled backups as configured.

Note: Most ongoing configuration—job schedules, destinations, notifications, retention policies, and monitoring—is managed in the web dashboard at sqlbak.com.

Command-Line Interface (Linux)

The command-line interface runs by default after installing the package on Linux. More information about CLI interface see here.

CLI SqlBak

Interaction between sqlbak.com and the SqlBak Agent

SqlBak Agent communicates with sqlbak.com via a REST API over HTTPS. The request endpoint is api.sqlbak.com, which is linked to a static IP: 209.133.198.58.

Authentication

SqlBak Agent establishes a connection with sqlbak.com using the Secret Key (found on the Download page). This key links the SqlBak Agent to the user’s SqlBak account.

Note: one agent can only be linked to a single account. If multiple accounts need to manage the same agent, this can be achieved through server sharing between accounts. For more details on server sharing and account management, please refer to the server sharing section.

Communication

Once registered, SqlBak Agent periodically polls api.sqlbak.com to receive commands, such as:

  • Updating backup job settings
  • Starting a backup job
  • Initiating a restore process

Polling intervals:

  • Every 40 seconds under normal conditions
  • Every 5 seconds, if the user has a browser open with the dashboard on sqlbak.com.

Security Notice:
The “commands” received by SqlBak Agent are not arbitrary shell commands that can execute unrestricted actions on your server. Instead, they are specific internal application commands such as: 001004 – Create a backup job

Sending Logs & Backup Results

The execution results and backup logs are sent asynchronously to sqlbak.com.
If a network error occurs (e.g., failure to establish a connection), the backup agent will retry sending the results until successful.