My own backup tool I used for a while. Project I used to learn Golang
This repository has been archived on 2026-03-18. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Find a file
2022-01-31 20:11:08 +01:00
.github/workflows perf(pipeline): added default_bump 2021-11-28 14:22:55 +01:00
Commands feat(Command): Added procedure for generating default configs 2021-12-31 17:21:17 +01:00
Compressor fix(Compression): No longer shows wrong Name in output 2021-12-23 11:04:33 +01:00
Logging Inital commit 2021-11-18 15:04:27 +01:00
SQL refactor(MariaDB): Moved private functions into struct 2022-01-31 20:11:08 +01:00
StorageTypes refactor(Azure): Has now separate config struct 2021-12-31 17:18:12 +01:00
Tools refactor(SQL): Now has seperate config 2021-12-31 17:20:47 +01:00
.gitignore refactor(.gitignore): added config folder 2021-12-31 17:20:09 +01:00
go.mod refactor(go.mod): Added MSSQL Driver 2022-01-14 18:45:56 +01:00
go.sum refactor(go.mod): Added MSSQL Driver 2022-01-14 18:45:56 +01:00
main.go refactor(Commands): Renamed StartBackupProc 2021-12-31 17:15:58 +01:00
README.md docs(README): Added mysql 2022-01-14 18:17:18 +01:00

Scabiosa Backup Tool

Please keep in mind that this project is WIP.

Trello board: Click me!

What can it do?

  • Backup you stuff via a dynamic configuration
  • Log the Backup progress to a database
  • Upload the files to a remote storage of your choice (see Storage Types)

Planned features for the Future!

  • Backup restore
  • Service for scheduled updates
  • (Maybe) a web interface

Database Types

  • MariaDB
  • MySQL
  • MS-SQL (far future)
Database Type Config Type
MariaDB mariadb
MySQL mysql

Storage types

  • Local storage
  • Azure File Share
  • Azure Blob Storage (planned)
  • S3 Bucket (far future)
  • Dropbox (far future)
  • OneDrive (far future)
  • GDrive (far future)
Storage Type Config Type
Azure File Share azure-fileshare
Local Storage none

Config Explaination

config.json

Field Type Description
foldersToBackup ---------------- ----------------------------------------------
backupName string .bak file name
folderPath string Path to folder which should be backed up
remoteStorageType string See StorageTypes
remoteTargetPath string Sets the remotePath for remote backups
localTargetPath string Sets the targetPath for local backups
createLocalBackup boolean Sets if .bak file should also be saved locally

sql-config.json

Field Type Description
enableSQL boolean Enable/Disables the SQL entries
sqlType string See DatabaseTypes
sql-address string Address to the SQL Server
sql-port uint16 SQL Server Port
database string Database name
db-user string SQL username from user which should be used
db-password string SQL password from user which should be used

azure.json

Field Type Description
fileshareName string The name of the Azure File Share
storageAccountName string Name of your storage account
storageAccountKey string Key for the storage account

Config Examples

config.json (Linux)

{
  "foldersToBackup": [
    {
      "backupName": "my-backup",
      "folderPath": "/path/to/folder/to/backup",
      "remoteStorageType": "remote-type",
      "remoteTargetPath": "path/to",
      "createLocalBackup": true,
      "localTargetPath": "/path/for/local/backup"
    }
  ]
}

config.json (Windows)

{
  "foldersToBackup": [
    {
      "backupName": "my-backup",
      "folderPath": "D:\\Path\\To\\Folder\\To\\Backup",
      "remoteStorageType": "remote-type",
      "remoteTargetPath": "path/to",
      "createLocalBackup": true,
      "localTargetPath": "E:\\Path\\For\\Local Backup"
    }
  ]
}