tizbac / proxmoxbackupclient_go

In development proxmox backup client written in golang, aimed at windows compatibility
GNU General Public License v3.0
193 stars 14 forks source link

This software implements a proxmox backup client software for windows, backup only as of now Works on linux too especially for development

The software is still alpha quality and i take no responsability for any kind of damage or data loss even of source files.

Contributions are welcome especially

  1. GUI with tray icon to show backup progress and backup taking place
  2. Encryption support
  3. A GUI way of configuring it and maybe create a json job file similiar freefilesync does
  4. Async upload / compress and multicore upload + compression of chunks
  5. Proxmox side patch to add another kind of entry to pxar format with Windows security descriptors in it
  6. Support for windows symlinks
  7. Anything interesting you can come up with :)

Usage

A typical command would look like:

proxmoxbackupgo.exe -baseurl "https://yourpbshost:8007" -certfingerprint pbsfingerprint -authid "user@realm!apiid" -secret "apisecret" -backupdir "C:\path\to\backup" -datastore "datastorename"
proxmoxbackupgo.exe
  -authid string
        Authentication ID (PBS Api token)
  -secret string
        Secret for authentication
  -backupdir string
        Backup source directory, must not be symlink
  -baseurl string
        Base URL for the proxmox backup server, example: https://192.168.1.10:8007
  -certfingerprint string
        Certificate fingerprint for SSL connection, example: ea:7d:06:f9...
  -datastore string
        Datastore name
  -namespace string
        Namespace (optional)
  -backup-id string
        Backup ID (optional - if not specified, the hostname is used as the default for host-type backups)
  -pxarout string
        Output PXAR archive for debug purposes (optional)

  -mail-host string
        mail notification system: mail server host(optional)
  -mail-port string
        mail notification system: mail server port(optional)
  -mail-username string
        mail notification system: mail server username(optional)
  -mail-password string
        mail notification system: mail server password(optional)
  -mail-insecure bool
        mail notification system: allow insecure communications(optional)
  -mail-from string
        mail notification system: sender mail(optional)
  -mail-to string
        mail notification system: receiver mail(optional)

  -mail-subject-template string
        mail notification system: mail subject template(optional)
  -mail-body-template string
        mail notification system: mail body template(optional)

  -config string
        Path to JSON config file. If this flag is provided all the others will override the loaded config file

For JSON configuration a JSON example is provided, fill in only the needed fields.

Note on mail templating: Go's templating engine is used for mail subjects and bodies, please refer to the documentation for the syntax. The following variables are available for templating:

Known Issues

Windows defender antimalware being active will slow backup down up to 25% of attainable speed

There's as of now no mechanism to prevent two instances being launched at same time which will screw up VSS and backup If you using windows planning utility it should theoretically prevent two instances starting at same time when originating from same job