Portabase Logo

User Guide

Manage your agents, databases, channels and backup policies on a daily basis.


Understanding the Architecture

Portabase runs as two separately deployed components.

The Dashboard centralizes configuration: agents, databases, backup schedules, retention, alerts and storage channels.

The Agent is a Rust binary installed on the same network as your databases. It is responsible for:

  • detecting and reporting your databases automatically
  • executing backups according to the defined schedule
  • sending backup files to your storage destinations
  • reporting logs and status back to the dashboard

The dashboard never connects directly to your databases. Everything goes through the agent. This architecture lets you protect databases on a private network or behind a firewall without exposing your servers.

Dashboard → Agent → Databases architecture

The agent regularly sends a ping to the dashboard. This ping transmits the list of available databases, agent status and operation results. In return, the dashboard sends instructions (schedules, restore orders, etc.).

Entity Hierarchy

Organisation
├── Agents
│   └── Databases (discovered automatically)
│       ├── Project assignment (optional)
│       ├── Backup policy (cron)
│       ├── Retention policy
│       ├── Alert policies  ──→  Notification channels
│       └── Storage policies ──→ Storage channels
├── Projects (logical grouping)
├── Notification channels
└── Storage channels

Managing Agents

An agent represents one instance of the Portabase Agent program deployed on a server. A single agent can manage multiple databases on the same server. If you have databases on multiple servers, create one agent per server.

Creating an Agent

Prerequisite: you must be owner or admin of the organisation.

Agents list page

Go to Organisation > Settings > Agents and click Add agent.

Fill in the fields:

  • Name — human-readable identifier (e.g. Production Server EU, Dev Machine)
  • Description — free notes about this agent's role

Create agent dialog

Confirm. The agent is created and an Edge Key is generated automatically.

Copy the Edge Key from the agent detail page (button Show Key), then paste it into the Portabase Agent Rust configuration on your server.

Registration & Setup panel with Edge Key

Verifying the Connection

On next startup, the agent pings the dashboard. You'll know it's connected when:

  • the Last Contact column shows a recent timestamp
  • the status turns green in the interface

From the first ping, the agent transmits the list of all databases it can see. These databases appear automatically in the dashboard — you don't need to create them manually.

Monitoring Agent Health

From the agent detail page, the Health tab shows a 12-hour ping history as a grid. Each cell represents one ping: green if received, red if missed.

Agent health grid — 12h ping history


Organising Databases with Projects

A project is a logical folder for grouping databases. It has no effect on backup execution — it is purely an organisational tool.

Typical uses: group all databases for an application, separate production from staging, organise by team or client.

Creating a Project

Prerequisite: you must be owner or admin of the organisation.

  1. Go to Organisation > Projects
  2. Click New project
  3. Give the project a name, choose databases and confirm

Create project dialog


Configuring a Database

How Databases Appear

Databases are not created manually. They appear automatically as soon as the connected agent detects them via its ping.

If a database doesn't appear, check that:

  • the agent is connected (green status, recent Last Contact)
  • the database is accessible from the agent's server

Configuration Tabs

From the database detail page (Projects > [project] > [database]):

TabContent
OverviewKPIs, status, general information
BackupsBackup list, manual actions
RestoreAvailable restore operations
ScheduleCron schedule + retention
AlertsAlert policies
StorageStorage policies
LogsDetailed operation logs

Database header with navigation tabs

Triggering a Manual Backup

From the Backups tab, click Backup now. The backup moves to waiting status, then ongoing as soon as the agent picks it up at the next ping.

Backup now button

StatusMeaning
waitingWaiting to be picked up by the agent
ongoingCurrently running
successCompleted successfully
failedFailed — check the Logs tab for details

Importing an External Backup

  1. From the Backups tab, click Import
  2. Drag and drop your file or browse your filesystem

Import backup dialog

Restoring a Database

Restoration overwrites the current data in the target database. Make sure you have a recent backup before restoring. Restore is not available for Redis and Valkey.

From the Restore tab, two options:

  • From an existing backup — choose a backup from the list and click Restore
  • From external storage — select a file available in one of your storage channels

Configuring Channels

Channels are connectors to external services, used in two contexts: notifications and storage. They are configured at the organisation level and can be reused across multiple databases.

Creating a channel:

  1. Organisation > Notifications > Channels > Add channel
  2. Choose the provider

Choose notification provider

  1. Fill in the connection details
  2. Give the channel a recognisable name (e.g. Slack #ops-alerts)
  3. Test with the Test button
  4. Enable the channel

A disabled channel receives no notifications even if alert policies point to it. Use this flag to temporarily silence a channel without losing its configuration.

Creating a channel:

  1. Organisation > Storages > Channels > Add channel
  2. Choose the provider

Choose storage provider

  1. Fill in the connection parameters
  2. Give the channel a name (e.g. S3 Backup Bucket EU)
  3. Enable the channel

The Local provider stores files on the agent's server, not the dashboard server. If the agent moves to another server or the disk changes, locally stored backups will no longer be accessible.


Setting Up Policies

Policies are configured at the database level. A database can have multiple policies of different types.

Backup Schedule (cron)

Where to configure: database detail page > Schedule tab

The schedule is a cron expression that defines when automatic backups run.

┌──────── minute (0–59)
│  ┌───── hour (0–23)
│  │  ┌── day of month (1–31)
│  │  │  ┌─ month (1–12)
│  │  │  │  ┌ day of week (0–7, 0 and 7 = Sunday)
│  │  │  │  │
*  *  *  *  *
ExpressionResult
0 2 * * *Every day at 2 AM
0 */6 * * *Every 6 hours
0 2 * * 1Every Monday at 2 AM
0 2 1 * *1st of every month at 2 AM

Need help building an expression? Use crontab.guru.

Backup schedule configuration

To disable automatic backups, switch to Manual mode. You can still trigger backups manually from the Backup now button.

Deleting the schedule also deletes the associated retention policy. If you add a schedule later, you will need to reconfigure retention.

Retention Policy

Where to configure: database detail page > Schedule tab > Retention section

Prerequisite: an active cron schedule must exist on the database.

Keeps only the N most recent backups. Older backups are deleted as new ones are created.

ParameterMinMaxDefault
Number of backups11007

Ideal for development databases or when disk space is limited.

Keeps all backups from the past N days.

ParameterMinMaxDefault
Number of days13,65030

Ideal for databases with legal retention requirements over a specific period.

The Grandfather-Father-Son strategy keeps the best representative of each time period to maximise historical coverage.

LevelWhat is keptDefaultMax
DailyThe last N days731
WeeklyLast backup of the last N weeks452
MonthlyLast backup of the last N months12120
YearlyLast backup of the last N years350

With default values: maximum 26 backups covering 3 years of history.

Ideal for production databases with compliance or long-term audit requirements.

There can only be one retention policy per database. Creating a new one automatically replaces the existing one.

Backup retention policy configuration

Alert Policies

Where to configure: database detail page > Alerts tab

Prerequisite: at least one notification channel must be configured and enabled.

EventWhen is it triggered?
error_backupA backup fails
success_backupA backup completes successfully
error_restoreA restore fails
success_restoreA restore completes successfully
error_health_databaseThe agent reports the database is no longer accessible

The weekly_report event is not yet implemented. Want to help? See the Contributing guide.

Creating a policy:

  1. Alerts tab > Add policy
  2. Select the target notification channel
  3. Check the events to monitor
  4. Enable and save

Notification policies panel

You can create multiple policies on the same database, for example, Slack for errors and SMTP for successes. Each policy can be individually disabled without deleting it.

Storage Policies

Where to configure: database detail page > Storage tab

Prerequisite: at least one storage channel must be configured and enabled.

Creating a policy:

  1. Storage tab > Add policy
  2. Select the target storage channel
  3. Enable and save

Storage policies panel

You can create multiple storage policies on the same database. The backup file will be sent simultaneously to all active destinations.

From the Backups tab, each backup shows the send status per channel:

StatusMeaning
pendingWaiting to be sent
successSent (path, size and checksum verified)
failedSend failed for this channel

Quick Reference

What you're looking forPath
Create an agentSettings > Agents > Add agent
View an agent's keySettings > Agents > [agent] > Show Key
Create a projectProjects > New project
View an agent's databasesSettings > Agents > [agent] > Databases
Configure backup scheduleProjects > [project] > [database] > Schedule
Configure retentionProjects > [project] > [database] > Schedule > Retention
Configure alertsProjects > [project] > [database] > Alerts
Configure backup storageProjects > [project] > [database] > Storage
Add a notification channelOrganisation > Notifications > Channels > Add channel
Add a storage channelOrganisation > Storages > Channels > Add channel
Notification logsOrganisation > Notifications > Logs
Agent healthSettings > Agents > [agent] > Health

Last updated on

On this page