Releases: netinvent/npbackup
Interim build
This is a quick and dirty interim build for internal testing purposes.
The release I wanted
This third release candidate of NPBackup v3 is mostly done because we shifted from PySimpleGUI to FreeSimpleGUI framework.
Other minor issues resolved:
- Added special
__all__
argument to --repo-name for group operations - Fixed group operations when bogus repo names / group names were given
- Better error messages when missing subject for restic commands
This is it (for a better release candidate)
So TBH, last RC1 was a trainwreck when talking about the GUI experience, and should have been a beta instead of an RC.
To be fair, making the GUI has been a real pain experience to deal with, where compiled builds couldn't work because of esoteric framework code, and the framework has been forked because it changed it's licensing... Lots of fun situations.
ARM builds will be uploaded later this day.
Anyway, this RC2 fixes the following since RC1:
- Fixed linux executables built on RHEL 7 didn't work on Ubuntu and alikes, thanks to @guss77 for reporting
- Fixed environment variables weren't parsed, thanks to @BJSchmidt for reporting
- Fixed GUI inheritance didn't show up properly, thanks to @GuitarBilly for reporting
- Fixed GUI manager password didn't save on first try, thanks to @GuitarBilly for reporting
- Fixed GUI repo/group creation didn't update window
- Fixed GUI full repo URI was shown in operations view, thanks to @GuitarBilly for reporting
- Improved master password strength test
- Improved bytes/bits values reading from configuration
- Various cosmetic GUI improvements
- Updated to latest restic version 0.17
- Fixed linux task creation missed username
- Added --no-cache option
- Added manual --init command (even if backup already does init)
- exclude_files path are now tested against current path if not found
Pre-compiled binaries can be found in the assets below, or install via python -m pip install npbackup==3.0.0rc2
This is it (at least for a release candidate)
v3.0.0 first release candidate
This is a full rewrite of NPBackup v2.
The application has been splitted into GUI, a CLI and Viewer applications.
Viewer application doesn't need any configuration file, and just can connect to virtually any restic repo to view and restore files.
The GUI has been a real pain to make right, since it must run on all platforms without being a web app, the delay has been long. It took more than 500 commits and alot of sleepless nights / caffeinated days to get here ^^
Configuration format is brand new, and allows to set multiple repo settings that inherit repo group settings, making it easy to create an orchestrator instance that handles retention policies, checks and cleaning on multiple repositories.
Prometheus support has been extended for other operations than backup.
CLI has full json support via --json
allowing to be used via APIs.
There are much too many new features & fixes to state here, see CHANGELOG for more.
I know the documentation isn't existing yet, but I'd love to get some feedback in order to make things right. Issue #59 is open for blockers that should make it in v3. Please create separate issues for any trouble you might encounter.
Pre-compiled binaries can be found in the assets below.
Of course you can install via python -m pip install npbackup==3.0.0rc1.post4
Cheers
Getting the GUI done
The second beta release of NPBackup 3.
- Adds missing NTP parameter for retention policies
- GUI: Moves retention policies to separate tab
- GUI: Multiple configuration fixes
- GUI: Reduces backend output overhead
- CLI: Fixes bogus return on --forget
- CLI/GUI: Adds --repo-name parameter
- CLI: Makes --dry-run acceptable for other commands than backup
Features, features, features
This is our first beta release of v3.
Beta testers are highly welcome at this point.
What is working ?
- Almost everything
What isn't fully working but should in v3 ? - Loading a new config, cancel loading a config
- Retention policiy (yes, I do understand the irony for the PR comming with the specifc branch name)
- pre/post script status for prometheus
What's probably not going to make it into v3 ?
- Task creation (will probably postpone this to v3.1 or so)
- Windows installer (needs full overhaul. Perhaps even a simple SFX script is enough)
v3.0.0-alpha3
This is an interim release to make npbackup viewer executable available.
We're pretty close to a general v3 release.
Full Changelog: v2.2.1...v3.0.0-alpha3
CLI looks good
So hopefully this is the last alpha release for NPBackup v3.
The CLI works great and is mostly complete except for group operations. Give it a run, especially the JSON part is neat.
The GUI almost works, except for the config file editor which is a real pain to get properly done with PySimpleGUI, hence the alpha status.
I'l like to backup backup
NPBackup maintenance release.
The pre-built executables we ship will work for:
- Linux amd64 (glibc >= 2.17)
- Linux arm and arm64 (glibc >= 2.24).
- Windows x64 (Windows >= 10)
- Windows x86 (Windows >= 7)
Windows pre-built executables are signed with an EV certificate, but some antivirus engines still detect the executables as viruses.
The reason is simlple, they classify Nuitka Python compiler as potential malware... See https://www.virustotal.com/gui/file/27de41dd63d31af2d5d7881ae11ee23ddb4f4db85f4d213ec367ab9eabc67035?nocache=1
Since I sign the pre-built executables with our company EV token, I can guarantee they are safe to use.
The executables for arm are compiled without GUI support, since they are supposed to run on NAS devices.
Feel free to ask if you need GUI support baked in.
Happy backups ;)
Features
- Added snapshot deletion option in GUI
- Adjusted default backend connections and cpu core usage to imrove overall speed
Fixes
- Fix ignore_cloud_files parameter that parses restic output in order to determine if an error comes from a reparse point. This is Windows specific
Misc
- Updated internal restic binary to 0.16.0 compiled with go1.20.6
- Compiled with newer Nuitka 1.7.10 that allows use of Python 3.11
- Updated python to version 3.11 for Windows x64 targets
- Basic MacOS X compile support
The backup solution I wanted
This is our fist major public release !
In this release we have a new remote upgrade feature, and improved the GUI experience.
We also now ship pre-built executables for
- Linux amd64 (glibc >= 2.17)
- Linux arm and arm64 (glibc >= 2.24).
- Windows x64 (Windows >= 10)
- Windows x86 (Windows >= 7)
Windows pre-built executables are signed with an EV certificate.
Features
- Added a full auto-upgrade solution:
- Aupgrade client integrated into NPBackup, that can be called manually via --auto-upgrade or automatically run every n backups
- Upgrade server which servers files and their metadata
- Upgrade server now fetches the real client IP if behind a proxy
- Upgrade server systemd service file example
- Support for --config-file parameter in upgrade_server
- Added a gui to create a scheduled task under Windows
- Added a gui to configure backup admin password (was compile time setting before)
- Made windows cloud file filter optional (enabled by default)
- Add variable substitution in configuration
- Add machine identification in configuration
- Add variable ${RANDOM}[n] to config file in order to distinguish non unique hostnames
- Make backup state and upgrade state messages more coherent
- Auto minimize console window when run in GUI mode to not distract end user
- Trigger GUI refresh after configuration changes
- Main program now loads directly after first time GUI setup
- A popup is now shown on non-readable repos
- Highly optimize tree window creation times (x3.5) by replacing dateutil.parser.parse()
- Add --gui-status parameter and more GUI related info
- Added messages when no tcl/tk exists in GUI mode
- Allow AES key rotation by keeping old key and updating config file to new key encryption
- Added --no-gui compile time parameter
- Added arm/arm64 support
- Added source types (--files-from, --files-from-verbatim and --files-from-raw equivalent)
- Add encrypted environment variables support
- Add SSL certificate verification bypass for prometheus metrics
- Add grafana dashboard to examples directory
- Implemented new password command functionality
- Added windows executable signature script
Fixes
- Cosmetic fixes
- Fixup bogus restic command line when empty tag lines were given
- Added missing default value for ignoring cloud files in the example configuration
- Made sure npbackup can run when no tkinter is installed (headless)
- Fix config fails when restic password is an int
- Fix empty config files did not show a proper error message
- Fix various config file malformation will break execution
- Fix backup hangs when no restic password is given (restic asks for password in backgroud job)
- Fix error message in logs when repo is not initialized
- Various smaller fixes
- Fix empty restic results will make prometheus metrics fail
- Fix upgrade server missing port in config file would prevent default port usage
- Fix empty tag lines did create bogus restic commands
- Fix upgrade client was using OS arch instead of python arch preventing old builds with Python 3.7 x86 to properly update
- Fix missing locale might fail on certain linux builds
- Don't build NPBackupInstaller on non Windows platforms
- Make translation manager more resilient
- Make sure backend binary is always executable in Linux nuitka builds
- Make sure all multiline entries in config files are processed as lists
- Add exclude-patterns to GUI (was present in CLI version already)
- Make sure we always quote exclusions patterns or files
- SECURITY Show unencrypted is only allowed on compiled builds where default AES KEY is not used
- This prevents a password injection from another conf file
- SECURITY Prevent raw password update in config file
- Fix empty password makes GUI fail
- Fix empty password makes CLI fail
- Fix empty data is shown as encrypted
- Enforce repository and passwords to be strings, also remove trailing and ending spaces
- Add warning when source and destination are the same path
- Add default 1 minute timeout for init operations
- Fix auto_upgrade_group wasn't transmitted to server
- Fix potential deadlock in evaluate variables
- Fix additionnal parameters should only apply for backup operations
- Fix unnecessary exclude statements when no exclusions are given
Misc
- Improved setup.py to provide launch scripts for both Linux and Windows platforms
- Added default configuration settings
- Rewrite configuration gui into a tabbed gui
- Updated restic binary to restic 0.15.1 compiled with go1.19.5
- Changed backup interval unit from seconds to minutes
- Add gui popup when config cannot be saved
- Make repo connection messages more clear
- Remove default backup admin password from config
- Switch to maintained version of python-i18n at https://github.com/Krutyi-4el/i18nice
- upgrade server now identifies npbackup version in current_version call
- Updated internal restic binary to 0.15.2 compiled with go1.20.3
- SECURITY Don't log password command, even in debug mode
- Compiled with Nuitka commercial 1.5.8
- Make sure new binary is set as executable in linux upgrade