Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk12 min

How to Self-Host Easy!Appointments on a VPS

A practical guide to deploying Easy!Appointments on your own VPS, from version selection and database setup through the browser wizard, booking configuration, HTTPS, backups and Docker production cautions.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To self-host Easy!Appointments, install a supported release on a VPS that provides a web server, PHP, and MySQL, then create its database, upload the application, make storage writable, configure config.php, and finish the browser-based setup wizard. For a public booking site, add HTTPS, restricted administration, protected secrets, tested backups, and an upgrade plan. Choose the release first: the current repository lists PHP 8.2 or newer with Apache or Nginx and MySQL, while an older installation page lists Apache 2.4, PHP 7.2 or newer, and MySQL 5.7.

What Easy!Appointments needs on a VPS

Easy!Appointments is self-hosted web software. The VPS runs the web server and PHP application, while MySQL stores appointments, users, services, providers, and configuration data. A domain name and HTTPS certificate make the booking page reachable and protect credentials and booking traffic in transit.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Version requirements have changed between documentation generations, so do not provision a server from a generic tutorial and assume every release is compatible. Identify the Easy!Appointments release or branch you will install, then follow that release’s requirements.

Documentation reference Web server PHP Database How to use it
Older official installation page (updated about one year before October 15, 2026) Apache 2.4 7.2 or newer MySQL 5.7 Useful only when installing a release that still documents these versions.
Current project repository production section (retrieved October 15, 2026) Apache or Nginx 8.2 or newer MySQL Use this for releases covered by the current production documentation.

The base installation also needs the application files, a database and database account, a writable storage directory, and a configured config.php. The configuration file contains the public base URL and database connection values.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Choose a deployment method

There are two practical paths: a conventional Apache or Nginx installation on the VPS, or a containerized deployment. They are not interchangeable in production. The official Docker Compose setup is explicitly for development and says not to use it in production. A production image may be appropriate, but it requires its own review of persistence, image provenance, upgrades, migrations, backups, health checks, and HTTPS.

Decision point Conventional installation Docker-based installation
Operational control You manage the VPS web server, PHP runtime, extensions, and MySQL directly. Application runtime components are packaged into containers; the host still needs storage, networking, and backup management.
Maintenance Apply host-level web-server, PHP, database, and Easy!Appointments updates. Manage image tags, container updates, persistent volumes, database migrations, and the host.
Official Compose guidance Not applicable. The supplied Compose environment is development-only, not a production recipe.
Production choice Directly follows the documented Apache/Nginx installation sequence. Use a production image only after validating its source, tag policy, persistence, upgrade path, and reverse-proxy behavior.
Troubleshooting surface Web-server, PHP, MySQL, and application logs on the VPS. Those layers plus container logs, volumes, networks, and image state.
Portability Fits an existing VPS web stack with fewer moving parts. Recreating the application environment can be easier when volumes and configuration are documented.

When a conventional install is the safer default

Use the conventional route when you already operate Apache or Nginx on the VPS, need straightforward host-level logs, or want the official installation sequence with the fewest additional layers. It is also easier to reason about when your backup system already captures the database and application directory.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When containers can make sense

Containers can be useful when your team already has a container update process and understands volume backups, database recovery, image verification, and reverse-proxy configuration. Do not promote the development Compose file to production merely because it starts successfully.

Prepare the VPS before uploading Easy!Appointments

  1. Select the release and record requirements. Write down the exact Easy!Appointments version, required PHP version and extensions, supported web server, and MySQL expectation. Resolve the conflict between the older PHP 7.2/MySQL 5.7 page and the current PHP 8.2-plus repository guidance in favor of the documentation for your chosen release.
  2. Provision a Linux VPS and DNS name. Point a domain or subdomain at the VPS address. The product documentation requires a web server reachable through a browser but does not prescribe a VPS vendor, operating-system image, CPU size, memory size, or storage size.
  3. Plan HTTPS before launch. Decide how the certificate will be issued and renewed, and ensure the public web server can serve the final HTTPS URL that you will place in config.php.
  4. Install the required stack. Install Apache or Nginx, the PHP version required by the selected release and its required extensions, and MySQL. Enable php_curl if you intend to use Google Calendar synchronization.
  5. Define firewall and administration boundaries. Expose only the services needed for web access and administration. Restrict database access to the application and authorized operators rather than exposing MySQL publicly.
  6. Create an application database and least-privilege account. Give the account access to the Easy!Appointments database without using a broad administrative MySQL account for the application.

The official product material establishes the software components and browser deployment, not a complete host-hardening recipe. Treat firewall rules, SSH policy, operating-system patching, intrusion monitoring, and certificate automation as your VPS operations responsibility.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Install Easy!Appointments with Apache or Nginx

This is the documented sequence for a normal web-server deployment. The names of virtual-host files, PHP handlers, and service-management commands differ by Linux distribution, so apply the equivalent settings for your VPS rather than copying a distribution-specific recipe blindly.

  1. Place the source in the web root. Upload or extract the Easy!Appointments source folder where the configured Apache or Nginx site can serve it. Keep the application outside unrelated public directories and confirm that the selected virtual host points to the correct folder.
  2. Configure the web server and PHP handler. Make the site’s host name resolve to the application directory and ensure requests are passed to the installed PHP runtime. Confirm that static files and PHP requests reach the same Easy!Appointments release.
  3. Create the database first. Record the database name, database username, password, and host value. A local MySQL server commonly uses a local host value, but use the host that matches your VPS layout.
  4. Make only the required storage path writable. Easy!Appointments needs storage to be writable for runtime data. Do not make the entire application tree writable when the application only requires that directory.
  5. Create the configuration file. Rename or copy config-sample.php to config.php. Set the base URL to the final public address and enter the database connection details. Keep this file out of public source repositories and protect it from direct download through the web server.
  6. Open the installation URL. Visit the configured domain in a browser. The setup wizard should load if the web server, PHP runtime, files, permissions, and database values are correct.
  7. Complete the wizard and create the administrator. Follow the browser prompts, choose an administrator account with a strong unique password, and store the credentials in an appropriate password manager.
  8. Verify the generated site before making it public. Sign in to the administration area, load the booking page, and check that the application is using the intended HTTPS base URL rather than a temporary address.

What belongs in config.php

At minimum, the file must contain the public base URL and database connection settings expected by the selected release. The exact variable names come from config-sample.php; preserve those names and edit the values rather than inventing a new configuration format. Never commit the completed file, paste its password into tickets, or leave a sample password in a public deployment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Docker without confusing development and production

The official Docker guide starts its development environment with docker compose up. Its sample configuration uses a MySQL service named mysql and these values: DB_HOST=mysql, DB_NAME=easyappointments, DB_USERNAME=user, and DB_PASSWORD=password. Those sample values demonstrate container-to-container connectivity; they are not safe production credentials.

The Docker documentation explicitly states that this Compose setup is for development only. Do not expose that file directly to the internet on a VPS. If you choose a production image, the official Docker-image article dated April 9, 2024 demonstrates the alextselegidis/easyappointments image, a MySQL container, database environment variables, application-port mapping, and opening the server address to reach the setup wizard. Before relying on an image, verify:

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
  • Who publishes it and where its source and release notes are maintained.
  • Whether tags are immutable or can silently move, and which version you will pin.
  • Which application and database directories are persistent volumes.
  • How database migrations run during an upgrade and how to roll back if they fail.
  • How health checks report a failed PHP process, database connection, or startup migration.
  • How a reverse proxy terminates HTTPS and forwards the correct host and scheme.
  • How you will back up and restore both MySQL and persistent application data.

Container configuration checks

  1. Replace demonstration credentials with a randomly generated database password and keep secrets in the deployment system rather than in a public Compose file.
  2. Use named or bind-mounted persistent storage for the database and any application data that must survive container replacement.
  3. Pin the application image to a reviewed release instead of automatically tracking an untested latest tag.
  4. Put the application behind a maintained HTTPS reverse proxy, then set the Easy!Appointments base URL to the public HTTPS address.
  5. Run a booking, administrator change, notification, backup, and restore test before sending customers the link.

Finish the browser setup and configure the booking business

The initial installation creates an administrator, a test service, a test provider, and default settings. Replace the test data before launch.

Set the working plan

Enter the business’s opening hours, breaks, and non-working periods. A correct working plan prevents customers from seeing times when nobody can provide a service.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Add services

Create each bookable service with its duration and any other fields exposed by your release. Remove or disable the test service so it cannot be selected accidentally.

Add providers and their services

Create each provider, then associate the services that person can perform. Check provider availability against the working plan; a service without an available provider cannot produce a usable booking slot.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Add secretaries when the workflow needs them

Use secretary accounts for staff who need to manage appointments without sharing the administrator login. Apply the least access that still supports their job.

Review booking rules and language

The project materials list configurable booking rules and multilingual support. Confirm lead-time, availability, and cancellation behavior in the settings exposed by your release, then review the customer page in every language you plan to publish.

Enable notifications and calendar synchronization

Email notifications can inform customers and staff about booking events. Google Calendar synchronization is optional and requires the PHP cURL extension; configure and test it with a real provider account before relying on it for scheduling.

Once the data and rules are correct, link the booking page from your main website. The booking page can be published as a direct link or embedded according to the integration options available in your release.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Make the public VPS deployment safe to operate

Use HTTPS everywhere

Serve the booking and administration interfaces over HTTPS, redirecting insecure HTTP where appropriate. Confirm that the application’s base URL also uses HTTPS so generated links, redirects, and notifications do not send users to an insecure address.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Restrict administration

Use a unique administrator password, separate staff accounts where supported, and network restrictions or an additional access control layer for the administration area when your workflow permits. Never publish database credentials or config.php contents.

Back up both database and files

A database-only backup cannot restore uploaded or generated application data, while a file-only backup cannot restore appointments and settings. Schedule backups for MySQL and the Easy!Appointments files, retain copies outside the VPS, and periodically perform a restoration to a separate environment.

Monitor logs and capacity

Watch the web-server, PHP, MySQL, and Easy!Appointments logs for failed requests, database errors, authentication anomalies, and notification failures. Also monitor disk space: a full volume can prevent database writes, log rotation, or the application’s use of storage.

Document upgrades and rollback

Before upgrading, record the current application release, PHP and MySQL versions, configuration, image or source identifier, and backup location. Read the release notes, test the upgrade on a copy, take a fresh backup, and define how to restore the previous files and database if a migration or plugin integration fails.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Test the complete customer journey before launch

  1. Open the public HTTPS booking page in a private browser session.
  2. Choose a real service and provider, and confirm that only valid working-plan times appear.
  3. Submit a test booking using a mailbox that staff can access.
  4. Sign in as an administrator or secretary and confirm that the appointment appears with the expected details.
  5. Change or cancel the appointment according to your policy and verify the resulting notification path.
  6. Check Google Calendar synchronization if enabled, including the behavior when the external account is unavailable.
  7. Review web-server, PHP, database, and application logs for errors generated during the test.
  8. Restore the database and application files into a disposable environment and verify that the restored booking data opens.

These checks are operational safeguards, not reported performance or uptime measurements. The canonical product material does not establish a particular VPS size, response time, adoption level, or availability figure.

Troubleshoot the failures you are most likely to see

Symptom Likely cause Checks and corrective action
The domain shows the wrong page or a default web-server page. DNS or virtual-host root points elsewhere. Confirm the DNS record, selected host name, document root, and that the uploaded Easy!Appointments folder is the one being served.
The wizard reports a database connection error. Incorrect host, database name, username, password, or MySQL reachability. Compare the values in config.php with the account created for this database and test connectivity from the application host. Do not switch to a global MySQL administrator account as a shortcut.
Pages fail when Easy!Appointments writes data. storage is not writable by the PHP/web-server user, or the disk is full. Check ownership and permissions for only the required storage path, then inspect available disk space and logs.
The site redirects to an old, temporary, or HTTP address. The base URL in config.php does not match the public HTTPS address. Set the canonical scheme and host, then clear any reverse-proxy or browser cache involved in the redirect.
Google Calendar synchronization fails. Missing php_curl, invalid external authorization, or a provider-side error. Confirm the extension is enabled for the PHP runtime serving the site, recheck authorization, and inspect application and PHP logs.
Email notifications do not arrive. Notification settings, mail transport, recipient data, or delivery filtering. Check the configured notification options, application logs, recipient address, and the sending system’s delivery records. A successful booking alone does not prove email delivery.
A container starts but data disappears after replacement. MySQL or application data was stored only in the disposable container filesystem. Attach persistent volumes, recreate the stack from a documented configuration, and verify restoration before production use.
An upgrade leaves the application unusable. Unsupported PHP/application combination, incomplete migration, incompatible image, or missing backup. Stop further changes, preserve logs, restore the tested backup if necessary, and follow the selected release’s migration and version requirements before retrying.

Launch checklist

  • The selected Easy!Appointments release and its PHP/MySQL requirements are recorded.
  • Apache or Nginx, PHP, required extensions, and MySQL are installed and patched.
  • DNS resolves to the VPS and the final HTTPS certificate is active.
  • The application source is uploaded, and only storage has the write access it needs.
  • config.php contains the correct HTTPS base URL and least-privilege database credentials.
  • The administrator and staff accounts use unique credentials; no sample password remains.
  • Working plans, services, providers, provider-service assignments, and booking rules are reviewed.
  • Notifications and optional Google Calendar synchronization have been tested if enabled.
  • Database and file backups run on a schedule, with an actually tested restore.
  • Logs, disk usage, updates, and rollback procedures have named owners.
  • The complete customer booking and staff-management journey succeeds over HTTPS.

Conventional install or Docker: a practical decision

Choose the conventional Apache/Nginx installation when you want the simplest alignment with the official production sequence and already understand your VPS web stack. Choose a production container image only when your team can manage image provenance, persistent volumes, database migrations, reverse-proxy HTTPS, and container-specific troubleshooting. In either case, the durable requirements are the same: a supported Easy!Appointments release, a reachable web server, PHP, MySQL, protected configuration, writable storage, secure public access, and recoverable backups.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.