mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-15 14:52:05 -05:00
[PR #1025] [MERGED] feat: add Frappe LMS template #16333
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/1025
Author: @Siumauricio
Created: 7/14/2026
Status: ✅ Merged
Merged: 7/14/2026
Merged by: @Siumauricio
Base:
canary← Head:feat/frappe-lms📝 Commits (1)
8c15db8feat: add Frappe LMS template📊 Changes
5 files changed (+379 additions, -0 deletions)
View changed files
➕
blueprints/frappe-lms/docker-compose.yml(+313 -0)➕
blueprints/frappe-lms/instructions.md(+17 -0)➕
blueprints/frappe-lms/lms-logo.png(+0 -0)➕
blueprints/frappe-lms/meta.json(+19 -0)➕
blueprints/frappe-lms/template.toml(+30 -0)📄 Description
Summary
Adds a Frappe LMS (Frappe Learning) template, following the proven
erpnext-v16blueprint pattern:configurator+create-siteone-shots, gunicorn backend, nginx frontend (port 8080), 3 queue workers, scheduler, socketio websocket, MariaDB 11.8 and 3x Redis.Image choice (important context)
The upstream images at
ghcr.io/frappe/lmsare currently in a rough state:v2.52.1and newer (includingstable/main) are published without any apps baked in — they contain only the bare Frappe framework, so--install-app lmscannot work with them (upstream CI regression after their switch to the new frappe_docker layout).v2.52.0and older shipfrappe+lms, but not thepaymentsapp, even thoughlms/hooks.pyhard-requiresfrappe/paymentsat install time (ModuleNotFoundError: No module named 'payments', verified empirically).This template therefore pins
ghcr.io/frappe/lms:v2.52.0(frappe 15.104.0 + lms 2.52.0, the newest usable image) and applies two small adjustments in thecreate-siteone-shot:required_appsinlms/hooks.py(install-time only, inside the one-shot container) sobench new-site --install-app lmssucceeds without the missingpaymentsapp. Paid-course checkout is unavailable; courses, batches, quizzes and certifications work normally (documented ininstructions.md).bench clear-cacheafter install and touches a.create-site-donemarker; the backend waits for that marker before starting gunicorn. Without this, requests served during the 3-6 minute first-boot install permanently poison gunicorn workers' in-process caches (AppNotInstalledError: App frappe is not installed).Test evidence (deployed on demo instance)
done; all long-running servicesrunning, one-shots exited cleanly502(no half-installed responses), then:GET /→ 200<title>Login</title>(Frappe login)GET /lms→ 200 (LMS SPA,lms/frontend/assets/...)GET /api/method/ping→{"message":"pong"}(stable across workers)POST /api/method/loginasAdministrator+ generatedADMIN_PASSWORD→{"message":"Logged In","home_page":"/lms"}frappe 15.104.0,lms 2.52.0create-siteexits 0 via the "already exists" pathnode build-scripts/generate-meta.js --check→ 477 templates validatedCloses #517
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.