How to Install Easy!Appointments on macOS

Easy!Appointments is an open-source web-based appointment scheduling system that is suitable for any business that needs a streamlined way to manage appointments. In this guide, you will learn how to install Easy!Appointments on a macOS system.

Prerequisites

Before you get started with the installation, make sure your macOS system meets the following requirements:

Step 1: Download Easy!Appointments

First, you need to download Easy!Appointments from the official website. You can download the latest version of Easy!Appointments from the following link:

https://github.com/alextselegidis/easyappointments/releases/latest

Once the download is complete, extract the archive to your preferred directory.

Step 2: Install Dependencies

Easy!Appointments requires some dependencies to be installed on your system. You can install these dependencies via the terminal using Homebrew. If Homebrew is not installed on your system, you can install it by running the following command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

After installing Homebrew, run the following command to install dependencies:

brew install php@7.4 mysql nginx git composer

Step 3: Configure Nginx server

Easy!Appointments requires a web server to run. You can use either Apache or Nginx web server. In this guide, we will use Nginx. You need to configure Nginx to serve the Easy!Appointments files.

Create a new Nginx configuration file by running the following command:

sudo nano /usr/local/etc/nginx/servers/easyappointments.conf

Add the following configuration in the file:

server {
    listen 80;
    server_name YOUR_DOMAIN_NAME_HERE;
    root /PATH/TO/EASYAPPOINTMENTSDIR/;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Make sure to replace "YOUR_DOMAIN_NAME_HERE" and "/PATH/TO/EASYAPPOINTMENTSDIR/" with appropriate values.

After adding the configuration, save and close the file.

Step 4: Configure PHP

Easy!Appointments requires a few configurations to be made in the PHP installation. You can do this by editing the php.ini file.

Open the php.ini file by running the following command:

sudo nano /usr/local/etc/php/7.4/php.ini

Now, locate the following configurations and set their values accordingly:

file_uploads = on
allow_url_fopen = on
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = YOUR_TIMEZONE_HERE

Replace "YOUR_TIMEZONE_HERE" with the timezone of your location.

After making the changes, save and close the file.

Step 5: Install Easy!Appointments

Navigate to the Easy!Appointments directory by typing the following command on the terminal:

cd /PATH/TO/EASYAPPOINTMENTSDIR/

Now, run the following command to install the required packages:

composer install --no-dev

After the installation is complete, run the following command to create the database schema:

./bin/console ea:install

You will be prompted to enter the database information. Enter the appropriate information and follow the instructions.

Step 6: Start Nginx and PHP

After completing the above steps, start the Nginx server by running the following command:

brew services start nginx

Also, start the PHP server by running the following command:

php-fpm -D

Step 7: Verify Easy!Appointments

Finally, open your web browser and navigate to the URL you specified in the Nginx configuration file. If everything is configured correctly, you should see the Easy!Appointments homepage.

Congratulations! You have successfully installed Easy!Appointments on your macOS system. You can now use it to manage appointments and schedules for your business.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!