CHECKING STATUS
I AM LISTENING TO
|

Day 15: EasyAppointments – Open-Source Appointment Scheduling – 7 Days of Docker

6. March 2025
.SHARE

Table of Contents

Part 1: Understanding EasyAppointments

What is EasyAppointments?

EasyAppointments is a powerful open-source appointment scheduling application that simplifies the process of managing bookings. It’s designed to be highly customizable and can be adapted to various business needs, from small service providers to larger enterprises.

Key Features of EasyAppointments

  • Multilingual support: Translated user interface for global accessibility
  • Customer and appointment management: Easily track and manage all your appointments in one place
  • Service and provider organization: Set up different services with associated providers
  • Working plan and booking rules: Define when services are available
  • Google Calendar synchronization: Keep your appointments in sync with Google Calendar
  • Email notification system: Automated emails for bookings, cancellations, and reminders
  • Self-hosted installation: Complete control over your data and privacy

Part 2: Setting Up EasyAppointments with Docker

Prerequisites

  • A server with Docker installed
  • Basic knowledge of Docker concepts
  • Administrative access to your server

Installation Process

Preparing the Docker Environment

Begin by pulling the official EasyAppointments Docker image to your server. This image contains all the necessary components for running the application. Execute the following command in your terminal to download the latest version:

Setting Up the Database

EasyAppointments requires a MySQL database to store appointment data, customer information, and configuration settings. Create a dedicated database container with the following command:

This command creates a container named “easyappointments-db” running MySQL with a database specifically for EasyAppointments. Make sure to replace “your_secure_password” with a strong password of your choice.

Deploying the Application

With the database in place, you can now deploy the EasyAppointments application container. The following command links the application to the database and exposes it on port 80:

This configuration establishes the connection between EasyAppointments and the MySQL database created earlier. The application will be accessible on port 80 of your server.

Completing the Setup

After successfully deploying the containers, open your web browser and navigate to your server’s IP address (http://your_server_ip). You’ll be presented with the EasyAppointments setup wizard. This user-friendly interface will guide you through the initial configuration process, including creating an administrator account and setting up your business details.

Simplified Deployment with Docker Compose

Creating a Configuration File

Docker Compose offers a more elegant approach to managing multi-container applications like EasyAppointments. Begin by creating a configuration file named docker-compose.yml in your project directory. This file will define both the database and application containers along with their respective settings:

This configuration specifies two services: the EasyAppointments application and a MySQL database. It also sets up persistent volumes for both containers to ensure data is preserved even if the containers are restarted or updated.

Launching the Application Stack

With the configuration file in place, you can deploy the entire application stack with a single command:

The Docker Compose tool will read your configuration file, download the necessary images if they’re not already available, and create the containers according to your specifications. The -d flag runs the containers in detached mode, allowing them to operate in the background.

Email Configuration

For email notifications, add these environment variables to your Docker configuration:

Thoughts

By combining EasyAppointments and Portainer, you’ve set up a powerful, self-hosted solution for appointment scheduling and container management. This approach gives you complete control over your data while providing robust functionality.

The Docker-based deployment makes maintenance, updates, and backups straightforward, allowing you to focus on your business rather than complex IT management. As your needs grow, both tools can scale with you, offering additional features and capabilities.

For more information, visit the official documentation:

Happy scheduling and container managing!

Let’s Talk!

Looking for a reliable partner to bring your project to the next level? Whether it’s development, design, security, or ongoing support—I’d love to chat and see how I can help.

Get in touch,
and let’s create something amazing together!

RELATED POSTS

Remember when Google’s Accelerated Mobile Pages (AMP) was the hot new technology everyone was rushing to implement? It promised lightning-fast mobile experiences, prime placement in search results, and that distinctive bolt icon that signaled to users your site was optimized for speed. But as we move through 2025, many are questioning whether AMP still deserves […]

In modern web development, providing rich code editing experiences is increasingly common. Whether you’re building a CMS, documentation platform, or coding playground, you’ll likely need a way to transform plain HTML textareas into powerful code editors. This post explores the most popular JavaScript libraries that enable this functionality, comparing them by features, performance, and implementation […]

JavaScript libraries and frameworks continue to evolve at a rapid pace, providing developers with powerful tools to build efficient, scalable, and interactive web applications. As we progress through 2025, the ecosystem has matured with established favorites maintaining their dominance while new innovative solutions emerge to address modern development challenges. Whether you’re working on a simple […]

Alexander

I am a full-stack developer. My expertise include:

  • Server, Network and Hosting Environments
  • Data Modeling / Import / Export
  • Business Logic
  • API Layer / Action layer / MVC
  • User Interfaces
  • User Experience
  • Understand what the customer and the business needs


I have a deep passion for programming, design, and server architecture—each of these fuels my creativity, and I wouldn’t feel complete without them.

With a broad range of interests, I’m always exploring new technologies and expanding my knowledge wherever needed. The tech world evolves rapidly, and I love staying ahead by embracing the latest innovations.

Beyond technology, I value peace and surround myself with like-minded individuals.

I firmly believe in the principle: Help others, and help will find its way back to you when you need it.