docs: Update README.md and CHANGELOG.md for v2.1.1
- Update version to v2.1.1 in README.md - Add new features section for v2.1.1 including Docker auto-repair, NFS fixes, Netdata updates - Update CHANGELOG.md with detailed fixes and improvements - Update service descriptions to reflect optional nature of services - Add Docker repair script to directory structure and troubleshooting - Document new auto-repair functionality and optional unattended-upgrades
This commit is contained in:
38
CHANGELOG.md
38
CHANGELOG.md
@@ -28,6 +28,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Performance tuning (live-restore, userland-proxy=false)
|
- Performance tuning (live-restore, userland-proxy=false)
|
||||||
- Resource limits and metrics endpoint configuration
|
- Resource limits and metrics endpoint configuration
|
||||||
|
|
||||||
|
- **Docker Auto-Repair Functionality**
|
||||||
|
- Automatic daemon.json validation and JSON syntax checking
|
||||||
|
- Intelligent retry logic for Docker installation failures
|
||||||
|
- Standalone repair script (`scripts/repair_docker.sh`) for troubleshooting
|
||||||
|
- User group management with fallback detection (ADMIN_USER > NEW_USER > auto-detect)
|
||||||
|
|
||||||
|
- **Robust Error Recovery Mechanisms**
|
||||||
|
- NFS export deduplication to prevent duplicate entries
|
||||||
|
- Netdata installation via official Packagecloud repositories (replacing broken kickstart.sh)
|
||||||
|
- I/O scheduler path validation with automatic disk detection
|
||||||
|
- Optional unattended-upgrades (disabled by default for user control)
|
||||||
|
|
||||||
- **Enhanced Security Documentation**
|
- **Enhanced Security Documentation**
|
||||||
- New SECURITY.md with comprehensive security policy
|
- New SECURITY.md with comprehensive security policy
|
||||||
- Updated security features documentation
|
- Updated security features documentation
|
||||||
@@ -42,16 +54,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- **Version Update**: Bumped to v2.1.1 for enhanced distribution detection
|
- **Version Update**: Bumped to v2.1.1 for enhanced distribution detection
|
||||||
- **Documentation Updates**: Comprehensive README, CHANGELOG, and SECURITY updates
|
- **Documentation Updates**: Comprehensive README, CHANGELOG, and SECURITY updates
|
||||||
- **Code Organization**: Better separation of detection logic in lib/detection.sh
|
- **Code Organization**: Better separation of detection logic in lib/detection.sh
|
||||||
|
- **Unattended Upgrades**: Now optional (ENABLE_AUTO_UPDATES=false by default)
|
||||||
|
|
||||||
#### Fixed
|
#### Fixed
|
||||||
- **Distribution Compatibility**: Improved detection reliability across all supported distributions
|
- **Docker Installation Issues**
|
||||||
- **Container Environment Handling**: Better warnings and compatibility checks
|
- Fixed unbound SUDO variable errors
|
||||||
- **Version Parsing**: More robust version comparison and normalization
|
- Resolved invalid daemon.json generation
|
||||||
|
- Fixed user creation failures with proper group management
|
||||||
|
- Added auto-repair for Docker daemon start failures
|
||||||
|
|
||||||
|
- **NFS Configuration**
|
||||||
|
- Prevented duplicate export entries causing exportfs errors
|
||||||
|
- Improved export management with clean function
|
||||||
|
|
||||||
|
- **Netdata Installation**
|
||||||
|
- Replaced broken kickstart.sh URL with official Packagecloud repositories
|
||||||
|
- Ensured reliable installation across all distributions
|
||||||
|
|
||||||
|
- **Performance Optimization**
|
||||||
|
- Added path validation for I/O scheduler configuration
|
||||||
|
- Fixed invalid scheduler path errors for root disks
|
||||||
|
|
||||||
|
- **Distribution Compatibility**
|
||||||
|
- Improved detection reliability across all supported distributions
|
||||||
|
- Better container environment handling with user warnings
|
||||||
|
|
||||||
#### Testing
|
#### Testing
|
||||||
- **Unit Test Coverage**: 66+ comprehensive test cases with 98.5% success rate
|
- **Unit Test Coverage**: 66+ comprehensive test cases with 98.5% success rate
|
||||||
- **Distribution Testing**: Enhanced testing across Ubuntu, Debian, Fedora, Arch, openSUSE
|
- **Distribution Testing**: Enhanced testing across Ubuntu, Debian, Fedora, Arch, openSUSE
|
||||||
- **Container Testing**: Validation in Docker, Podman, LXC, and WSL environments
|
- **Container Testing**: Validation in Docker, Podman, LXC, and WSL environments
|
||||||
|
- **Error Recovery Testing**: Verified auto-repair functionality for Docker failures
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
52
README.md
52
README.md
@@ -1,9 +1,21 @@
|
|||||||
# NAS Setup Script v2.1
|
# NAS Setup Script v2.1.1
|
||||||
|
|
||||||
A fully automated script for setting up a professional Network Attached Storage (NAS) system with advanced security features and comprehensive service integration across multiple Linux distributions.
|
A fully automated script for setting up a professional Network Attached Storage (NAS) system with advanced security features and comprehensive service integration across multiple Linux distributions.
|
||||||
|
|
||||||
## 🚀 New Features in v2.1 - 2025 Compatibility Update
|
## 🚀 New Features in v2.1.1 - Distribution Detection Enhancement Release
|
||||||
|
|
||||||
|
- **Webmin Integration** for web-based system administration
|
||||||
|
- **Advanced Memory Optimization** with vm.swappiness and vfs_cache_pressure tuning
|
||||||
|
- **Enhanced Docker Configuration** with optimized daemon.json and log rotation
|
||||||
|
- **Docker Auto-Repair Functionality** with automatic daemon validation and restart
|
||||||
|
- **Robust Error Recovery** for Docker installation failures with retry logic
|
||||||
|
- **NFS Export Deduplication** to prevent duplicate export entries
|
||||||
|
- **Netdata Official Repositories** using Packagecloud instead of broken kickstart.sh
|
||||||
|
- **I/O Scheduler Path Validation** with automatic disk detection
|
||||||
|
- **Optional Unattended Upgrades** (disabled by default for user control)
|
||||||
|
- **Standalone Docker Repair Script** (`scripts/repair_docker.sh`) for troubleshooting
|
||||||
|
|
||||||
|
### Previous v2.1 Features
|
||||||
- **Full IPv6 Support** throughout the entire system
|
- **Full IPv6 Support** throughout the entire system
|
||||||
- **Modern Distribution Support** (Ubuntu 24.04+, Fedora 41+, openSUSE 15.6+)
|
- **Modern Distribution Support** (Ubuntu 24.04+, Fedora 41+, openSUSE 15.6+)
|
||||||
- **Enhanced Security** with Ed25519 SSH keys, auditd logging, and MAC
|
- **Enhanced Security** with Ed25519 SSH keys, auditd logging, and MAC
|
||||||
@@ -125,13 +137,14 @@ The script guides you through an interactive configuration:
|
|||||||
- **Gateway and DNS:** IPv4/IPv6 automatic detection with override capability
|
- **Gateway and DNS:** IPv4/IPv6 automatic detection with override capability
|
||||||
|
|
||||||
### Service Selection
|
### Service Selection
|
||||||
- **Docker:** Container platform with Compose plugin (required for Vaultwarden, Jellyfin, Portainer)
|
- **Docker:** Container platform with Compose plugin and auto-repair functionality (required for Vaultwarden, Jellyfin, Portainer)
|
||||||
- **NFS:** Network File System with IPv6 support
|
- **NFS:** Network File System with IPv6 support and export deduplication
|
||||||
- **Netdata:** System monitoring
|
- **Netdata:** System monitoring via official Packagecloud repositories
|
||||||
- **Vaultwarden:** Password manager with security hardening (requires Docker)
|
- **Vaultwarden:** Password manager with security hardening (requires Docker, optional)
|
||||||
- **Jellyfin:** Media server with modern GPG keys (requires Docker)
|
- **Jellyfin:** Media server with modern GPG keys (requires Docker, optional)
|
||||||
- **Portainer:** Docker management with HTTPS (requires Docker)
|
- **Portainer:** Docker management with HTTPS (requires Docker, optional)
|
||||||
- **Webmin:** Web-based system administration interface
|
- **Webmin:** Web-based system administration interface (optional)
|
||||||
|
- **Unattended Upgrades:** Automatic security updates (optional, disabled by default)
|
||||||
|
|
||||||
### Security Configuration
|
### Security Configuration
|
||||||
- **Firewall Rules:** IPv4/IPv6 automatic based on selected services
|
- **Firewall Rules:** IPv4/IPv6 automatic based on selected services
|
||||||
@@ -144,6 +157,8 @@ The script guides you through an interactive configuration:
|
|||||||
```
|
```
|
||||||
nas/
|
nas/
|
||||||
├── setup.sh # Main installation script
|
├── setup.sh # Main installation script
|
||||||
|
├── scripts/
|
||||||
|
│ └── repair_docker.sh # Docker repair and troubleshooting script
|
||||||
├── config/
|
├── config/
|
||||||
│ └── defaults.sh # Configuration variables and defaults
|
│ └── defaults.sh # Configuration variables and defaults
|
||||||
├── lib/
|
├── lib/
|
||||||
@@ -293,6 +308,25 @@ sudo netplan apply # Ubuntu/Debian
|
|||||||
sudo systemctl restart NetworkManager # Fedora/openSUSE
|
sudo systemctl restart NetworkManager # Fedora/openSUSE
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Docker Issues
|
||||||
|
```bash
|
||||||
|
# Check Docker status
|
||||||
|
sudo systemctl status docker
|
||||||
|
sudo docker version
|
||||||
|
|
||||||
|
# View Docker logs
|
||||||
|
sudo journalctl -u docker -f
|
||||||
|
|
||||||
|
# Repair Docker configuration (new in v2.1.1)
|
||||||
|
sudo ./scripts/repair_docker.sh
|
||||||
|
|
||||||
|
# Check daemon.json syntax
|
||||||
|
sudo docker daemon --validate-config
|
||||||
|
|
||||||
|
# Restart Docker with validation
|
||||||
|
sudo systemctl restart docker
|
||||||
|
```
|
||||||
|
|
||||||
#### Service Issues
|
#### Service Issues
|
||||||
```bash
|
```bash
|
||||||
# Check service status
|
# Check service status
|
||||||
|
|||||||
17
setup.sh
17
setup.sh
@@ -502,6 +502,23 @@ show_installation_summary() {
|
|||||||
echo " ✓ Webmin web interface: https://$(hostname -I | awk '{print $1}'):10000"
|
echo " ✓ Webmin web interface: https://$(hostname -I | awk '{print $1}'):10000"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Docker notes
|
||||||
|
if [[ "${INSTALL_DOCKER:-false}" != "true" ]]; then
|
||||||
|
echo
|
||||||
|
log_warning "Docker wurde nicht installiert oder wurde während der Installation deaktiviert."
|
||||||
|
echo "If you need Docker later, repair the daemon and restart Docker with the helper script in the repository:"
|
||||||
|
echo " cd $(pwd) && sudo bash scripts/repair_docker.sh"
|
||||||
|
echo "Or create a minimal valid daemon.json and restart Docker manually:"
|
||||||
|
echo " sudo mv /etc/docker/daemon.json /tmp/daemon.json.broken.$(date +%s) || true"
|
||||||
|
echo " sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'"
|
||||||
|
echo "{"
|
||||||
|
echo " \"storage-driver\": \"overlay2\""
|
||||||
|
echo "}"
|
||||||
|
echo "EOF"
|
||||||
|
echo " sudo systemctl daemon-reload && sudo systemctl restart docker"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
log_info "Next steps:"
|
log_info "Next steps:"
|
||||||
echo " 1. Reboot the system to ensure all changes take effect"
|
echo " 1. Reboot the system to ensure all changes take effect"
|
||||||
|
|||||||
Reference in New Issue
Block a user