STATUS ÜBERPRÜFEN
I AM LISTENING TO
|

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

6. März 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

Content editing in Elementor Elementor excels at layout-building and design flexibility, but when it comes to long-form content or complex structured text, traditional editors quickly hit their limits. That’s where the Gutenberg Editor — specifically the Isolated Block Editor (IBE) — becomes a game-changer. TinyMCE simply doesn’t hold up inside Elementor, and after years of […]

If you’ve ever tried to style text in a WYSIWYG editor and ended up with HTML that looked like a spaghetti disaster, you’ve already met the reason why semantic editors meaning, structure, and sanity. In other words: they keep your content clean, organized, and machine-friendly. This article walks you through the most important semantic and […]

If you’ve ever worked with text editors on the web, you know the routine: dependencies everywhere, fragile integrations, and editors that only behave when the stars align. The Isolated Block Editor (IBE) solves this by taking the core of Gutenberg and making it work anywhere — no WordPress environment required. It gives you the power […]

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.