{% extends "base.html" %} {% block title %}WMT Client Releases – {{ app_name }}{% endblock %} {% block page_title %}WMT Client Release Management{% endblock %} {% block content %}
Current Release
{% if meta %}

Version | v{{ meta.version }}
File | `{{ meta.filename }}`
Size | {% if zip_size %}{{ (zip_size / 1024 / 1024) | round(2) }} MB{% else %}file missing!{% endif %}
Uploaded | {{ meta.uploaded_at }}
Notes | {{ meta.notes or '—' }}

Download zip
{% else %}
No release uploaded yet.
Upload a zip below to enable client auto-update.
{% endif %}
Upload New Release
Version *
Numeric only, e.g. `3.0` or `3.1.2`. Must be higher than the current version to trigger client updates.
Release Notes
Release Zip *
Must contain `app.py` at the zip root.
Include `dependency_utils.py`, `config.py`, `Files/reposytory/`, and `Files/Screen.html` for a full release.
Uploading will replace the current release immediately. All WMT clients will download the new version on their next 5-minute sync cycle.
Build Release from Server Folder

Package the WMT source folder that lives on this server into a clean release zip. Hidden files (`.git`, `.gitignore`, `.lgd-nfy0`, …), `__pycache__`, `data/`, `venv/` and compiled `.pyc` / `.log` files are automatically excluded.

Source Folder *
Absolute path to the WMT folder on this server.
Version *
Release Notes
Excluded automatically: `.git/` `.gitignore` `.lgd-*` any hidden file/folder · `__pycache__/` `*.pyc` `*.log` `*.bak` · `data/` `venv/`
How Auto-Update Works
1
Client checks version
Every 5 min, client calls `GET /api/wmt/client/version` and compares server version with its own (from line 1 of app.py)
2
Download if outdated
If server version > local version, client downloads `GET /api/wmt/client/download`
3
Apply & back up
Zip is extracted over the WMT folder. Old `app.py` is backed up as `app.py.bak.<version>`
4
Service restart
Client calls `sudo systemctl restart wmt` (or reboots) to start the new code
{% endblock %}