Files
StandalonePasswordChange/python-flask/smeserver-password-app

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:
    sudo ./install.sh
    
  3. Access the application at http://your-server:5000

Manual Installation

If you prefer manual installation:

  1. Install dependencies:

    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:

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.