Back to Templates
Frappe LMS logo

Frappe LMS

vv2.52.0

Easy to use, open source learning management system to structure courses and reach out to learners, built on the Frappe Framework.

Deploy on Notploy

How to deploy

Deploy Frappe LMS on Notploy

  1. Install Notploy on your server if you haven't already.
  2. In your Notploy panel, open a project and click Create Service → Template.
  3. Search for Frappe LMS and click Create — Notploy configures domains, environment variables, and volumes for you.

Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:

base64
ewogICJjb21wb3NlIjogIngtY3VzdG9tLWltYWdlOiAmY3VzdG9tX2ltYWdlXG4gIGltYWdlOiAke0lNQUdFX05BTUU6LWdoY3IuaW8vZnJhcHBlL2xtc306JHtWRVJTSU9OOi12Mi41Mi4wfVxuICBwdWxsX3BvbGljeTogJHtQVUxMX1BPTElDWTotYWx3YXlzfVxuICBkZXBsb3k6XG4gICAgcmVzdGFydF9wb2xpY3k6XG4gICAgICBjb25kaXRpb246IGFsd2F5c1xuXG5zZXJ2aWNlczpcbiAgYmFja2VuZDpcbiAgICA8PDogKmN1c3RvbV9pbWFnZVxuICAgIGVudHJ5cG9pbnQ6IFtcImJhc2hcIiwgXCItY1wiXVxuICAgIGNvbW1hbmQ6XG4gICAgICAtID5cbiAgICAgICAgdW50aWwgW1sgLWYgXCJzaXRlcy8ke1NJVEVfTkFNRX0vLmNyZWF0ZS1zaXRlLWRvbmVcIiBdXTsgZG9cbiAgICAgICAgICBlY2hvIFwiV2FpdGluZyBmb3Igc2l0ZSAke1NJVEVfTkFNRX0gdG8gYmUgY3JlYXRlZCAoZmlyc3QgYm9vdCB0YWtlcyBhIGZldyBtaW51dGVzKVwiO1xuICAgICAgICAgIHNsZWVwIDU7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIGV4ZWMgL2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9lbnYvYmluL2d1bmljb3JuIC0tY2hkaXI9L2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9zaXRlcyAtLWJpbmQ9MC4wLjAuMDo4MDAwIC0tdGhyZWFkcz00IC0td29ya2Vycz0yIC0td29ya2VyLWNsYXNzPWd0aHJlYWQgLS13b3JrZXItdG1wLWRpcj0vZGV2L3NobSAtLXRpbWVvdXQ9MTIwIC0tcHJlbG9hZCBmcmFwcGUuYXBwOmFwcGxpY2F0aW9uXG4gICAgdm9sdW1lczpcbiAgICAgIC0gc2l0ZXM6L2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9zaXRlc1xuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDogW1wiQ01EXCIsIFwid2FpdC1mb3ItaXRcIiwgXCIxMjcuMC4wLjE6ODAwMFwiXVxuICAgICAgaW50ZXJ2YWw6IDJzXG4gICAgICB0aW1lb3V0OiAxMHNcbiAgICAgIHJldHJpZXM6IDMwXG4gICAgICBzdGFydF9wZXJpb2Q6IDYwMHNcblxuICBmcm9udGVuZDpcbiAgICA8PDogKmN1c3RvbV9pbWFnZVxuICAgIGNvbW1hbmQ6XG4gICAgICAtIG5naW54LWVudHJ5cG9pbnQuc2hcbiAgICBkZXBlbmRzX29uOlxuICAgICAgYmFja2VuZDpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX3N0YXJ0ZWRcbiAgICAgIHdlYnNvY2tldDpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX3N0YXJ0ZWRcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIEJBQ0tFTkQ6IGJhY2tlbmQ6ODAwMFxuICAgICAgRlJBUFBFX1NJVEVfTkFNRV9IRUFERVI6ICR7RlJBUFBFX1NJVEVfTkFNRV9IRUFERVI6LSQkaG9zdH1cbiAgICAgIFNPQ0tFVElPOiB3ZWJzb2NrZXQ6OTAwMFxuICAgICAgVVBTVFJFQU1fUkVBTF9JUF9BRERSRVNTOiAxMjcuMC4wLjFcbiAgICAgIFVQU1RSRUFNX1JFQUxfSVBfSEVBREVSOiBYLUZvcndhcmRlZC1Gb3JcbiAgICAgIFVQU1RSRUFNX1JFQUxfSVBfUkVDVVJTSVZFOiBcIm9mZlwiXG4gICAgdm9sdW1lczpcbiAgICAgIC0gc2l0ZXM6L2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9zaXRlc1xuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDogW1wiQ01EXCIsIFwid2FpdC1mb3ItaXRcIiwgXCIxMjcuMC4wLjE6ODA4MFwiXVxuICAgICAgaW50ZXJ2YWw6IDJzXG4gICAgICB0aW1lb3V0OiAzMHNcbiAgICAgIHJldHJpZXM6IDMwXG5cbiAgcXVldWUtZGVmYXVsdDpcbiAgICA8PDogKmN1c3RvbV9pbWFnZVxuICAgIGNvbW1hbmQ6XG4gICAgICAtIGJlbmNoXG4gICAgICAtIHdvcmtlclxuICAgICAgLSAtLXF1ZXVlXG4gICAgICAtIGRlZmF1bHRcbiAgICB2b2x1bWVzOlxuICAgICAgLSBzaXRlczovaG9tZS9mcmFwcGUvZnJhcHBlLWJlbmNoL3NpdGVzXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJ3YWl0LWZvci1pdFwiLCBcInJlZGlzLXF1ZXVlOjYzNzlcIl1cbiAgICAgIGludGVydmFsOiAyc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiAzMFxuICAgIGRlcGVuZHNfb246XG4gICAgICBjb25maWd1cmF0b3I6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XG5cbiAgcXVldWUtbG9uZzpcbiAgICA8PDogKmN1c3RvbV9pbWFnZVxuICAgIGNvbW1hbmQ6XG4gICAgICAtIGJlbmNoXG4gICAgICAtIHdvcmtlclxuICAgICAgLSAtLXF1ZXVlXG4gICAgICAtIGxvbmdcbiAgICB2b2x1bWVzOlxuICAgICAgLSBzaXRlczovaG9tZS9mcmFwcGUvZnJhcHBlLWJlbmNoL3NpdGVzXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJ3YWl0LWZvci1pdFwiLCBcInJlZGlzLXF1ZXVlOjYzNzlcIl1cbiAgICAgIGludGVydmFsOiAyc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiAzMFxuICAgIGRlcGVuZHNfb246XG4gICAgICBjb25maWd1cmF0b3I6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XG5cbiAgcXVldWUtc2hvcnQ6XG4gICAgPDw6ICpjdXN0b21faW1hZ2VcbiAgICBjb21tYW5kOlxuICAgICAgLSBiZW5jaFxuICAgICAgLSB3b3JrZXJcbiAgICAgIC0gLS1xdWV1ZVxuICAgICAgLSBzaG9ydFxuICAgIHZvbHVtZXM6XG4gICAgICAtIHNpdGVzOi9ob21lL2ZyYXBwZS9mcmFwcGUtYmVuY2gvc2l0ZXNcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcIndhaXQtZm9yLWl0XCIsIFwicmVkaXMtcXVldWU6NjM3OVwiXVxuICAgICAgaW50ZXJ2YWw6IDJzXG4gICAgICB0aW1lb3V0OiAxMHNcbiAgICAgIHJldHJpZXM6IDMwXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGNvbmZpZ3VyYXRvcjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcblxuICBzY2hlZHVsZXI6XG4gICAgPDw6ICpjdXN0b21faW1hZ2VcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcIndhaXQtZm9yLWl0XCIsIFwicmVkaXMtcXVldWU6NjM3OVwiXVxuICAgICAgaW50ZXJ2YWw6IDJzXG4gICAgICB0aW1lb3V0OiAxMHNcbiAgICAgIHJldHJpZXM6IDMwXG4gICAgY29tbWFuZDpcbiAgICAgIC0gYmVuY2hcbiAgICAgIC0gc2NoZWR1bGVcbiAgICBkZXBlbmRzX29uOlxuICAgICAgY29uZmlndXJhdG9yOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVxuICAgIHZvbHVtZXM6XG4gICAgICAtIHNpdGVzOi9ob21lL2ZyYXBwZS9mcmFwcGUtYmVuY2gvc2l0ZXNcblxuICB3ZWJzb2NrZXQ6XG4gICAgPDw6ICpjdXN0b21faW1hZ2VcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcIndhaXQtZm9yLWl0XCIsIFwid2Vic29ja2V0OjkwMDBcIl1cbiAgICAgIGludGVydmFsOiAyc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiAzMFxuICAgIGNvbW1hbmQ6XG4gICAgICAtIG5vZGVcbiAgICAgIC0gL2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9hcHBzL2ZyYXBwZS9zb2NrZXRpby5qc1xuICAgIGRlcGVuZHNfb246XG4gICAgICBjb25maWd1cmF0b3I6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XG4gICAgdm9sdW1lczpcbiAgICAgIC0gc2l0ZXM6L2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9zaXRlc1xuXG4gIGNvbmZpZ3VyYXRvcjpcbiAgICA8PDogKmN1c3RvbV9pbWFnZVxuICAgIGRlcGxveTpcbiAgICAgIG1vZGU6IHJlcGxpY2F0ZWRcbiAgICAgIHJlcGxpY2FzOiAke0NPTkZJR1VSRTotMH1cbiAgICAgIHJlc3RhcnRfcG9saWN5OlxuICAgICAgICBjb25kaXRpb246IG5vbmVcbiAgICBlbnRyeXBvaW50OiBbXCJiYXNoXCIsIFwiLWNcIl1cbiAgICBjb21tYW5kOlxuICAgICAgLSA+XG4gICAgICAgIGVjaG8gXCJbY29uZmlndXJhdG9yXSBzdGFydGluZ1wiO1xuICAgICAgICBpZiBbWyAkJHtSRUdFTkVSQVRFX0FQUFNfVFhUfSA9PSBcIjFcIiBdXTsgdGhlblxuICAgICAgICAgIGVjaG8gXCJbY29uZmlndXJhdG9yXSByZWdlbmVyYXRpbmcgc2l0ZXMvYXBwcy50eHRcIjtcbiAgICAgICAgICBscyAtMSBhcHBzID4gc2l0ZXMvYXBwcy50eHQ7XG4gICAgICAgIGZpO1xuICAgICAgICBleGlzdGluZ19kYl9ob3N0PSQkKGdyZXAgLWhzICdeJyBzaXRlcy9jb21tb25fc2l0ZV9jb25maWcuanNvbiB8IGpxIC1yIFwiLmRiX2hvc3QgLy8gZW1wdHlcIiAyPi9kZXYvbnVsbCB8fCB0cnVlKTtcbiAgICAgICAgaWYgW1sgLW4gXCIkJHtleGlzdGluZ19kYl9ob3N0fVwiIF1dOyB0aGVuXG4gICAgICAgICAgZWNobyBcIltjb25maWd1cmF0b3JdIGNvbW1vbl9zaXRlX2NvbmZpZy5qc29uIGFscmVhZHkgY29uZmlndXJlZCwgc2tpcHBpbmdcIjtcbiAgICAgICAgICBleGl0IDA7XG4gICAgICAgIGZpO1xuICAgICAgICBlY2hvIFwiW2NvbmZpZ3VyYXRvcl0gYXBwbHlpbmcgYmVuY2ggZ2xvYmFsIGNvbmZpZ1wiO1xuICAgICAgICBiZW5jaCBzZXQtY29uZmlnIC1nIGRiX2hvc3QgJCREQl9IT1NUO1xuICAgICAgICBiZW5jaCBzZXQtY29uZmlnIC1ncCBkYl9wb3J0ICQkREJfUE9SVDtcbiAgICAgICAgYmVuY2ggc2V0LWNvbmZpZyAtZyByZWRpc19jYWNoZSBcInJlZGlzOi8vJCRSRURJU19DQUNIRVwiO1xuICAgICAgICBiZW5jaCBzZXQtY29uZmlnIC1nIHJlZGlzX3F1ZXVlIFwicmVkaXM6Ly8kJFJFRElTX1FVRVVFXCI7XG4gICAgICAgIGJlbmNoIHNldC1jb25maWcgLWcgcmVkaXNfc29ja2V0aW8gXCJyZWRpczovLyQkUkVESVNfU09DS0VUSU9cIjtcbiAgICAgICAgYmVuY2ggc2V0LWNvbmZpZyAtZ3Agc29ja2V0aW9fcG9ydCAkJFNPQ0tFVElPX1BPUlQ7XG4gICAgICAgIGVjaG8gXCJbY29uZmlndXJhdG9yXSBkb25lXCI7XG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBEQl9IT1NUOiBcIiR7REJfSE9TVDotZGJ9XCJcbiAgICAgIERCX1BPUlQ6IFwiMzMwNlwiXG4gICAgICBSRURJU19DQUNIRTogcmVkaXMtY2FjaGU6NjM3OVxuICAgICAgUkVESVNfUVVFVUU6IHJlZGlzLXF1ZXVlOjYzNzlcbiAgICAgIFJFRElTX1NPQ0tFVElPOiByZWRpcy1zb2NrZXRpbzo2Mzc5XG4gICAgICBTT0NLRVRJT19QT1JUOiBcIjkwMDBcIlxuICAgICAgUkVHRU5FUkFURV9BUFBTX1RYVDogXCIke1JFR0VORVJBVEVfQVBQU19UWFQ6LTB9XCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBzaXRlczovaG9tZS9mcmFwcGUvZnJhcHBlLWJlbmNoL3NpdGVzXG5cbiAgY3JlYXRlLXNpdGU6XG4gICAgPDw6ICpjdXN0b21faW1hZ2VcbiAgICBkZXBsb3k6XG4gICAgICBtb2RlOiByZXBsaWNhdGVkXG4gICAgICByZXBsaWNhczogJHtDUkVBVEVfU0lURTotMH1cbiAgICAgIHJlc3RhcnRfcG9saWN5OlxuICAgICAgICBjb25kaXRpb246IG5vbmVcbiAgICBlbnRyeXBvaW50OiBbXCJiYXNoXCIsIFwiLWNcIl1cbiAgICBjb21tYW5kOlxuICAgICAgLSA+XG4gICAgICAgIHdhaXQtZm9yLWl0IC10IDMwMCAkJHtEQl9IT1NUfTokJHtEQl9QT1JUfTtcbiAgICAgICAgd2FpdC1mb3ItaXQgLXQgMTIwIHJlZGlzLWNhY2hlOjYzNzk7XG4gICAgICAgIHdhaXQtZm9yLWl0IC10IDEyMCByZWRpcy1xdWV1ZTo2Mzc5O1xuICAgICAgICBleHBvcnQgc3RhcnQ9YGRhdGUgKyVzYDtcbiAgICAgICAgdW50aWwgW1sgLW4gYGdyZXAgLWhzIF4gc2l0ZXMvY29tbW9uX3NpdGVfY29uZmlnLmpzb24gfCBqcSAtciBcIi5kYl9ob3N0IC8vIGVtcHR5XCJgIF1dICYmIFxcXG4gICAgICAgICAgW1sgLW4gYGdyZXAgLWhzIF4gc2l0ZXMvY29tbW9uX3NpdGVfY29uZmlnLmpzb24gfCBqcSAtciBcIi5yZWRpc19jYWNoZSAvLyBlbXB0eVwiYCBdXSAmJiBcXFxuICAgICAgICAgIFtbIC1uIGBncmVwIC1ocyBeIHNpdGVzL2NvbW1vbl9zaXRlX2NvbmZpZy5qc29uIHwganEgLXIgXCIucmVkaXNfcXVldWUgLy8gZW1wdHlcImAgXV07XG4gICAgICAgIGRvXG4gICAgICAgICAgZWNobyBcIldhaXRpbmcgZm9yIHNpdGVzL2NvbW1vbl9zaXRlX2NvbmZpZy5qc29uIHRvIGJlIGNyZWF0ZWRcIjtcbiAgICAgICAgICBzbGVlcCA1O1xuICAgICAgICAgIGlmICgoIGBkYXRlICslc2Atc3RhcnQgPiAxMjAgKSk7IHRoZW5cbiAgICAgICAgICAgIGVjaG8gXCJjb3VsZCBub3QgZmluZCBzaXRlcy9jb21tb25fc2l0ZV9jb25maWcuanNvbiB3aXRoIHJlcXVpcmVkIGtleXNcIjtcbiAgICAgICAgICAgIGV4aXQgMVxuICAgICAgICAgIGZpXG4gICAgICAgIGRvbmU7XG4gICAgICAgIGVjaG8gXCJzaXRlcy9jb21tb25fc2l0ZV9jb25maWcuanNvbiBmb3VuZFwiO1xuICAgICAgICBbWyAtZCBcInNpdGVzLyR7U0lURV9OQU1FfVwiIF1dICYmIGVjaG8gXCIke1NJVEVfTkFNRX0gYWxyZWFkeSBleGlzdHNcIiAmJiB0b3VjaCBzaXRlcy8ke1NJVEVfTkFNRX0vLmNyZWF0ZS1zaXRlLWRvbmUgJiYgZXhpdCAwO1xuICAgICAgICBzZWQgLWkgXCJzL15yZXF1aXJlZF9hcHBzLiovcmVxdWlyZWRfYXBwcyA9IFtdL1wiIGFwcHMvbG1zL2xtcy9ob29rcy5weTtcbiAgICAgICAgYmVuY2ggbmV3LXNpdGUgLS1tYXJpYWRiLXVzZXItaG9zdC1sb2dpbi1zY29wZT0nJScgLS1hZG1pbi1wYXNzd29yZD0kJHtBRE1JTl9QQVNTV09SRH0gLS1kYi1yb290LXVzZXJuYW1lPXJvb3QgLS1kYi1yb290LXBhc3N3b3JkPSQke0RCX1JPT1RfUEFTU1dPUkR9ICQke0lOU1RBTExfQVBQX0FSR1N9ICQke1NJVEVfTkFNRX0gfHwgZXhpdCAxO1xuICAgICAgICBpZiBbWyAkJHtFTkFCTEVfU0NIRURVTEVSfSA9PSBcIjFcIiBdXTsgdGhlblxuICAgICAgICAgIGJlbmNoIC0tc2l0ZSAkJHtTSVRFX05BTUV9IGVuYWJsZS1zY2hlZHVsZXI7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBlY2hvIFwiU2tpcHBpbmcgc2NoZWR1bGVyIGVuYWJsZVwiO1xuICAgICAgICBmaTtcbiAgICAgICAgYmVuY2ggLS1zaXRlICQke1NJVEVfTkFNRX0gY2xlYXItY2FjaGU7XG4gICAgICAgIHRvdWNoIHNpdGVzLyQke1NJVEVfTkFNRX0vLmNyZWF0ZS1zaXRlLWRvbmU7XG4gICAgdm9sdW1lczpcbiAgICAgIC0gc2l0ZXM6L2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9zaXRlc1xuICAgIGVudmlyb25tZW50OlxuICAgICAgU0lURV9OQU1FOiAke1NJVEVfTkFNRX1cbiAgICAgIEFETUlOX1BBU1NXT1JEOiAke0FETUlOX1BBU1NXT1JEfVxuICAgICAgREJfSE9TVDogJHtEQl9IT1NUOi1kYn1cbiAgICAgIERCX1BPUlQ6IFwiJHtEQl9QT1JUOi0zMzA2fVwiXG4gICAgICBEQl9ST09UX1BBU1NXT1JEOiAke0RCX1JPT1RfUEFTU1dPUkR9XG4gICAgICBJTlNUQUxMX0FQUF9BUkdTOiAke0lOU1RBTExfQVBQX0FSR1N9XG4gICAgICBFTkFCTEVfU0NIRURVTEVSOiBcIiR7RU5BQkxFX1NDSEVEVUxFUn1cIlxuXG4gIG1pZ3JhdGlvbjpcbiAgICA8PDogKmN1c3RvbV9pbWFnZVxuICAgIGRlcGxveTpcbiAgICAgIG1vZGU6IHJlcGxpY2F0ZWRcbiAgICAgIHJlcGxpY2FzOiAke01JR1JBVEU6LTB9XG4gICAgICByZXN0YXJ0X3BvbGljeTpcbiAgICAgICAgY29uZGl0aW9uOiBub25lXG4gICAgZW50cnlwb2ludDogW1wiYmFzaFwiLCBcIi1jXCJdXG4gICAgY29tbWFuZDpcbiAgICAgIC0gPlxuICAgICAgICBjdXJsIC1mIC1IIFwiSG9zdDogJHtTSVRFX05BTUV9XCIgaHR0cDovL2Zyb250ZW5kOjgwODAvYXBpL21ldGhvZC9waW5nIHx8IHsgZWNobyBcIlNpdGUgbm90IHJlYWNoYWJsZSB5ZXQsIHNraXBwaW5nIG1pZ3JhdGlvblwiOyBleGl0IDA7IH07XG4gICAgICAgIGJlbmNoIC0tc2l0ZSBhbGwgc2V0LWNvbmZpZyAtcCBtYWludGVuYW5jZV9tb2RlIDE7XG4gICAgICAgIGJlbmNoIC0tc2l0ZSBhbGwgc2V0LWNvbmZpZyAtcCBwYXVzZV9zY2hlZHVsZXIgMTtcbiAgICAgICAgYmVuY2ggLS1zaXRlIGFsbCBtaWdyYXRlO1xuICAgICAgICBiZW5jaCAtLXNpdGUgYWxsIHNldC1jb25maWcgLXAgbWFpbnRlbmFuY2VfbW9kZSAwO1xuICAgICAgICBiZW5jaCAtLXNpdGUgYWxsIHNldC1jb25maWcgLXAgcGF1c2Vfc2NoZWR1bGVyIDA7XG4gICAgdm9sdW1lczpcbiAgICAgIC0gc2l0ZXM6L2hvbWUvZnJhcHBlL2ZyYXBwZS1iZW5jaC9zaXRlc1xuXG4gIGRiOlxuICAgIGltYWdlOiBtYXJpYWRiOiR7REJfVkVSU0lPTjotMTEuOC42fVxuICAgIGRlcGxveTpcbiAgICAgIG1vZGU6IHJlcGxpY2F0ZWRcbiAgICAgIHJlcGxpY2FzOiAke0VOQUJMRV9EQjotMH1cbiAgICAgIHJlc3RhcnRfcG9saWN5OlxuICAgICAgICBjb25kaXRpb246IGFsd2F5c1xuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDogW1wiQ01EXCIsIFwiaGVhbHRoY2hlY2suc2hcIiwgXCItLWNvbm5lY3RcIiwgXCItLWlubm9kYl9pbml0aWFsaXplZFwiXVxuICAgICAgc3RhcnRfcGVyaW9kOiAxMjBzXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAzMFxuICAgIGNvbW1hbmQ6XG4gICAgICAtIC0tY2hhcmFjdGVyLXNldC1zZXJ2ZXI9dXRmOG1iNFxuICAgICAgLSAtLWNvbGxhdGlvbi1zZXJ2ZXI9dXRmOG1iNF91bmljb2RlX2NpXG4gICAgICAtIC0tc2tpcC1jaGFyYWN0ZXItc2V0LWNsaWVudC1oYW5kc2hha2VcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gTUFSSUFEQl9ST09UX1BBU1NXT1JEPSR7REJfUk9PVF9QQVNTV09SRH1cbiAgICB2b2x1bWVzOlxuICAgICAgLSBkYi1kYXRhOi92YXIvbGliL215c3FsXG5cbiAgcmVkaXMtY2FjaGU6XG4gICAgZGVwbG95OlxuICAgICAgcmVzdGFydF9wb2xpY3k6XG4gICAgICAgIGNvbmRpdGlvbjogYWx3YXlzXG4gICAgaW1hZ2U6IHJlZGlzOjYuMi1hbHBpbmVcbiAgICB2b2x1bWVzOlxuICAgICAgLSByZWRpcy1jYWNoZS1kYXRhOi9kYXRhXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJyZWRpcy1jbGlcIiwgXCJwaW5nXCJdXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAzXG5cbiAgcmVkaXMtcXVldWU6XG4gICAgZGVwbG95OlxuICAgICAgcmVzdGFydF9wb2xpY3k6XG4gICAgICAgIGNvbmRpdGlvbjogYWx3YXlzXG4gICAgaW1hZ2U6IHJlZGlzOjYuMi1hbHBpbmVcbiAgICB2b2x1bWVzOlxuICAgICAgLSByZWRpcy1xdWV1ZS1kYXRhOi9kYXRhXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJyZWRpcy1jbGlcIiwgXCJwaW5nXCJdXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAzXG5cbiAgcmVkaXMtc29ja2V0aW86XG4gICAgZGVwbG95OlxuICAgICAgcmVzdGFydF9wb2xpY3k6XG4gICAgICAgIGNvbmRpdGlvbjogYWx3YXlzXG4gICAgaW1hZ2U6IHJlZGlzOjYuMi1hbHBpbmVcbiAgICB2b2x1bWVzOlxuICAgICAgLSByZWRpcy1zb2NrZXRpby1kYXRhOi9kYXRhXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJyZWRpcy1jbGlcIiwgXCJwaW5nXCJdXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAzXG5cbnZvbHVtZXM6XG4gIGRiLWRhdGE6XG4gIHJlZGlzLWNhY2hlLWRhdGE6XG4gIHJlZGlzLXF1ZXVlLWRhdGE6XG4gIHJlZGlzLXNvY2tldGlvLWRhdGE6XG4gIHNpdGVzOlxuICAgIGRyaXZlcl9vcHRzOlxuICAgICAgdHlwZTogXCIke1NJVEVfVk9MVU1FX1RZUEV9XCJcbiAgICAgIG86IFwiJHtTSVRFX1ZPTFVNRV9PUFRTfVwiXG4gICAgICBkZXZpY2U6IFwiJHtTSVRFX1ZPTFVNRV9ERVZ9XCIiLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxuZGJfcm9vdF9wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxuYWRtaW5fcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcblxuW2NvbmZpZ11cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImZyb250ZW5kXCJcbnBvcnQgPSA4XzA4MFxuaG9zdCA9IFwiJHttYWluX2RvbWFpbn1cIlxuXG5bY29uZmlnLmVudl1cblNJVEVfTkFNRSA9IFwiJHttYWluX2RvbWFpbn1cIlxuQURNSU5fUEFTU1dPUkQgPSBcIiR7YWRtaW5fcGFzc3dvcmR9XCJcbkRCX1JPT1RfUEFTU1dPUkQgPSBcIiR7ZGJfcm9vdF9wYXNzd29yZH1cIlxuTUlHUkFURSA9IFwiMVwiXG5FTkFCTEVfREIgPSBcIjFcIlxuREJfSE9TVCA9IFwiZGJcIlxuQ1JFQVRFX1NJVEUgPSBcIjFcIlxuQ09ORklHVVJFID0gXCIxXCJcblJFR0VORVJBVEVfQVBQU19UWFQgPSBcIjFcIlxuSU5TVEFMTF9BUFBfQVJHUyA9IFwiLS1pbnN0YWxsLWFwcCBsbXNcIlxuRU5BQkxFX1NDSEVEVUxFUiA9IFwiMVwiXG5JTUFHRV9OQU1FID0gXCJnaGNyLmlvL2ZyYXBwZS9sbXNcIlxuVkVSU0lPTiA9IFwidjIuNTIuMFwiXG5GUkFQUEVfU0lURV9OQU1FX0hFQURFUiA9IFwiXCJcbkRCX1ZFUlNJT04gPSBcIjExLjguNlwiXG5TSVRFX1ZPTFVNRV9UWVBFID0gXCJcIlxuU0lURV9WT0xVTUVfT1BUUyA9IFwiXCJcblNJVEVfVk9MVU1FX0RFViA9IFwiXCIiCn0=

Reference files

Configuration

The exact Docker Compose and template configuration this template deploys.

Usage guide

Instructions

Frappe LMS (Frappe Learning)

Initial setup

The first deployment creates the Frappe site and installs the LMS app, which can take 3-6 minutes after all containers are up. The site is ready when the domain returns the Frappe login page.

Default credentials

  • Username: Administrator
  • Password: the value of the ADMIN_PASSWORD environment variable (auto-generated, check the Environment tab of the service)

After logging in, the learning portal is available at /lms and the Frappe admin backend at /app.

Notes

  • The template pins ghcr.io/frappe/lms:v2.52.0, the latest upstream image that ships the LMS app (newer upstream tags are currently published without the app baked in).
  • The upstream image does not include the payments app, so paid-course checkout features are unavailable. Free courses, batches, quizzes and certifications work normally.

More like this

Free and open source

Self-host Frappe LMS in minutes

Notploy is a free, open source deployment platform. Deploy Frappe LMS and 571+ other templates on your own infrastructure with a single click.