Website GitHub Try Demo

Installation

There are three ways to set up OpenMES. You can use the quick auto-installer, set it up by hand with Docker, or try the free online demo. Pick whichever works best for you.

Quick start

Want to try OpenMES without installing anything? Jump to Method 3 – Cloud Demo and get started in 30 seconds.

System Requirements

OpenMES runs inside Docker containers (think of them as small, portable packages for software). You need a computer – a server, virtual machine, or cloud server – with these specs:

ComponentMinimumRecommended
OSLinux, macOS, or Windows (must support Docker)Ubuntu 22.04 LTS / Debian 12
DockerDocker Engine 20.10 or newerDocker Engine 24+ with Compose V2
CPU2 cores4+ cores
RAM2 GB4+ GB
Disk10 GB free20+ GB SSD
NetworkPort 80 or 8080 openPort 80 + 443 (for secure HTTPS)
Note

OpenMES uses Laravel + PostgreSQL on the server side and React for the interface. Everything is packed inside Docker containers – you do not need to install PHP, Node.js, or PostgreSQL on your own.

Method 1 – Automated Install (Recommended)

This is the fastest way to get OpenMES up and running. The installer downloads the code, creates safe passwords, finds an open port, builds everything, and starts all services for you.

Linux / macOS

Open a terminal window and run these commands:

git clone https://github.com/Mes-Open/OpenMes.git
cd OpenMes
./install.sh

Here is what the installer does:

  1. Makes sure Docker and Docker Compose are installed
  2. Creates a safe .env settings file with random passwords
  3. Finds an open port (tries port 80 first, then 8080, then the next one free)
  4. Builds all the Docker images from source code
  5. Starts the app in production mode
  6. Shows you the URL and admin login details in the terminal
Tip

Use ./install.sh --yes to skip all yes/no questions. This is handy for automated setups.

Windows (PowerShell)

Open PowerShell as an Administrator and run:

git clone https://github.com/Mes-Open/OpenMes.git
cd OpenMes
.\install.ps1

This does the same thing as the Linux script. Just make sure Docker Desktop is running first.

Method 2 – Manual Docker Compose

Want to control every detail yourself? Use this method to set ports, storage, and settings before you start.

Step 1 – Clone the repository

git clone https://github.com/Mes-Open/OpenMes.git
cd OpenMes

Step 2 – Configure environment

Copy the example settings file and open it for editing:

cp .env.example .env

Open .env in a text editor and set at least these values:

VariableDescriptionDefault
APP_URLThe web address people will use to open OpenMEShttp://localhost
DB_PASSWORDDatabase password – pick a strong one(make up a strong one)
HTTP_PORTPort for regular web traffic80
HTTPS_PORTPort for secure web traffic443

Step 3 – Build and start

docker compose up -d --build

Docker will build everything from source. This takes about 3–5 minutes. It starts the services in the background. On the first run, it sets up the database and creates an admin account using the passwords from your .env file.

Step 4 – Check that it works

Make sure all containers are running:

docker compose ps

You should see backend, frontend, postgres, and redis all showing "running". Open your browser and go to the URL you set up.

Method 3 – Cloud Demo

The cloud demo is a working copy of OpenMES filled with sample data – 5 production lines, 139 work orders, a full product list, and warehouse stock. No installation needed. No Docker. No server.

  1. Go to demo.getopenmes.com
  2. Sign up for free with your email and a password
  3. Start exploring right away – the demo already has realistic factory data loaded
OpenMES Dashboard after first login showing pre-loaded demo data with KPI cards, OEE gauges, and production metrics

The demo has all the same features as a self-hosted setup. Use the role switcher at the top to try all three views: Admin, Supervisor, and Operator.

Demo limitations

The cloud demo gets reset from time to time. Any data you add might be deleted. For long-term use, install OpenMES on your own server with Method 1 or 2.

First Boot & Login

After installing (Method 1 or 2), the first startup takes care of everything:

  1. Database setup – all tables and starter data are created
  2. Admin account – an admin user is made using the details from .env
  3. Default settings – dashboard widgets and user roles are set up

Open the URL the installer showed you (for example, http://localhost or http://your-server-ip:8080). Log in with the admin details from the terminal.

OpenMES system settings page showing application configuration after first boot

Once you log in, you will see the Setup Wizard – a step-by-step guide that walks you through creating your first production environment. The wizard has five steps.

Setup Wizard – Your First 5 Minutes

The Setup Wizard starts automatically on first login. It guides you through five steps to get your factory set up and running. You can also open it later from the sidebar by clicking Setup Wizard.

Step 1 – Modules

Choose which OpenMES modules you want to use. By default, all modules are turned on – production tracking, warehouse management, quality control, maintenance, and more. You can turn off modules you don't need right now. You can always turn them back on later in Settings.

Step 2 – Create a Production Line

A production line is a physical area where manufacturing happens. Give it a name (like "Assembly Line 1") and a short code (like "ASM-01"). This line will show up in the Production Planner and Real-Time Monitoring right away.

Setup Wizard Step 2 – Create a Production Line with name and code fields

Step 3 – Add a Product Type

Define what your line produces. Enter a product name, a unique code (SKU), and the unit of measure (pieces, kilograms, meters, etc.). This product type will be available when you create work orders. You can add more products later in Products & Traceability.

Setup Wizard Step 3 – Add a Product Type with name, code and unit of measure

Step 4 – Define a Process Template

A process template is a recipe for production – it lists the steps needed to make your product, in the right order. For example: Cutting (15 min) → Assembly (25 min). Each step has a name and an estimated duration. Operators will see these steps on their screen when they work on an order. You can drag steps to reorder them and add as many as you need.

Setup Wizard Step 4 – Define Process Template with production steps and durations

Step 5 – Create Your First Work Order

A work order tells your factory to make a specific quantity of a product. The wizard pre-fills an order number and a default quantity of 100 pieces. You can change these values or add a description. When you click Complete Setup, the wizard creates the work order and takes you to the admin Dashboard – your system is ready to use.

Setup Wizard Step 5 – Create First Work Order with order number and quantity
Tip

You can skip the wizard at any time by clicking Skip wizard → at the bottom of any step. Everything the wizard does can also be done manually from the admin panel.

After completing the wizard, follow the First Steps guide to assign operators to your line, explore the planner, and start tracking production.

Development Setup

Want to help build OpenMES or change the look of the app? Use the development setup. It reloads the React frontend almost instantly when you save a file.

docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d

What the development setup does:

Important

Only use this setup on your own computer. Do not use docker-compose.dev.yml on a live server – it turns off speed boosts and opens debug access.

Useful Commands

CommandDescription
docker compose psSee if all services are running
docker compose logs backendShow backend (Laravel) logs
docker compose logs postgresShow database logs
docker compose restartRestart everything
docker compose downStop everything (your data is kept safe)
docker compose down -vStop and delete all data (full reset)
docker compose build --no-cacheRebuild all images from scratch
docker compose pull && docker compose up -d --buildUpdate to the newest version

Troubleshooting

Port 80 is already in use

Something else on your computer is already using port 80. Here are three fixes:

  1. Let the auto-installer pick a different port for you
  2. Choose a port yourself: HTTP_PORT=8080 docker compose up -d
  3. Stop the other program: sudo systemctl stop apache2 or sudo systemctl stop nginx

Containers keep restarting

Look at the logs to find out what went wrong:

docker compose logs --tail=50 backend

Common reasons: the .env file is missing, the database password is wrong, or your computer does not have enough memory.

Database connection refused

The database might still be starting up. Wait 30 seconds and try again. If it still does not work, make sure the DB_PASSWORD in your .env file matches what the database container expects.

Permission denied on install.sh

You need to give the script permission to run:

chmod +x install.sh
./install.sh

Need help?

If you have a problem not listed here, reach out: