= Micromata BorgBackup-Butler Micromata GmbH, Kai Reinhard :toc: :toclevels: 4 Copyright (C) 2018-2021 ifdef::env-github,env-browser[:outfilesuffix: .adoc] == Why? * Accessing your borg backups in an very convenient and fast way. * Caches remote repo archive information for fast browsing. * Differ functionality to see the differences of backups (files, directories etc.) == At first glance After starting BorgButler without any further settings, you can play with faked demo repositories. [#img-configuration] You may leave the default values as they are. BorgButler downloads the current or configured version of the borg binary for your platform automatically. [link=doc/images/screen-configuration.png] image::doc/images/screen-configuration.png[Configuration of BorgButler,800] [#img-jobmonitor] The job monitor gives an overview of all (long running) processes. You're also able to cancel running jobs. [link=doc/images/screen-jobmonitor.png] image::doc/images/screen-jobmonitor.png[Job monitor,800] [#img-repositories] Borgbutler may manage multiple repositories. [link=doc/images/screen-repositories.png] image::doc/images/screen-repositories.png[Multiple repositories,800] [#img-repository-config] Configuration of a repo used by BorgButler. [link=doc/images/screen-repository-config.png] image::doc/images/screen-repository-config.png[Configuration of a repo,800] [#img-repository-archives] Overview of available archives in your BorgBackup repo. [link=doc/images/screen-repository-archives.png] image::doc/images/screen-repository-archives.png[Archives of a repo,800] [#img-archive-filelist] The content of an archive (browseable as tree, searchable). You are also able to compare to archives and see the difference with a view clicks. You may download single files as well as whole directories. [link=doc/images/screen-archive-filelist.png] image::doc/images/screen-archive-filelist.png[Repo info,800] [#img-archive-differences] You may compare two archives within some clicks and see the differences (files, file properties such as size, dates or change modes). [link=doc/images/screen-archive-differences.png] image::doc/images/screen-archive-differences.png[Repo info,800] == Quick start === Docker BorgButler working directory `$HOME/BorgButler` is assumed, but you may define any other. 1. Create your local BorgButler directory: `mkdir $HOME/BorgButler` (for config, caches, backups and restoring of backuped files and directories) 2. `docker run -v $HOME/BorgButler:/BorgButler -v $HOME/.ssh:/home/borgbutler/.ssh:ro -p 127.0.0.1:9042:9042 --name borgbutler kreinhard/borgbutler` (exporting of `.ssh` is useful for ssh remotes, otherwise skip this setting.) 3. Stopping: simly click `CTRL-C`. 4. Restart: `docker start` 5. Stop: `docker stop` Enjoy BorgButler by opening your browser: http://localhost:9042 You may refer the log file through the web browser or in `$HOME/BorgButler/borgbutler.log`. === Starting from Java zip You'll need OpenJDK 9+. 1. Download BorgButler from https://sourceforge.net/projects/borgbutler/files/latest/download 2. Unzip `borgbutler-server/build/distributions/borgbutler-server-.zip` 3. Run `bin/borgbutler-server` or `bin/borgbutler-server.bat`. === Starting from sources You'll need OpenJDK 9+ as well as gradle. 1. `gradle clean distZip` 2. Unzip `borgbutler-server/build/distributions/borgbutler-server-.zip` 3. Run `bin/borgbutler-server` or `bin/borgbutler-server.bat`. Enjoy BorgButler by opening your browser: http://localhost:9042 == Further information === Configuration === Example config file You can configure it through the webapp or directly (`borgbutler.config`): [source,yaml] ---- borgCommand: "/Users/kai/.borgbutler/bin/borg-macosx64-1.1.8" maxArchiveContentCacheCapacityMb: 200 repoConfigs: - displayName: "ACME - Backup server 1" repo: "ssh://backupserver.acme.com:23/./backups/backup-server1" rsh: "ssh -i /BorgButler/.ssh/acme_rsa" passwordCommand: "security find-generic-password -a $USER -s borg-passphrase -w" id: "8af6c559b07d598af6c559b07d598af6c559b07d598af6c559b07d598af6c559" - displayName: "ACME - Backup server 2" repo: "ssh://backupserver.acme.com:23/./backups/backup-server2" rsh: "ssh -i /BorgButler/.ssh/acme_rsa" passwordCommand: "security find-generic-password -a $USER -s borg-passphrase -w" id: "ae00099254dc44ae00099254dc44ae00099254dc44ae00099254dc44ae000992" - displayName: "Debian - Backup server 1" repo: "ssh://kai@debian.acme.priv/opt/borg-backups/backup-server1" rsh: "" passwordCommand: "security find-generic-password -a $USER -s borg-passphrase -w" id: "not_yet_loaded_1" port: 9042 showDemoRepos: false ---- == Example on how to script backups (Linux/MacOS) Here: link:doc/ExampleBorgConfig{outfilesuffix}[Installation] ==== Backups of configuration files You may configure and initialize your repositories by the BorgButler app. The config file is generated by BorgButler. Before saving a new configuration BorgButler stores a copy of the current configuration in the backup dir: `~/.borgbutler/backup/`. == More immpressions See some more screens to get an first overview of the functionality of BorgButler. [#img-repository-info] Information about your repo. [link=doc/images/screen-repository-info.png] image::doc/images/screen-repository-info.png[Repo info,800] [#img-logviewer] There is a log file available as well as an log viewer including search functionality. [link=doc/images/screen-logviewer.png] image::doc/images/screen-logviewer.png[Log viewer of BorgButler,800]