This guide provides a full Ansible playbook to deploy Easy Appointments with Docker Compose on Debian 10+, Ubuntu LTS, and RHEL 9+ compatible hosts.
- name: Deploy Easy Appointments
hosts: easy-appointments
become: true
vars:
app_root: /opt/easy-appointments
app_port: 8080
tasks:
- name: Install Docker on Debian/Ubuntu
apt:
name:
- docker.io
- docker-compose-plugin
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Install Docker on RHEL family
dnf:
name:
- docker
- docker-compose-plugin
state: present
when: ansible_os_family == "RedHat"
- name: Enable and start Docker
service:
name: docker
state: started
enabled: true
- name: Create application directory
file:
path: "{{ app_root }}"
state: directory
mode: "0755"
- name: Write Docker Compose file
copy:
dest: "{{ app_root }}/docker-compose.yml"
mode: "0644"
content: |
# Note: No official Easy!Appointments Docker image exists
# This is a community-style configuration
services:
app:
build: .
restart: unless-stopped
ports:
- "{{ app_port }}:80"
volumes:
- ./app:/var/www/html
depends_on:
- db
db:
image: mariadb:10.11
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD={{ db_root_password }}
- MYSQL_DATABASE=easyappointments
- MYSQL_USER=easyappointments
- MYSQL_PASSWORD={{ db_password }}
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
- name: Display deployment notes
debug:
msg: |
⚠️ IMPORTANT: No official Easy!Appointments Docker image exists.
You must either:
1. Build a custom Dockerfile (see setup/docker.md)
2. Use manual installation (recommended for production)
For manual installation, see:
https://easyappointments.org/docs.html
Any questions?
Feel free to contact us. Find all contact information on our contact page.