Skip to content

Commit 8fdc364

Browse files
author
JD Bungart
committed
chore: merge tmpfs-support into main
2 parents 611907b + bc30883 commit 8fdc364

16 files changed

+1110
-289
lines changed

.gitignore

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,12 @@ __pycache__/
2929
# IDE specific files
3030
.vscode/
3131
.idea/
32-
*.swp
33-
*.swo
3432

3533
# Environment files
3634
.env
35+
36+
# Windsurf IDE files
37+
.windsurfrules
38+
.windsurf/
39+
*.swp
40+
*.swo

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Changelog
22

3+
## [0.5.0] - 2025-01-30
4+
5+
### Added
6+
- Implemented tmpfs support for RouterOS backups:
7+
* Added automatic tmpfs mounting and cleanup
8+
* Improved backup performance by using memory-based temporary storage
9+
* Added fallback to direct flash storage when tmpfs is unavailable
10+
- Added tasks directory for future task-based operations
11+
12+
### Changed
13+
- Improved repository structure and organization:
14+
* Cleaned up repository layout
15+
* Updated gitignore rules
16+
* Better separation of concerns in codebase
17+
18+
### Documentation
19+
- Updated README.md with compose-style output demo
20+
- Fixed typography in documentation
21+
- Added ZeroTier identity export documentation
22+
323
## [0.4.1] - 2025-01-08
424

525
### Added

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ A powerful and flexible backup solution for MikroTik RouterOS devices. This tool
2020
- Compose-style visualization
2121
- Detailed logging
2222
- Tmpfs-based backup storage to reduce flash wear
23+
- 60-second command timeout to prevent hanging operations
2324

2425
- **Security Features**
2526
- SSH key-based authentication

ROADMAP.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ This document outlines the planned features and improvements for future releases
44

55
## Planned Features
66

7-
### 1. Additional Notification Channels
7+
### 1. Notification System
8+
- [x] E-Mail (SMTP) support (initial release)
9+
- [ ] Channel Specific Alerting templates
810
- [ ] Generic webhook support
911
- [ ] Telegram integration
1012
- [ ] NTFY.sh for push notifications)
@@ -17,30 +19,33 @@ This document outlines the planned features and improvements for future releases
1719
- [ ] ... insert more notification channels ...
1820

1921
### 2. Backup Enhancements
20-
- [ ] Use a temporary ramdisk to store binary backup
21-
- Instead of saving to primary storage of target
22+
- [x] Use a temporary file system (tmpfs) to store binary backup (0.5.0)
23+
- Instead of saving to primary storage of target (flash for most appliances)
24+
- [ ] Integrate GIT support for plaintext backups
2225
- [ ] Support for certificate store backup
2326
- [ ] Automatic certificate renewal tracking
2427

2528
### 4. Monitoring and Reporting
29+
- [ ] Prometheus endpoint
2630
- [ ] Detailed backup statistics
2731
- [ ] Performance metrics collection
2832
- [ ] Status dashboard
29-
- [ ] Custom report generation
33+
- [ ] Custom report generation (PDF/E-Mail)
3034
- [ ] Backup success rate tracking
3135

3236
### 5. Integration Features
33-
- [ ] Make this a PyPI package
37+
- [ ] PyPI package
3438
- [ ] Docker Image
3539
- [ ] REST API for remote management
3640
- [ ] Integration with monitoring systems
37-
- [ ] Backup scheduling service
41+
- [ ] Backup scheduling service (async)
3842

3943
### 6. User Experience
4044
- [ ] Web-based management interface
4145

42-
### 7. Recovery Features
46+
### 7. Misc Features
4347
- [ ] Remote restore capabilities
48+
- [ ] Basic Remote command execution functionality
4449
- [ ] Recovery testing tools
4550

4651
Missing a feature? Open an issue or send a PR :)

VERSION.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Version Information
22

33
## Current Version
4-
0.4.1
4+
0.5.0
55

66
## Versioning Format
77
rosbackup-ng follows [Semantic Versioning 2.0.0](https://semver.org/):
@@ -17,12 +17,12 @@ MAJOR.MINOR.PATCH
1717
- Currently 0 as we're in initial development
1818
- Will become 1.0.0 when we have a stable public API
1919

20-
2. **MINOR** version (4)
20+
2. **MINOR** version (5)
2121
- Incremented for added functionality in a backward compatible manner
2222
- New features that don't break existing functionality
2323
- Changes to optional parameters or configuration format
2424

25-
3. **PATCH** version (1)
25+
3. **PATCH** version (0)
2626
- Incremented for backward compatible bug fixes
2727
- Performance improvements
2828
- Documentation updates

config/global.yaml.sample

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ ssh:
3737
#parallel_execution: true # Enable parallel backups (optional, default: true)
3838
#max_parallel_backups: 5 # Maximum concurrent backups (optional, default: 5)
3939

40+
# Temporary Storage Settings
41+
tmpfs:
42+
enabled: true # Use tmpfs for temporary storage (default: true)
43+
fallback_enabled: true # Fall back to root storage if tmpfs fails (default: true)
44+
size_auto: true # Calculate size based on available memory (default: true)
45+
size_mb: 50 # Fixed size in MB when size_auto is false (default: 50)
46+
min_size_mb: 1 # Minimum size in MB for auto calculation (default: 1)
47+
max_size_mb: 50 # Maximum size in MB for auto calculation (default: 50)
48+
mount_point: "rosbackup" # Mount point name for tmpfs (default: "rosbackup")
49+
4050
# Logging Settings
4151
#log_file_enabled: false # Enable logging to file (optional, default: false)
4252
#log_file: ./rosbackup.log # Log file path (optional if log_file_enabled is false)

config/targets.yaml.sample

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,9 @@ targets:
2424
#enable_plaintext_backup: true # Enable plaintext backup (optional, default: true)
2525
#keep_binary_backup: false # Keep binary backup (optional, default: false)
2626
#keep_plaintext_backup: false # Keep plaintext backup (optional, default: false)
27+
28+
# Temporary Storage Settings
29+
tmpfs:
30+
enabled: true # Override global tmpfs enable/disable (optional)
31+
fallback_enabled: true # Override global fallback behavior (optional)
32+
size_mb: 25 # Override global fixed size in MB (optional)

0 commit comments

Comments
 (0)