RELIABILITY

Backups that actually restore.

BCE runs on a self-hosted server — no managed database service quietly backing things up. If a drive fails or a deploy goes wrong, recovery is entirely on whatever backup system exists. This one had to work, every time, on the first try.

PythonDjangoCeleryDocker
BCE / Backup & Restore — CEO only
Snapshot — Jul 14, 2026, 03:00Database + Media · 2.4 GB
Restore
Snapshot — Jul 13, 2026, 03:00Database + Media · 2.3 GB
Restore
Snapshot — Jul 12, 2026, 03:00Database + Media · 2.3 GB
Restore
C:\Users\Ahmed\Backups\bce_2026-07-14 /host/c/Users/Ahmed/Backups/bce_2026-07-14
The Breakdown

The Problem

The original setup had no formal backup process — recovery meant manually dumping the database and hoping nobody needed the media files. There was also a platform-mismatch problem baked in from day one: the app runs inside Docker on a Windows host, so any backup or restore path typed in by a user needed to resolve correctly inside the container's Linux filesystem, and vice versa.

What I Built

A single, unified backup model that captures the database and media together as one consistent unit — so a restore always brings back a snapshot where the two actually match. Backups and restores run as Celery tasks in the background, with manual path selection so the CEO can point a restore at a specific archive. Access is locked to CEO-level accounts only, and every path passes through a translation layer mapping Windows host paths to their Docker-mounted equivalents.

Process

How it works.

01

Trigger

The CEO clicks "Backup Now," or a schedule fires — either way it kicks off a Celery task instead of blocking the request.

02

Snapshot

The task captures the database and media directory together in one pass, tagged with a single timestamp so both sides represent the exact same moment.

03

Path resolve

Any host-side path in the operation runs through the Windows ↔ Docker translation layer before touching the filesystem.

04

Restore on demand

The CEO picks a specific archive — not just "latest" — and triggers a restore, reversing the same path logic to put files back exactly where they belong.

Outcome
1
UNIFIED BACKUP
DB + MEDIA
1
PERMISSION TIER
WITH ACCESS
0
MANUAL DB DUMPS
SINCE LAUNCH
Why it matters

A backup system nobody trusts is worse than no backup system at all — it creates false confidence right up until it matters. One unified snapshot means when someone needs to restore something, there's exactly one button to press and one outcome to expect.