DataHoard has been create for the sole reason of taking care of automatic mysql database backups. This supports mailing for keeping track of
This repository has been archived on 2024-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
kato 8cfe5cdefe + DockerFile temporary updates, this is definitely not final. 2021-08-21 02:01:21 +03:00
dist + File Structure 2021-08-21 00:43:00 +03:00
src + Renamed the mail model and worked some more on it 2021-08-21 01:56:37 +03:00
.gitignore + Some progress added. 2021-08-21 00:56:51 +03:00
Dockerfile + DockerFile temporary updates, this is definitely not final. 2021-08-21 02:01:21 +03:00
LICENSE Initial commit 2021-08-21 00:11:21 +03:00
README.md * 2021-08-21 01:45:46 +03:00
config.example.json + Updated the configuration File 2021-08-21 01:39:29 +03:00
package.json + Updated the configuration File 2021-08-21 01:39:29 +03:00
tsconfig.json + Some progress added. 2021-08-21 00:56:51 +03:00

README.md

DataHoard

About

DataHoard has been create for the sole reason of taking care of automatic mysql database backups. This supports mailing for logging what is happening to the databases, future plans include supporting different services for updating the status of the databases, such as Discord, Telegram, Slack and more.

Features

  • Database Exporting
  • Log all errors to a final log
  • Email the log through email
  • Discord WebHook
  • Telegram Hook

How to Use

  1. Setup the configuration file which is This file and rename it into config.json instead of config.example.json.
  2. Run the server by using the npm start command, this will start to run the program.
  3. This does not run as a service and should be activated by a cron task, or on windows a scheduler task, this is completely up to you how you setup.

Example Config File:

{
    "options": {
        "parallel_nodes": 2, // Run two database backups at a time
        "parallel_node_tasks": 5, // Run 5 dumps at a time ( basically how many databases at once )
        "separate_into_tables": false // Separate all of the different tables into separate files
    },

    "smtp": {
        "host": "",
        "port": "",
        "ssl":  true,
        "username": "",
        "password": "",
        "email_from": ""
    },

    "nodes": [
        {
            "name":  "Main Connection",
            "debug": 0,
            "log":   true,
            "mail": {
                "enabled": true,
                "email_to": "main@example.com",
                "email_cc": [
                    "first@example.com"
                ]
            },

            "hostname": "localhost",
            "username": "root",
            "password": "",
            "databases": {
                // These two(2) can also be defined as Array<string> for filtering.
                "blacklist": ["mysql", "database_statistics", "not_important"],
                "whitelist": null
            }
        }
    ]
}