Skip to main content

Get Started in Minutes

This quick start guide will help you set up OpenEyes for development using Docker Compose. This is the fastest way to get a working OpenEyes instance running on your machine.
This guide is for development and testing purposes. For production deployment, see the Installation Guide.

Prerequisites

Before you begin, ensure you have the following installed:
1

Docker Desktop

Install Docker Desktop (includes Docker Compose)Verify installation:
2

Git

Install Git for cloning the repository
3

System Requirements

  • RAM: Minimum 4GB (8GB recommended)
  • Disk: 10GB free space
  • Ports: 7777 (HTTP) and 7743 (HTTPS) available

Quick Installation

1

Clone the Repository

Clone the OpenEyes repository from GitHub:
The default branch is master (stable). For bleeding-edge development, use git checkout develop
2

Configure Environment Variables

Create a .env file in the .devcontainer directory:
Add the following configuration:
.env
The default passwords are for development only. Never use these in production!
3

Start the Services

Launch the OpenEyes stack using Docker Compose:
This will start two containers:
  • db - MySQL database with sample data
  • web - Apache/PHP web server with OpenEyes application
Monitor the startup process:
Wait for the message indicating the web server is ready (typically 2-3 minutes on first run).
4

Access OpenEyes

Once the containers are running, access OpenEyes in your browser:HTTP: http://localhost:7777HTTPS: https://localhost:7743
Default login credentials:
  • Username: admin
  • Password: admin (or as configured in your sample database)

Docker Compose Configuration

The development environment uses the following configuration from .devcontainer/docker-compose.yml:

Key Environment Variables

Common Development Tasks

Running Database Migrations

Apply database schema changes:

Installing PHP Dependencies

Update Composer dependencies:

Viewing Logs

Application logs:
Database logs:

Accessing the Database

Connect to MySQL:

Running Tests

Execute PHPUnit tests:

Working with Modules

Installing Additional Modules

Set the MODULES environment variable to automatically install specific modules:
.env
Restart the container:

Available Modules

Common modules included in OpenEyes:
  • OphCiExamination - Clinical examination (core)
  • OphCoCorrespondence - Letters and correspondence
  • OphDrPrescription - Prescription management
  • OphCoTherapyapplication - Therapy applications
  • OphInBiometry - Biometry measurements
  • OphCoMessaging - Internal messaging
  • Genetics - Genetic testing workflows
  • PatientTicketing - Queue management

Troubleshooting

If ports 7777 or 7743 are already in use, modify the port mappings in docker-compose.yml:
Then restart: docker compose up -d
Ensure the database container is healthy:
If needed, recreate the database:
Fix file permissions inside the container:
Clear Composer cache and reinstall:

Stopping the Environment

Stop containers (preserves data):
Stop and remove containers:
Remove everything including volumes (⚠️ deletes all data):

Development Workflow

1

Make Code Changes

Edit files in your local repository. Changes are automatically synced to the container via volume mounts.
2

Test Changes

Refresh your browser to see changes. For PHP changes, no restart needed. For configuration changes, restart the web container:
3

Run Migrations

After database schema changes:
4

Commit Changes

Follow the gitflow model:
  • master - stable releases
  • develop - active development
  • feature/* - new features

Next Steps

Installation Guide

Production installation and configuration

API Reference

Explore the OpenEyes API

Contributing

Contribute to OpenEyes development

Module Development

Learn to create custom modules
This development setup is not suitable for production use. See the Installation Guide for production deployment.