Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Thank you for contributing!
1. Fork the repo
2. Create a new branch
3. Commit changes
4. Submit PR
4. Submit PR (reference issue if present)

## Rules
- Follow clean code practices, use existing code as a guide
Expand Down
100 changes: 50 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/) [![Python application](https://github.com/Dari0o/Backup-Manager/actions/workflows/python-app.yml/badge.svg)](https://github.com/Dari0o/Backup-Manager/actions/workflows/python-app.yml) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/Dari0o/Backup-Manager/total?color=green) ![GitHub contributors](https://img.shields.io/github/contributors/Dari0o/Backup-Manager)


# NAS Backup Manager

A fast and multithreaded backup tool.
Expand All @@ -11,34 +10,36 @@ The program intelligently compares files based on size and modification date, an

## Features

* Multithreaded file scanning
* Fast parallel copying
* Intelligent file comparison (size + modification time)
* Easy CLI usage for automation
* Optional Mirror Mode (synchronization)
* Fast ZIP compression with adjustable compression level using 7-Zip
* Optional AES-256 encrypted 7z archives
* GitHub update system
* Supports large directories
* Symlink-safe (`follow_symlinks=False`)
* Progress bars with `tqdm`
* Optimized for NAS / SMB shares
- Multithreaded file scanning
- Fast parallel copying
- Intelligent file comparison (size + modification time)
- Easy CLI usage for automation
- Optional Mirror Mode (synchronization)
- Fast ZIP compression with adjustable compression level using 7-Zip
- Optional AES-256 encrypted 7z archives
- GitHub update system
- Supports large directories
- Symlink-safe (`follow_symlinks=False`)
- Progress bars with `tqdm`
- Optimized for NAS / SMB shares

---

## Installation

### Requirements

* Python 3.10+
* Windows, Ubuntu, macOS
* Network share / NAS (optional)
* 7-Zip (required for compression and encrypted 7z archives)
- Python 3.10+
- Windows, Ubuntu, macOS
- Network share / NAS (optional)
- 7-Zip (required for compression and encrypted 7z archives)

- In requirements.txt you will find dependencies to install to run this project

### Required Packages
in your terminal run:

```bash
pip install tqdm prompt_toolkit requests
python -m pip install -r requirements.txt
```

---
Expand Down Expand Up @@ -70,16 +71,16 @@ python BackupManager.py --update

### Arguments

| Argument | Description |
|----------|-------------|
| `--source SOURCE` | Source directory path |
| `--target TARGET` | Target directory path |
| `-c, --compression` | Enable ZIP compression (0-9). `0` = no compression (fastest), `9` = maximum compression (slowest) |
| `--mirror` | Enable mirror mode (delete files in target that no longer exist in source) |
| `--sevenzip` | Create an encrypted 7z archive |
| `--password PASSWORD` | Password used for 7z encryption |
| `--update` | Check for and install updates |
| `-i` | Ignore the exclude list and copy all files |
| Argument | Description |
| --------------------- | ------------------------------------------------------------------------------------------------- |
| `--source SOURCE` | Source directory path |
| `--target TARGET` | Target directory path |
| `-c, --compression` | Enable ZIP compression (0-9). `0` = no compression (fastest), `9` = maximum compression (slowest) |
| `--mirror` | Enable mirror mode (delete files in target that no longer exist in source) |
| `--sevenzip` | Create an encrypted 7z archive |
| `--password PASSWORD` | Password used for 7z encryption |
| `--update` | Check for and install updates |
| `-i` | Ignore the exclude list and copy all files |

---

Expand All @@ -101,10 +102,9 @@ Create compressed ZIP backups with adjustable compression levels using 7-Zip.

### Compression Levels

* `0` → No compression (fastest)
* `3` → Standard (balanced speed & compression)
* `9` → Maximum compression (slowest)

- `0` → No compression (fastest)
- `3` → Standard (balanced speed & compression)
- `9` → Maximum compression (slowest)

### With explicit paths

Expand All @@ -114,9 +114,9 @@ python BackupManager.py --source D:\Data --target D:\backup.zip -c 6

The compression process displays:

* File count
* Original size
* Compressed size
- File count
- Original size
- Compressed size

---

Expand All @@ -130,11 +130,11 @@ python BackupManager.py --sevenzip --password MySecurePassword --source D:\Data

Features:

* AES-256 encryption
* Password-protected archive
* Uses 7-Zip for maximum compatibility
* Supports large backups
* Fast multithreaded compression
- AES-256 encryption
- Password-protected archive
- Uses 7-Zip for maximum compatibility
- Supports large backups
- Fast multithreaded compression

---

Expand Down Expand Up @@ -189,13 +189,13 @@ Documents/

The program scans:

* Source files
* Destination files
- Source files
- Destination files

It then compares:

* File size
* Modification time (`mtime`)
- File size
- Modification time (`mtime`)

Only changed files are copied.

Expand All @@ -205,11 +205,11 @@ This makes the backup very fast, especially for large folders.

## Planned Features

* GUI version
* ~~Exclusion filters (`.git`, `node_modules`, etc.)~~ (v1.1.0)
* ~~Optional compression~~ (v1.1.2)
* ~~Optional encryption~~ (v1.1.2)
* Backup profiles
- GUI version
- ~~Exclusion filters (`.git`, `node_modules`, etc.)~~ (v1.1.0)
- ~~Optional compression~~ (v1.1.2)
- ~~Optional encryption~~ (v1.1.2)
- Backup profiles

---

Expand Down
3 changes: 3 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tqdm
prompt_toolkit
requests
Loading