18bfec87f2c1803ced2cc2f84a96c016125b79b3
Build and Push / build (godump, amd64, linux) (push) Successful in 22s
GoDump
GoDump is a lightweight, standalone MariaDB backup application written in Go. It manages multiple MariaDB instances concurrently, automatically discovers databases, runs scheduled backups, enforces retention policies, and presents a sleek, embedded web UI to manage operations.
Features
- Multi-Instance Support: Manage multiple MariaDB servers independently.
- Auto-Discovery: Automatically discovers all non-system databases (
information_schema,performance_schema,mysql,sysare ignored) before backing up. - Isolated Backups: Each database is backed up via
mysqldumpin a dedicated subprocess, compressed instantly withgzip, and stored independently. Failure of one database does not disrupt others. - Retention Policies: Configurable retention period (in days) per instance. Old backups are automatically groomed after every run.
- Embedded Web UI: Single-page modern interface served directly from the Go binary. No external CDN dependencies, fully functional offline. View statuses, trigger manual backups, browse backup files, and read real-time logs.
- Optional Authentication: Secure your dashboard and API with a simple, cookie-based session login.
- Notifications: Receive instant alerts when backup jobs complete via HTML Emails (SMTP) or JSON Webhooks (perfect for Ntfy, Gotify, Discord, Slack, Zapier, etc.).
- Cron Scheduling: Uses standard cron expressions to schedule automated jobs.
Requirements
The machine running GoDump must have the following installed in its system PATH:
mysqldumpgzip
Building from Source
Ensure you have Go 1.20+ installed.
git clone <repository_url>
cd godump
go mod tidy
GOOS=linux GOARCH=amd64 go build -o godump
Configuration
GoDump uses a YAML configuration file. By default, it looks for /etc/godump/config.yaml, but you can specify a custom path using the --config flag.
Example config.yaml
server:
port: 8080
auth:
enabled: true
username: admin
password: password
notifications:
events:
on_success: false
on_failure: true
email:
enabled: true
# You can override events at the channel level
# events:
# on_success: false
# on_failure: true
host: smtp.example.com
port: 587
username: myuser
password: mypassword
from: godump@example.com
to: you@example.com
webhooks:
- enabled: true
url: https://hook.example.com/success
events:
on_success: true
on_failure: false
- enabled: true
url: https://hook.example.com/failure
events:
on_success: false
on_failure: true
headers:
Authorization: "Bearer your_token_here"
logging:
file: ""
instances:
- name: primary
host: 192.168.1.10
port: 3306
user: backup
password: secret
backup_dir: /backups/primary
retention_days: 14
schedule: "0 2 * * *"
- name: secondary
host: 192.168.1.20
port: 3306
user: backup
password: secret
backup_dir: /backups/secondary
retention_days: 7
schedule: "0 3 * * *"
server.port: The HTTP port for the web UI.auth: Optional authentication for the Web UI.enabledto turn it on, along withusernameandpassword.notifications: Optional post-run notifications.events: Control what triggers notifications globally (on_success,on_failure).email: SMTP details for sending HTML-formatted email alerts. Can have its owneventsblock.webhooks: An array of webhook endpoints. Each can have its owneventsblock to fire only on specific outcomes.
logging.file: The path where log files should be written.instances: An array of MariaDB instances. Each requires its own name, connection details, backup directory, retention configuration (in days), and cronschedule.
Note: Make sure the user specified in the configuration has
SELECT,LOCK TABLES,SHOW VIEW, andTRIGGERpermissions to properly performmysqldumpoperations across all databases.
Usage
- Create a
config.yamlusing the template above. - Run the application:
./godump --config /path/to/your/config.yaml - Open a web browser and navigate to
http://<your_server_ip>:<configured_port>.
From the UI, you can:
- See the overall status of all configured instances.
- Observe discovered databases.
- Click Run All Now to manually trigger backups across all servers at once, or use the Run Now button on individual cards for targeted runs.
- Monitor real-time progress via the auto-refreshing log console at the bottom of the page.
- Review your backup inventory grouped by instance and database.
Description
GoDump is a lightweight, standalone MariaDB backup application written in Go. It manages multiple MariaDB instances concurrently, automatically discovers databases, runs scheduled backups, enforces retention policies, and presents a sleek, embedded web UI to manage operations.
Languages
Go
64.6%
HTML
35.4%