No description
Find a file
epistemophiliac 2aca11bb75 Use :main tag only and host sync instead of compose preload.
Remove image-preload service (compose creates all containers before it can run); Jenkins and sync-main-from-forgejo.sh load :main on the host internally.
2026-06-16 21:05:44 -04:00
docs Use :main tag only and host sync instead of compose preload. 2026-06-16 21:05:44 -04:00
images/layered Add custom Frappe image build with HRMS, Lending, and LMS. 2026-06-16 19:10:17 -04:00
resources/core Add custom Frappe image build with HRMS, Lending, and LMS. 2026-06-16 19:10:17 -04:00
scripts Use :main tag only and host sync instead of compose preload. 2026-06-16 21:05:44 -04:00
.dockerignore Add custom Frappe image build with HRMS, Lending, and LMS. 2026-06-16 19:10:17 -04:00
.gitignore Fix Jenkins compose smoke when docker CLI is missing 2026-06-16 18:27:43 -04:00
apps.json Add custom Frappe image build with HRMS, Lending, and LMS. 2026-06-16 19:10:17 -04:00
coolify.env.example Use :main tag only and host sync instead of compose preload. 2026-06-16 21:05:44 -04:00
docker-compose.yml Use :main tag only and host sync instead of compose preload. 2026-06-16 21:05:44 -04:00
example.env Wire Coolify domain to SITE_NAME and document env template 2026-06-16 20:34:44 -04:00
Jenkinsfile Add custom Frappe image build with HRMS, Lending, and LMS. 2026-06-16 19:10:17 -04:00
Makefile Add production ERPNext Coolify stack with CI gates 2026-06-16 17:52:02 -04:00
README.md Wire Coolify domain to SITE_NAME and document env template 2026-06-16 20:34:44 -04:00

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)

  1. Validate compose + readiness
  2. Build custom image (images/layered/Containerfile)
  3. Push to Forgejo registry: git.aexoradao.com/epistemophiliac/erpnext:main-<sha> and :main
  4. Archive dist/coolify-image.env with CUSTOM_IMAGE / CUSTOM_TAG for Coolify

See docs/JENKINS.md.

Coolify deploy (you configure)

  1. Docker Compose from this git repo, file docker-compose.yml
  2. Env vars from coolify.env.exampleCUSTOM_IMAGE, CUSTOM_TAG from latest green Jenkins build (dist/coolify-image.env)
  3. Domain on service frontend, port 8080 — Coolify sets SERVICE_FQDN_FRONTEND; compose uses it for SITE_NAME / FRAPPE_SITE_NAME_HEADER

See docs/COOLIFY_DEPLOY.md.

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.