Repository navigation
[1.0.0] - 2025-03-02
Added
-
Interactive Backup:
- Implementation of the main script
backup.sh, allowing the user to select the backup directory via CLI. - Creation of a
.tar.gzfile from the specified directory.
- Implementation of the main script
-
Encryption:
- Support for backup encryption using:
- GPG: Support for asymmetric encryption (with
GPG_RECIPIENT) or symmetric encryption (withENCRYPTION_PASSWORD). - OpenSSL: Use of the AES-256-CBC algorithm with the
-pbkdf2option for enhanced security.
- GPG: Support for asymmetric encryption (with
- Modularization of encryption in
libs/encrypt.sh.
- Support for backup encryption using:
-
Upload to Multiple Destinations:
- Implementation of the upload module in
libs/upload.shwith support for:- Minio: Upload via AWS CLI configured for a custom endpoint.
- Google Drive: Use of the updated command
gdrive files upload, with support for specifying the destination folder (viaGDRIVE_FOLDER_ID). - AWS S3: Upload to a configured bucket.
- SCP: File transfer via SSH, with support for SSH key or password authentication.
- Implementation of the upload module in
-
Logs and Notifications:
- Detailed execution logs stored in the
logs/directory. - Integrated notifications:
- Via Discord (using webhook).
- Via email (using the
mailcommand).
- Detailed execution logs stored in the
-
Configuration and Environment:
- Configuration files (
config.example.shandconfig.sh) to facilitate environment customization. - Updated
.gitignorefile to ignore sensitive files, logs, and keys.
- Configuration files (
Improved
-
Error Handling and Debugging:
- Detailed and organized error messages in each module, displaying the complete output of executed commands (using
sedfor indentation). - Use of
PIPESTATUSto correctly capture the exit codes of pipelines, ensuring that encryption and upload failures are detected and handled. - Update of the Google Drive upload function to the modern command
gdrive files upload.
- Detailed and organized error messages in each module, displaying the complete output of executed commands (using
-
Code Modularization and Organization:
- Separation of code into libraries (
libs/encrypt.shandlibs/upload.sh) to facilitate maintenance and future extensions.
- Separation of code into libraries (
Fixed
- Execution Flow:
- Correction in the flow to stop execution if encryption or upload fails, ensuring proper feedback to the user.
- Adjustments to prevent debug commands (like
tee) from masking real errors, using thePIPESTATUSvariable.