# SME Server Password Change Application - Python 3.6.8 Compatible ## Overview A Python Flask web application specifically updated for compatibility with Python 3.6.8 and Flask 2.0.3, implementing a password change interface for SME Server systems. ## Compatibility - ✅ **Python 3.6.8** - Fully tested and compatible - ✅ **Flask 2.0.3** - Compatible version - ✅ **Werkzeug 2.0.3** - Compatible version - ✅ **Flask-CORS 3.0.10** - Compatible version ## Key Changes for Python 3.6.8 - Removed f-string formatting (replaced with .format()) - Updated type hints for Python 3.6 compatibility - Compatible Flask and dependency versions - Tested string formatting methods ## Requirements ``` Flask==2.0.3 Flask-CORS==3.0.10 Werkzeug==2.0.3 ``` ## Features - Web interface matching the original SME Server design - Integration with SME Server configuration database - Password strength validation - Current password verification - Uses `signal-event password-update` for proper password updates - Responsive design for mobile and desktop - Error handling and security measures - Demo mode for testing ## Quick Installation 1. Extract the application files to your SME Server 2. Run the installation script: ```bash sudo ./install.sh ``` 3. Access the application at `http://your-server:5000` ## Manual Installation If you prefer manual installation: 1. Install dependencies: ```bash pip3 install Flask==2.0.3 Flask-CORS==3.0.10 Werkzeug==2.0.3 ``` 2. Copy files to `/opt/smeserver-password-app/` 3. Create and start the systemd service (see install.sh for details) ## Testing Use the demo mode for testing: ```bash python3 demo_mode.py ``` Demo users: - Username: `testuser`, Password: `oldpassword123` - Username: `admin`, Password: `adminpass456` - Username: `john`, Password: `johnpass789` ## File Structure ``` smeserver-password-app-py36/ ├── app.py # Main Flask application (Python 3.6.8 compatible) ├── smeserver_utils.py # SME Server utilities (Python 3.6.8 compatible) ├── demo_mode.py # Demo version (Python 3.6.8 compatible) ├── requirements.txt # Python 3.6.8 compatible dependencies ├── install.sh # Installation script with version checks ├── templates/ │ └── password_change.html # Web interface template ├── static/ │ └── css/ │ └── style.css # Styling └── README.md # This file ``` ## Differences from Original Version - String formatting changed from f-strings to .format() method - Type hints updated for Python 3.6 compatibility - Dependency versions locked to Python 3.6.8 compatible versions - Installation script includes Python version detection ## Troubleshooting If you encounter issues: 1. Verify Python version: `python3 --version` 2. Check Flask version: `flask --version` 3. Review service logs: `journalctl -u smeserver-password-web -f` 4. Test with demo mode first ## Support This version is specifically designed for SME Server systems running Python 3.6.8 with Flask 2.0.3.