No description
Set FRAPPE_SITE_NAME_HEADER from currentsite.txt at frontend start instead of FRAPPE_SITE_NAME_HEADER=$$host which Coolify writes as an invalid $host= line in build-time.env. |
||
|---|---|---|
| docs | ||
| images/layered | ||
| resources/core | ||
| scripts | ||
| .dockerignore | ||
| .gitignore | ||
| apps.json | ||
| coolify.env.example | ||
| docker-compose.yml | ||
| example.env | ||
| Jenkinsfile | ||
| Makefile | ||
| README.md | ||
Production ERPNext on Coolify
Custom Docker image and Compose stack for ERPNext plus HRMS, Lending, and LMS (Learning) on Coolify. Derived from frappe/frappe_docker.
Repository: https://git.aexoradao.com/epistemophiliac/erpnext
Apps baked into the image
| App | Source | Branch |
|---|---|---|
| ERPNext | frappe/erpnext | version-16 |
| Payments | frappe/payments | version-16 (required by LMS) |
| HRMS | frappe/hrms | version-16 |
| Lending | frappe/lending | version-16 |
| LMS (Learning) | frappe/lms | v2.55.0 |
Defined in apps.json. Edit that file and push to change apps; Jenkins rebuilds the image.
Pipeline (Jenkins)
- Validate compose + readiness
- Build custom image (
images/layered/Containerfile) - Push to Forgejo registry:
git.aexoradao.com/epistemophiliac/erpnext:main-<sha>and:main - Archive
dist/coolify-image.envwithCUSTOM_IMAGE/CUSTOM_TAGfor Coolify
See docs/JENKINS.md.
Coolify deploy (you configure)
- Docker Compose from this git repo, file
docker-compose.yml - Env vars from
coolify.env.example—CUSTOM_IMAGE,CUSTOM_TAGfrom latest green Jenkins build (dist/coolify-image.env) - Domain on service
frontend, port8080— Coolify setsSERVICE_FQDN_FRONTEND; compose uses it forSITE_NAME/FRAPPE_SITE_NAME_HEADER
Local checks
make ci # validate only
BUILD_IMAGE=1 bash scripts/ci/jenkins-run.sh # build image locally (slow)
Stack services
MariaDB, Redis, configurator, create-site, migrator, backend, frontend (8080), websocket, workers.
License
Compose and docs: MIT. Frappe/ERPNext apps: see upstream licenses.