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:

