Remove GitHub/Forgejo workflow; add Jenkinsfile that runs production readiness scripts, compose config smoke, and frappe/erpnext image pull.
61 lines
2.1 KiB
Markdown
61 lines
2.1 KiB
Markdown
# Production ERPNext on Coolify
|
||
|
||
Validated Docker Compose stack for [ERPNext](https://erpnext.com) on [Coolify](https://coolify.io), derived from [frappe/frappe_docker](https://github.com/frappe/frappe_docker).
|
||
|
||
**Repository:** https://git.aexoradao.com/epistemophiliac/erpnext
|
||
|
||
## Quick start (Coolify)
|
||
|
||
1. **New Resource** → **Docker Compose**
|
||
2. **Git repository:** `https://git.aexoradao.com/epistemophiliac/erpnext`
|
||
3. **Compose file:** `docker-compose.yml`
|
||
4. Set environment variables from [`example.env`](example.env) (at minimum `DB_PASSWORD`, `SITE_NAME`, `ADMIN_PASSWORD`)
|
||
5. Assign your domain to service **`frontend`**, port **`8080`**
|
||
6. Deploy — first boot creates the site and installs ERPNext (~5–15 minutes)
|
||
|
||
Login: user `Administrator`, password = `ADMIN_PASSWORD`.
|
||
|
||
## What this stack includes
|
||
|
||
| Service | Role |
|
||
|---------|------|
|
||
| `db` | MariaDB 11.8 |
|
||
| `redis-cache` / `redis-queue` | Cache and job queue |
|
||
| `configurator` | One-shot bench config |
|
||
| `create-site` | Idempotent site + ERPNext install |
|
||
| `migrator` | `bench migrate` on redeploy |
|
||
| `backend` | Gunicorn API |
|
||
| `frontend` | Nginx (port **8080**) |
|
||
| `websocket` | Socket.IO realtime |
|
||
| `queue-short` / `queue-long` / `scheduler` | Background workers |
|
||
|
||
## CI (Jenkins)
|
||
|
||
Jenkins runs the same checks on every build via [`Jenkinsfile`](Jenkinsfile):
|
||
|
||
- `scripts/ci/ci-readiness.sh` — secrets, docs, compose checks
|
||
- `scripts/ci/validate-docker-compose.sh` — Coolify compose rules + `docker compose config`
|
||
- `docker compose config` + pull pinned `frappe/erpnext` image
|
||
|
||
**Jenkins:** Multibranch Pipeline → `https://git.aexoradao.com/epistemophiliac/erpnext.git` → Script Path `Jenkinsfile`
|
||
|
||
Run locally:
|
||
|
||
```bash
|
||
make ci
|
||
```
|
||
|
||
## Requirements
|
||
|
||
- Coolify server with **4 GB+ RAM** (8 GB recommended)
|
||
- Domain DNS pointing to your Coolify proxy
|
||
- `SITE_NAME` and `FRAPPE_SITE_NAME_HEADER` must match the Coolify domain
|
||
|
||
## Documentation
|
||
|
||
- [Coolify deploy guide](docs/COOLIFY_DEPLOY.md)
|
||
- [Upstream frappe_docker docs](https://frappe.github.io/frappe_docker/)
|
||
|
||
## License
|
||
|
||
Compose and docs: MIT. ERPNext/Frappe images: see upstream licenses.
|