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
- Extract the application files to your SME Server
- Run the installation script:
sudo ./install.sh
- Access the application at
http://your-server:5000
Manual Installation
If you prefer manual installation:
-
Install dependencies:
pip3 install Flask==2.0.3 Flask-CORS==3.0.10 Werkzeug==2.0.3
-
Copy files to
/opt/smeserver-password-app/
-
Create and start the systemd service (see install.sh for details)
Testing
Use the demo mode for testing:
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:
- Verify Python version:
python3 --version
- Check Flask version:
flask --version
- Review service logs:
journalctl -u smeserver-password-web -f
- 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.