Installation¶
This page covers the fastest path to a working sandbox so you can explore HEMMS in under 10 minutes. For server-grade deployment (reverse proxy, SSL, multi-worker, backups), see Administration — Installation instead.
Time to first login
About 5–10 minutes on a modern laptop, mostly waiting for Docker to pull images and Odoo to install the addons.
Prerequisites¶
- Docker + Docker Compose — the Docker Desktop bundle on macOS / Windows, or
docker+docker composeplugin on Linux. - Git
- ~4 GB free RAM for the running stack (Odoo + Postgres + you).
- A free TCP port on
8069for the Odoo HTTP server.
Apple Silicon / Linux ARM
All images used (Odoo 18, Postgres 15) ship native arm64 builds, so you do not need Rosetta or emulation.
Step 1 — Clone the repo¶
The repo includes:
docker-compose.yml— Odoo + Postgres services for the two sandboxes (hemms_demopublic-facing,hemms_privateprivate-tenant).addons/oca/— vendored OCA modules (read-only).addons/roots/— the tenroots_hemms_*modules.Makefile— shortcut targets that wrap the commondocker composecalls.
Step 2 — Start the stack¶
For the private hospital sandbox (full module set including HA Annual PM Report and e-Signature):
make up-private boots Postgres and Odoo. make install-private initialises the hemms_private database and installs all ten roots_hemms_* modules in the correct dependency order.
Two sandboxes — pick one
hemms_demo— minimal public-facing sandbox (usemake up-demo/make install-demo). Smaller fixture set, faster boot.hemms_private— full sandbox with demo data for every module. This is the right choice for the docs walkthroughs.
You can run both side-by-side; they live in separate Docker volumes.
Step 3 — Log in¶
Open http://localhost:8069 in your browser.
Default credentials (sandbox only):
| Field | Value |
|---|---|
| Database | hemms_private (or hemms_demo) |
admin | |
| Password | admin |
You should land on the Odoo Apps screen with the Maintenance app visible in the launcher.
Step 4 — Verify HEMMS is installed¶
- Click the launcher (top-left), open Maintenance.
-
The top bar should show seven items in this order:
-
Click Maintenance → Equipment. You should see seeded demo equipment with traffic-light criticality badges (green / yellow / red) on each row.
If the top bar matches and criticality badges render, HEMMS is correctly installed.
Top bar shows only 'Maintenance / Reporting / Configuration'
The roots_hemms_* modules are not installed. Re-run make install-private and check the output for failed modules. The Makefile install-private target prints each module activation in order — the first failure is usually a dependency error.
Step 5 — Stop / restart¶
make down-private # stop and remove the containers (keeps the DB volume)
make up-private # restart with existing data
make destroy-private # ⚠ wipe volumes — destroys the database
Common issues¶
| Symptom | Likely cause | Fix |
|---|---|---|
port is already allocated for 8069 | Another Odoo / app is bound to 8069 | Stop the other service, or change the published port in docker-compose.yml |
| Browser shows "Database not found" | make install-* was not run after make up-* | Run the corresponding make install-* target |
| Login works but Equipment list is empty | Demo data not loaded — you ran --without-demo-data | Re-run make install-private without overriding WITH_DEMO=1 |
What's next?¶
- First-time Setup — what to do after install to get a working hospital (company, departments, employees, vendors, equipment, criticality, PM plans).
- Administration — Installation — production-grade deployment with reverse proxy, SSL, and backup configuration.
- Developer — CI/CD — running the 177-test suite locally with
make ci.