Commit Graph

28 Commits

Author SHA1 Message Date
Mărcziem ™
9d27968c71 Fix openSUSE package management issues
- Make apt cleanup conditional for apt-based distros only
- Change zypper options from -q to --quiet for compatibility
- Add progress bar consistency for openSUSE updates
2025-10-06 10:16:15 +02:00
Mărcziem ™
0b508c822e Fix openSUSE Leap detection in setup.sh
- Add support for 'opensuse-leap' distribution ID
- Normalize 'opensuse-leap' to 'opensuse' for package management
- Resolves issue where openSUSE Leap was not recognized as supported
2025-10-06 10:12:16 +02:00
Mărcziem ™
f95a843b4c Fix unbound DISTRO_NAME variable in installation summary
- Added DISTRO_NAME variable to detect_distro function using PRETTY_NAME from /etc/os-release
- Export DISTRO_NAME for use in show_installation_summary function
- Prevent 'unbound variable' error when creating services summary file
2025-10-03 13:50:35 +02:00
Mărcziem ™
3c9fe4017b Fix Samba user reference to use ADMIN_USER instead of NEW_USER
- Corrected setup_samba function to use ${ADMIN_USER:-$USER} consistently
- Export configuration variables in load_or_create_config for subshell access
- Ensure ADMIN_USER variable is properly available in all lib scripts
2025-10-03 13:43:55 +02:00
Mărcziem ™
c0d6a07cec fix: Correct user references throughout codebase to use ADMIN_USER or current user
- Replace all NEW_USER references with ADMIN_USER or current user
- Fix Samba password prompt to use correct user instead of 'nasadmin'
- Update SSH, Docker, and Samba configurations to use proper user variables
- Ensure consistent user handling across all services
- Remove hardcoded 'nasadmin' references
2025-10-03 13:24:47 +02:00
Mărcziem ™
21781166ea feat: Use existing sudo user instead of creating new nasadmin user
- Modify setup.sh to automatically detect and use SUDO_USER
- Pre-fill admin username with current sudo user
- Only create new user if specified user doesn't exist
- Update README.md to document user management changes
- Update CHANGELOG.md with user management improvements
- Remove unnecessary NEW_USER default creation
2025-10-03 13:15:51 +02:00
Mărcziem ™
5a0a2401ce fix: Correct services summary file path to user home directory
- Change summary file location from /root/nas_services.txt to ~/nas_services.txt
- Use SUDO_USER environment variable to determine correct user home directory
- Update README.md to reflect the correct path for the services summary file
- Ensure file is created in the home directory of the user who ran sudo
2025-10-03 13:10:54 +02:00
Mărcziem ™
0253b226a4 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
2025-10-03 13:06:52 +02:00
Mărcziem ™
89349adc26 feat(users): interactive helper to create admin user if missing; call during config 2025-10-03 12:18:55 +02:00
Mărcziem ™
7a2d1f1c8e chore(unattended): make automatic updates optional and opt-in via config 2025-10-03 12:11:57 +02:00
Mărcziem ™
b6cdf82356 fix(preflight): detect and clean apt/dpkg locks so setup can be restarted after abort 2025-10-03 12:04:17 +02:00
Mărcziem ™
59a46b3754 fix(handle_error): support wrapper-call usage and trap handler 2025-10-03 11:43:47 +02:00
Mărcziem ™
0fd250a5b3 Revert temporary debugging changes now that lib scripts are fixed 2025-10-03 10:39:40 +02:00
Mărcziem ™
3e048ba938 fix(run_installation): avoid ((current_step++)) under set -e by using explicit arithmetic increment 2025-10-03 10:38:30 +02:00
Mărcziem ™
3fb7f3479e Add debug trace logs to run_installation to locate stall/abort point 2025-10-03 10:25:59 +02:00
Mărcziem ™
5416687af2 Remove existing config file before creating new one to prevent loading old config 2025-10-03 09:31:38 +02:00
Mărcziem ™
34f45f978c Unset config variables before loading config to prevent environment pollution 2025-10-03 09:30:01 +02:00
Mărcziem ™
1c2dbe22a1 Force interactive configuration always for debugging config persistence issues 2025-10-03 09:27:03 +02:00
Mărcziem ™
f3afd46abc Fix config loading after creation
- Load config after create_interactive_config to set variables in shell
- Ensures INSTALL_* variables are properly set for installation logic
2025-10-03 09:14:03 +02:00
Mărcziem ™
8db3151495 Fix config validation to recreate config on failure
- Change load_or_create_config to call create_interactive_config when validate_config fails
- This ensures inconsistent configs are replaced with valid ones
2025-10-03 09:10:48 +02:00
Mărcziem ™
fea22c3e0d Fix Docker dependency check in interactive config
- Use local variable for Docker selection to properly check dependencies
- Ensure Docker-dependent services are only prompted when Docker is selected
2025-10-03 09:02:13 +02:00
Mărcziem ™
2441155399 fix: Prevent Docker-dependent services when Docker not selected
- Add dependency check in create_interactive_config
- Docker services (Vaultwarden, Jellyfin, Portainer) only offered when Docker selected
- Update README to clarify Docker requirements
- Prevents 'Docker not installed' errors during installation
2025-10-03 09:00:11 +02:00
Mărcziem ™
b0340adf03 feat: Add advanced NAS performance optimizations
- Memory optimization: vm.swappiness=10, vm.vfs_cache_pressure=50
- Enhanced Docker configuration with overlay2 and log rotation
- Webmin web interface integration with firewall configuration
- Multi-distribution Webmin support (Ubuntu/Debian, Fedora, openSUSE)
- SSL configuration and session timeout optimization
- Updated documentation and installation summary
- Enterprise-grade performance tuning for NAS workloads
2025-10-03 08:10:28 +02:00
Mărcziem ™
081e32ed43 fix: Update version in setup.sh header to 2.1.1 2025-10-01 23:48:19 +02:00
Mărcziem ™
a7fd5f806b feat: Enhance distribution detection with robust 5-method fallback system
- Add lib/detection.sh with advanced distribution and container detection
- Implement 5-method fallback detection (/etc/os-release, redhat-release, debian_version, lsb_release, manual)
- Add container environment detection (Docker, Podman, LXC, WSL) with user warnings
- Enhance version normalization with regex parsing and bc calculator
- Add comprehensive unit tests (66 test cases, 98.5% success rate)
- Update documentation (README, CHANGELOG, SECURITY, CONTRIBUTING)
- Improve enterprise-grade error handling and logging
- Add IPv6 and security considerations for 2025 compatibility
2025-10-01 23:44:48 +02:00
Sebastian Palencsár
cb91166616 feat: Major v2.0.0 rewrite - Enterprise-grade NAS setup script
🚀 BREAKING CHANGE: Complete rewrite to enterprise-grade standards

###  New Features:
- Enhanced input validation (IP, port, username, path)
- Automatic rollback mechanism on failures
- Comprehensive unit testing framework (50+ tests)
- Advanced logging with timestamps and levels
- Interactive configuration system with persistence
- Performance optimization suite (kernel, Docker, Samba)
- Advanced firewall configuration with monitoring
- System health monitoring and maintenance tools
- Multi-distribution support with version validation

### 🛡️ Security Enhancements:
- SSH hardening with security policies
- Rate limiting for critical services
- IP blocking/unblocking tools
- Intrusion detection capabilities
- Firewall monitoring with alerts
- Secure input sanitization

### 🔧 Architecture Improvements:
- Modular library structure
- Centralized configuration management
- Common functions separation
- Professional error handling with set -euo pipefail
- Signal handling for graceful shutdowns
- Resource cleanup mechanisms

### 📚 Documentation:
- Professional README with comprehensive guides
- Enhanced CONTRIBUTING.md with development standards
- Complete CHANGELOG.md with version history
- Troubleshooting guides and best practices

### 🧪 Testing & Quality:
- Unit tests for all critical functions
- Performance regression testing
- Multi-distribution integration testing
- Input validation testing
- Error scenario testing

This release transforms the script from a basic tool to a production-ready,
enterprise-grade NAS setup solution suitable for professional environments.
2025-06-17 10:57:46 +02:00
Sebastian Palencsár
cf27011875 Update setup.sh 2025-01-22 09:16:17 +01:00
Sebastian Palencsár
5ecb235919 Add files via upload 2025-01-22 09:13:20 +01:00