LINUX, FOSS AND LIBRARY TECHNOLOGY ENTHUSIAST

Wednesday, September 2, 2026

Databasement: A Self-Hosted Database Backup Manager with WebGUI

0 comments

If you run a homelab or work as a system administrator, you probably have several applications running on your server, whether it's  WordPress, Nextcloud, Paperless-ngx, or something else you use every day. Most of these applications have one thing in common: they depend on a database. Losing the database can be much worse than losing the application itself, as you could lose users, settings, transactions, documents, configurations, and years of stored data, which is where Databasement becomes useful.

What is Databasement?

Databasement is an open-source, self-hosted database backup management application created by David-Crty. It offers an intuitive web-based dashboard designed to centralize and simplify the entire backup lifecycle—from server connections and automated scheduling to snapshot management and restoration.

It supports a wide range of database systems, including:

  • MySQL
  • MariaDB
  • PostgreSQL
  • Microsoft SQL Server
  • MongoDB
  • SQLite
  • Firebird
  • Redis / Valkey

Databasement streamlines your data protection by supporting diverse storage destinations—including local storage, S3-compatible storage, Azure Blob Storage, Samba/SMB, SFTP, and FTP—to seamlessly manage your workflow from database and backup schedule to storage and retention. Once configured, It fully automates your backup jobs while providing a centralized dashboard to monitor them with ease.

Backing up different apps usually means writing separate scripts, setting up cron jobs, and managing individual logs for each one, which gets messy as you add more services. Databasement fixes this by putting everything into one easy-to-use web dashboard where you can schedule, store, and monitor all your backups in one place.

Installing Databasement with Docker

Create directories for the application data and backups:

mkdir -p databasement/{databasement-data,backups}

The databasement-data directory will contain Databasement's own application data, while backups will be used for database backup files.

Give the backup directory the required ownership:

sudo chown -R 1000:1000 backups
chmod 755 backups

Installing Docker

If Docker isn't already installed on your server, install it with:

sudo apt update && sudo apt upgrade -y
sudo apt install -y uidmap curl

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Add your current user to the Docker group:

sudo usermod -aG docker $USER

You may need to log out and log back in for the group change to take effect.

Create the Docker Compose file

Move into the Databasement directory:

cd databasement

Then create the Compose file:

nano docker-compose.yml

Add the following configuration:

services:
  databasement:
    image: davidcrty/databasement:1
    container_name: databasement
    restart: unless-stopped

    ports:
      - "2226:2226"

    environment:
      APP_DEBUG: "false"
      APP_DISPLAY_TIMEZONE: "Asia/Kolkata"
      APP_ENV: "production"
      APP_URL: "http://localhost:2226"

      DB_CONNECTION: sqlite
      DB_DATABASE: /data/database.sqlite

      ENABLE_DATABASE_MIGRATION: "true"
      ENABLE_QUEUE_WORKER: "true"

    volumes:
      - ./databasement-data:/data
      - ./backups:/backups

There are two important volume mappings here:

- ./databasement-data:/data
- ./backups:/backups

The first one stores Databasement's own data.

The second one exposes the host's backups directory to the container as /backups.

Start Databasement

Start the container in the background:

docker compose up -d

Check that it is running:

docker ps

You should see the databasement container running.

If you want to check what is happening inside the container, view the logs:

docker logs databasement

Open the Databasement Web Interface

Once the container is running, open:


Create your administrator account and log in to the dashboard.

From there, you can start adding your database servers and configuring backup jobs.

Creating the Local Backup Storage

One important thing to understand when configuring storage is the difference between the host filesystem and the container filesystem.

On the host, your backup directory might actually be:

/home/user/docker/databasement/backups

But Databasement does not see the host's filesystem directly.

Inside the container, that directory is mounted as:

/backups

This is because of the Docker Compose volume:

- ./backups:/backups

So when creating a local storage volume in the Databasement web interface, use:

/backups

Do not enter:

/home/user/docker/databasement/backups

Databasement needs the path as it appears inside the container.

Reference:


No comments:

Post a Comment