Using the official Docker image

Alex Tselegidis

In today’s fast-paced world, managing appointments efficiently is crucial for businesses and individuals alike. Whether you’re a small business owner juggling client meetings or a freelancer coordinating project timelines, having a reliable appointment scheduling system is indispensable. This is where Easy!Appointments comes into play – a powerful open-source appointment scheduling application that simplifies the process of managing bookings.

Even though setting up and managing Easy!Appointments on your local machine or server is very simple, Docker provides a solution that streamlines the process into a single command, making it extreme easy to run Easy!Appointments in any environment.

What is Docker?

Docker is a platform that allows you to package and distribute applications along with their dependencies in lightweight containers. These containers are portable and can run on any system that supports Docker, making it an ideal solution for deploying applications consistently across different environments.

Getting Started

1. Install Docker

If you haven’t already, install Docker on your system. Docker provides installation instructions for various operating systems on their website: Docker Installation Guide.

2. Pull Easy!Appointments Docker Image

Docker Hub hosts an official Easy!Appointments Docker image. Pull the latest image using the following command:

$ docker pull alextselegidis/easyappointments

3. Run Easy!Appointments Container

Once the image is downloaded, run Easy!Appointments as a Docker container:

# Start a MySQL instance
$ docker run -d --name test-db -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=easyappointments mysql:latest

# Pull and run the app
$ docker run --name test-app -d --link test-db:db -p 80:80 -e DB_HOST=db -e DB_NAME=easyappointments -e DB_USERNAME=root -e DB_PASSWORD=secret alextselegidis/easyappointments

This command starts Easy!Appointments in a Docker container, mapping port 80 of the container to port 80 on the host system. Adjust the port mapping as needed.

4. Access Easy!Appointments

Open your web browser and navigate to http://localhost (or http://<your-server-ip> if running on a remote server). You should see the Easy!Appointments setup wizard, allowing you to configure the application.

5. Configuration and Customization

Follow the on-screen instructions to complete the setup wizard and configure Easy!Appointments according to your requirements. Additionally, you can customize the application further by mounting volumes or providing environment variables to the Docker container.

Docker Compose

You can use the following docker-compose.yml file to locally set up Easy!Appointments with a MySQL database:

version: '3.1'
    image: 'easyappointments:1.4.3'
      - BASE_URL=http://localhost
      - DB_HOST=mysql
      - DB_NAME=easyappointments
      - DB_USERNAME=root
      - DB_PASSWORD=secret
      - '80:80'
    image: 'mysql:8.0'
      - './docker/mysql:/var/lib/mysql'
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_DATABASE=easyappointments


If you experience problems with the original image, try to check the container output logs for more information and submit an issue to the GitHub repository of the project:

Finally star and follow the project and get informed for upcoming updates and releases.

Going Premium

Did you read this article but you’re still not sure on how to proceed?

Reach out to and have an expert take care everything for you in zero time.

Get your free quote and get started now!

More great articles


Chat with community experts

For the most part, successful stories involve adequate communication across all project assets, and in the modern world there are…

Read Story
Default Featured Image

How to enable error logging

Easy!Appointments is based on CodeIgniter and thus can be extended and configured to take advantage of the popular PHP framework.…

Read Story
Default Featured Image

Introduction to the user roles

Easy!Appointments supports various user roles that have different privileges and capabilities within the application. This feature aims to make the system…

Read Story

Never miss a minute

Get great content to your inbox every month. No spam.

    Only great content, we don’t share your email with third parties.