{"id":19513461,"url":"https://github.com/escolalms/create-lms-app","last_synced_at":"2025-04-26T04:31:46.036Z","repository":{"id":38304271,"uuid":"424193164","full_name":"EscolaLMS/Create-LMS-App","owner":"EscolaLMS","description":"Bash script to install WellmsLMS with oneliner ","archived":false,"fork":false,"pushed_at":"2024-10-18T10:34:07.000Z","size":99,"stargazers_count":3,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-19T04:24:12.010Z","etag":null,"topics":["bash","create-react-app","installer"],"latest_commit_sha":null,"homepage":"","language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EscolaLMS.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-03T11:16:07.000Z","updated_at":"2024-10-18T10:34:08.000Z","dependencies_parsed_at":"2024-03-26T15:57:32.300Z","dependency_job_id":null,"html_url":"https://github.com/EscolaLMS/Create-LMS-App","commit_stats":{"total_commits":113,"total_committers":7,"mean_commits":"16.142857142857142","dds":0.415929203539823,"last_synced_commit":"c56789621232aab80d9c2218cad5aed749e00bae"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EscolaLMS%2FCreate-LMS-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EscolaLMS%2FCreate-LMS-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EscolaLMS%2FCreate-LMS-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EscolaLMS%2FCreate-LMS-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EscolaLMS","download_url":"https://codeload.github.com/EscolaLMS/Create-LMS-App/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250931040,"owners_count":21509807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","create-react-app","installer"],"created_at":"2024-11-10T23:30:09.908Z","updated_at":"2025-04-26T04:31:45.423Z","avatar_url":"https://github.com/EscolaLMS.png","language":"Smarty","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Create LMS APP\n\nThis package contains all the resources need to install Wellms Headless LMS from docker-images\n\n## TL;DR\n\nRun `npx --package=@escolalms/cla lms`\n\n## Installation on MacOs or Linux\n\nBelow are instruction on how to install Wellms on MacOs or Linux.\nWindows with WSL should work fine, yet there might be some issues\n\n- please [do share them](https://github.com/EscolaLMS/Create-LMS-App/issues/new) with us.\n\n## Environmental variables\n\n### Laravel specific. `LARAVEL_PREFIX`\n\nAfter container is initialized, it [looks for variables](https://github.com/EscolaLMS/API/blob/develop/docker/envs/envs.php) with this prefix then replace current ones in `.env` file\n\nExample\n\n```yaml\nLARAVEL_APP_ENV: \"production\"\nLARAVEL_APP_KEY: \"base64:vw6G2uP8LV22haEERtzr5yDCBraLrMwbxlbSJDA97uk=\"\nLARAVEL_APP_DEBUG: \"false\"\nLARAVEL_APP_LOG: \"errorlog\"\n```\n\nwill result in\n\n```bash\nReplacing .env file APP_ENV from local to production\nReplacing .env file APP_KEY from base64:pveos6JL8iCwO3MbzoyQpNx6TETMYuUpfZ18CDKl6Cw= to base64:vw6G2uP8LV22haEERtzr5yDCBraLrMwbxlbSJDA97uk=\nReplacing .env file APP_DEBUG from true to false\nReplacing .env file APP_LOG_LEVEL from debug to debug\n```\n\n### URLs\n\nYou can use this following variables when calling bash or makefile task\n\n```bash\nAPP_URL=\"${APP_URL:-http://api.wellms.localhost}\"\nADMIN_URL=\"${ADMIN_URL:-http://admin.wellms.localhost}\"\nFRONT_URL=\"${FRONT_URL:-http://app.wellms.localhost}\"\nMAILHOG_URL=\"${MAILHOG_URL:-http://mailhog.wellms.localhost}\"\n```\n\nExample\n\n```bash\nAPP_URL=http://my-super-api.localhost make init\n```\n\nor\n\n```bash\nAPP_URL=http://my-super-api.localhost make k8s-rebuild\n```\n\n## Kubernetes\n\n### Without `helm`\n\nAll `yaml` file templates are inside [`k8s/tpls`](k8s/tpls) folder\n\nYou can either generate yaml by calling bash script `cd k8s \u0026\u0026 bash generate.sh`\nor by calling makefile job `make\nor but setting all config manually\n\nOnce `yaml` files are in `k8s` folder run `kubectl apply -f k8s`\n\n#### Custom domain\n\nThose are env variables you can set while running generate\n\n```bash\nAPP_URL=\"${APP_URL:-http://api.wellms.localhost}\"\nADMIN_URL=\"${ADMIN_URL:-http://admin.wellms.localhost}\"\nFRONT_URL=\"${FRONT_URL:-http://app.wellms.localhost}\"\nMAILHOG_URL=\"${MAILHOG_URL:-http://mailhog.wellms.localhost}\"\n```\n\n### First run\n\nRequired dependencies:\n\n- `docker`\n- `k8s`\n- `minikube`\n- `k9s` or whatever to view your kubernetes resources (e.g. `Lens`)\n\n#### Mac OS\n\nRun makefile commands:\n\n- `make minikube-init`\n- `make k8s-init`\n- `make minikube-tunnel`\n- wait a minute and enjoy the Wellms :)\n\n### Rebuild existing instance\n\n- `make minikube-force-delete`\n- `make k8s-rebuild`\n- `make minikube-tunnel`\n\n#### Windows\n\n`TODO`\n\n### With `helm`\n\n`WIP`\n\n### Available Wellms resources:\n\n- API `api.wellms.localhost`\n- Front app `app.wellms.localhost`\n- Admin panel `admin.wellms.localhost`\n- Mailhog `mailhog.wellms.localhost`\n\n## From docker container images\n\nBelow are instructions how to install Wellms from [https://hub.docker.com/search?q=escolalms](docker images) in various ways.\n\n### Requirements\n\n- you have `docker` installed\n- port 80 is free\n\n### Installation from script\n\nRun `npx --package=@escolalms/cla lms`\n\n### Installation from source\n\nClone this repository then,\n\nin order to launch LMS\n\nrun `make init` shell script\n\n## Instalation on Windows\n\n### Requirements\n\n- `WSL` installed (https://docs.microsoft.com/en-us/windows/wsl/install)\n- `Docker` installed (https://docs.docker.com/desktop/windows/install/) and configured to use WSL\n- `make` available in PowerShell (for example, you can install `Chocolatey` https://chocolatey.org/install and then install `make` using it)\n\n_Recommended_: use Windows Terminal (https://apps.microsoft.com/store/detail/windows-terminal/) and latest PowerShell (https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2)\n\n### Installation from source\n\nThe `source` means source code of this repository, not the actual Wellms components. Tasks describes below will install docker containers.\n\n- Clone this repository\n- Run `make init` in PowerShell (and not in WSL shell, because it will lead to problems with binding Postgres data volume for persistence)\n\n## First steps\n\nOnce everything is installed (takes a while)\n\n- http://api.wellms.localhost/api/documentation API Swagger documentation\n- http://admin.wellms.localhost admin panel credentials username: admin2@escolalms.com password: secret\n- http://app.wellms.localhost demo panel credentials username: student@escolalms.com password: secret\n- http://mailhog.wellms.localhost demo panel credentials username: student@escolalms.com password: secret\n\n## Troubleshooting\n\n- please create issue in this repository\n- Windows users - this package is not tested on your system.\n\n## Custom domains\n\n- Amends [Caddyfile](Caddyfile) referring to the [official documentation](https://caddyserver.com/docs/caddyfile)\n\nthere is a `credentials.sh` script to generate config files, example\n\n```bash\nAPP_URL=https://api.escolalms.com ADMIN_URL=https://admin.escolalms.com FRONT_URL=https://demo.escolalms.com ./credentials.sh MAILHOG_URL=https://mailhog.escolalms.com REPORTBRO_URL=https://reportbro.escolalms.com ./credentials.sh\n```\n\n## Scaling php-fpm, Horizon \u0026 Scheduler.\n\nBy default all 3 threads phpfpm, Laravels Horizon and Scheduler are severed by one [image container](https://github.com/EscolaLMS/API/blob/develop/Dockerfile)\n\n- `php-fpm` serve main Laravel REST API (with [nginx](https://github.com/EscolaLMS/API/tree/develop/docker/conf/nginx) and [caddy](https://github.com/EscolaLMS/Create-LMS-App/blob/main/Caddyfile))\n- [`horizon`](https://laravel.com/docs/9.x/horizon) is responsible for all [queue services](https://laravel.com/docs/9.x/queues)\n- [`Task Scheduling`](https://laravel.com/docs/9.x/scheduling) is responsible for all cron jobs\n\nAll of above including nginx are served by `supervisor`, definition files are [listed here](https://github.com/EscolaLMS/API/tree/develop/docker/conf/supervisor)\n\nYou can scale this by setting each process into separate image container, just by amending `docker-compose.yml` in the following way\n\n```yml\napi:\n  image: escolalms/api:latest\n  networks:\n    - escola_lms\n  volumes:\n    - ./storage:/var/www/html/storage\n    - ./.env:/var/www/html/.env\n  environment:\n    - DISABLE_PHP_FPM=false\n    - DISABLE_NGINX=false\n    - DISABLE_HORIZON=true\n    - DISABLE_SCHEDULER=true\n\nhorizon:\n  image: escolalms/api:latest\n  networks:\n    - escola_lms\n  volumes:\n    - ./storage:/var/www/html/storage\n    - ./.env:/var/www/html/.env\n  environment:\n    - DISABLE_PHP_FPM=true\n    - DISABLE_NGINX=true\n    - DISABLE_HORIZON=false\n    - DISABLE_SCHEDULER=true\n\nscheduler:\n  image: escolalms/api:latest\n  networks:\n    - escola_lms\n  volumes:\n    - ./storage:/var/www/html/storage\n    - ./.env:/var/www/html/.env\n  environment:\n    - DISABLE_PHP_FPM=true\n    - DISABLE_NGINX=true\n    - DISABLE_HORIZON=true\n    - DISABLE_SCHEDULER=false\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fescolalms%2Fcreate-lms-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fescolalms%2Fcreate-lms-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fescolalms%2Fcreate-lms-app/lists"}