Body:
Problem
The recommended production deployment method (via easy-install.py and ghcr.io/frappe/lms:stable) uses Docker images that were last updated in December 2025. Multiple critical bug fixes merged since then — including PR #2120 (course completion % fix, Jobs sidebar visibility fix) — are not available to production users.
Current state
ghcr.io/frappe/lms:stable — built December 24, 2025
ghcr.io/frappe/lms:main — built December 24, 2025
ghcr.io/frappe/lms:develop — built December 24, 2025
All three tags point to the same image digest: sha256:595527837251...
Impact
Users following the official recommended deployment cannot benefit from critical fixes such as:
Course completion percentage always showing 0% (#851, fixed in #2120)
Jobs tab not being hidden when disabled in LMS Settings (#192, fixed in #2120)
Bug 2: easy-install.py fails due to missing SITES_RULE in generated .env
Description
When running easy-install.py, the script overwrites the .env file but does not include the SITES_RULE variable. This causes docker-compose to fail with an error about missing variable. Manually adding SITES_RULE to .env doesn't help because the script overwrites it on every run.
Workaround
Either export the variable manually before running:
export SITES_RULE="Host(`your-domain.com`)"
Or patch the script to include SITES_RULE in the generated .env:
sudo sed -i 's/f"SITES={quoted_sites}\n",/f"SITES={quoted_sites}\n",\n f"SITES_RULE=Host({sites[0]})\n",/' /opt/lms/easy-install.py
The fix is to add SITES_RULE to env_file_lines around line 88-89 of easy-install.py:
f"SITES_RULE=Host({sites[0]})\n",
What's needed
Update ghcr.io images regularly via CI/CD on every merge to main/develop
Provide a Dockerfile for production builds — currently only a dev setup exists using frappe/bench:latest
Fix easy-install.py to include SITES_RULE in the generated .env file
Steps to reproduce (outdated images)
docker pull ghcr.io/frappe/lms:stable
docker inspect ghcr.io/frappe/lms:stable | grep Created
Output: "Created": "2024-12-23T07:03:46.557473773Z"
Expected behavior
Production Docker images should be updated regularly, or users should have a supported way to build from source with latest fixes. easy-install.py should generate a complete and valid .env file without requiring manual intervention.
Body:
Problem
The recommended production deployment method (via easy-install.py and ghcr.io/frappe/lms:stable) uses Docker images that were last updated in December 2025. Multiple critical bug fixes merged since then — including PR #2120 (course completion % fix, Jobs sidebar visibility fix) — are not available to production users.
Current state
ghcr.io/frappe/lms:stable — built December 24, 2025
ghcr.io/frappe/lms:main — built December 24, 2025
ghcr.io/frappe/lms:develop — built December 24, 2025
All three tags point to the same image digest: sha256:595527837251...
Impact
Users following the official recommended deployment cannot benefit from critical fixes such as:
Course completion percentage always showing 0% (#851, fixed in #2120)
Jobs tab not being hidden when disabled in LMS Settings (#192, fixed in #2120)
Bug 2: easy-install.py fails due to missing SITES_RULE in generated .env
Description
When running easy-install.py, the script overwrites the .env file but does not include the SITES_RULE variable. This causes docker-compose to fail with an error about missing variable. Manually adding SITES_RULE to .env doesn't help because the script overwrites it on every run.
Workaround
Either export the variable manually before running:
export SITES_RULE="Host(`your-domain.com`)"
Or patch the script to include SITES_RULE in the generated .env:
sudo sed -i 's/f"SITES={quoted_sites}\n",/f"SITES={quoted_sites}\n",\n f"SITES_RULE=Host(
{sites[0]})\n",/' /opt/lms/easy-install.pyThe fix is to add SITES_RULE to env_file_lines around line 88-89 of easy-install.py:
f"SITES_RULE=Host(
{sites[0]})\n",What's needed
Update ghcr.io images regularly via CI/CD on every merge to main/develop
Provide a Dockerfile for production builds — currently only a dev setup exists using frappe/bench:latest
Fix easy-install.py to include SITES_RULE in the generated .env file
Steps to reproduce (outdated images)
docker pull ghcr.io/frappe/lms:stable
docker inspect ghcr.io/frappe/lms:stable | grep Created
Output: "Created": "2024-12-23T07:03:46.557473773Z"
Expected behavior
Production Docker images should be updated regularly, or users should have a supported way to build from source with latest fixes. easy-install.py should generate a complete and valid .env file without requiring manual intervention.