Skip to content

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 compose plugin on Linux.
  • Git
  • ~4 GB free RAM for the running stack (Odoo + Postgres + you).
  • A free TCP port on 8069 for 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

git clone https://github.com/jakapolr/hemms-demo
cd hemms-demo

The repo includes:

  • docker-compose.yml — Odoo + Postgres services for the two sandboxes (hemms_demo public-facing, hemms_private private-tenant).
  • addons/oca/ — vendored OCA modules (read-only).
  • addons/roots/ — the ten roots_hemms_* modules.
  • Makefile — shortcut targets that wrap the common docker compose calls.

Step 2 — Start the stack

For the private hospital sandbox (full module set including HA Annual PM Report and e-Signature):

make up-private
make install-private

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 (use make 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)
Email 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

  1. Click the launcher (top-left), open Maintenance.
  2. The top bar should show seven items in this order:

    Dashboard • Maintenance • Equipment • Asset Inspection •
    Service Contracts • Reporting • Configuration
    
  3. 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.