BOO is a stand-alone PHP Laravel project that provide Spatie's Laravel Backup commands and other tools.
It allows you to easily save the contents of a project's production folder and its database in a s3 bucket using a scheduled job. It is also possible to duplicate one or more S3 buckets during this backup.
- PHP 8.2 >
- Composer 2
- MySQL | PostgreSQL
Create and edit your own .env file with .env.example
cp .env.example .envGenerate application key and clear cache
make installCreate a new cronjob called every minute like this:
* * * * * php /your/project/directory/location/artisan schedule:runUse this Docker image to run backups: https://hub.docker.com/r/webidfr/boo
Requirements:
- Mount of your
.envfile (use .env.example as template) as/application/.envinside the container. - Mount the target directory to backup as
/targetinside the container. - Mount your
rclone.confas/root/.config/rclone/rclone.confinside the container for extra S3 buckets backup. - Use the
hostnetwork to allow access to your local MySQL server.
Create and edit your own .env file with .env.example
ℹ️ mysqldump Ver 10.19 Distrib 10.11.6-MariaDB is installed on every image. Only various postgres versions images are available.
curl https://raw.githubusercontent.com/web-id-fr/boo/main/.env.example --output .envSet the target directory as the volume path inside the container
BACKUP_PROJECT_DIRECTORY=/targetExample command to list backups done.
docker run --rm \
-v $(pwd)/.env:/application/.env \
-v /your/path/to/backup:/target \
--network="host" \
webidfr/boo:2025-postgres-16 php artisan backup:listCreate a new cronjob called every minute like this:
* * * * * docker run --rm -v /your/path/.env:/application/.env -v /your/path/to/backup:/target --network="host" webidfr/boo:2025-postgres-16 schedule:run
make tests