SERVICE_FQDN_FRONTEND from the frontend domain drives site creation and nginx headers; coolify.env.example adds CUSTOM_IMAGE/CUSTOM_TAG for Jenkins registry pulls. Co-authored-by: Cursor <cursoragent@cursor.com>
1.9 KiB
1.9 KiB
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.