Layer 5 · self-hosting reality check
What it actually takes to self-host Easy!Appointments
The docs say Not stated by the vendor. The install guide is written for ordinary PHP hosting (Apache 2.4+, PHP 8.2+, MySQL 5.7+, files uploaded by FTP), so a basic shared-hosting plan is the smallest documented footprint. In practice you want 1 GB on a VPS covers PHP and MySQL for one business's booking traffic. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Calendly alternatives, where Easy!Appointments is one of the picks.
Wondering whether you need to at all? Is Calendly free? — what the free tier actually allows, and where the wall is.
| RAM — documented minimum | Not stated by the vendor. The install guide is written for ordinary PHP hosting (Apache 2.4+, PHP 8.2+, MySQL 5.7+, files uploaded by FTP), so a basic shared-hosting plan is the smallest documented footprint |
|---|---|
| RAM — what it really needs | 1 GB on a VPS covers PHP and MySQL for one business's booking traffic |
| CPU | 1 vCPU |
| Disk | A few GB at most: the app, a MySQL database and logs. Schedule the cleanup command so expired sessions, old logs and cache files don't pile up. |
| Monthly cost | $0 extra on PHP hosting you already pay for, or $5–10/mo on a 1 GB VPS |
| Setup time | An hour on shared hosting, plus an hour for Google Calendar sync |
| How you install it | Upload the release to Apache or Nginx with PHP 8.2+ and MySQL, edit config.php and run the browser wizard; or use the official alextselegidis/easyappointments image with MySQL 8.0 from the easyappointments-docker repo |
| Ongoing maintenance | Set two cron jobs and leave them: console sync and console cleanup. Add console backup for the database. Upgrading means replacing files and running the migrate command. Read the release notes first, because settings have moved between config files in recent releases. |
| Where it stops scaling | Fine for one business with a handful of providers on one small server. It's one PHP app on one MySQL database, so growth means a bigger box, not a cluster. |
The thing that catches people out
Calendar sync isn't live. Easy!Appointments syncs when a booking changes or someone clicks sync in the back end. The events you add straight into Google or CalDAV only come across the next time a sync runs, and the docs leave it to you to put the sync command on a cron job (they suggest hourly). Skip the cron and a customer can book a slot you already filled from your phone. Put php index.php console sync on a short cron schedule on day one.
When not to self-host Easy!Appointments
You already run Nextcloud, where Appointments for Nextcloud adds booking pages without a second app, or you just want a personal meeting link. Easy!Appointments is built for a business taking bookings for services, providers and a front desk.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 5 self-hosting guides
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
Common questions
- How much RAM does Easy!Appointments actually need?
- 1 GB on a VPS covers PHP and MySQL for one business's booking traffic in practice. The documented minimum is Not stated by the vendor. The install guide is written for ordinary PHP hosting (Apache 2.4+, PHP 8.2+, MySQL 5.7+, files uploaded by FTP), so a basic shared-hosting plan is the smallest documented footprint, which is the figure at which the process starts rather than the figure at which it works under real use. 1 vCPU alongside it.
- What does self-hosting Easy!Appointments cost per month?
- $0 extra on PHP hosting you already pay for, or $5–10/mo on a 1 GB VPS This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for set two cron jobs and leave them: console sync and console cleanup. Add console backup for the database. Upgrading means replacing files and running the migrate command. Read the release notes first, because settings have moved between config files in recent releases.
- How long does it take to set up Easy!Appointments?
- An hour on shared hosting, plus an hour for Google Calendar sync, via Upload the release to Apache or Nginx with PHP 8.2+ and MySQL, edit config.php and run the browser wizard; or use the official alextselegidis/easyappointments image with MySQL 8.0 from the easyappointments-docker repo.
- When should I NOT self-host Easy!Appointments?
- You already run Nextcloud, where Appointments for Nextcloud adds booking pages without a second app, or you just want a personal meeting link. Easy!Appointments is built for a business taking bookings for services, providers and a front desk.
- What is the most common mistake when self-hosting Easy!Appointments?
- Calendar sync isn't live. Easy!Appointments syncs when a booking changes or someone clicks sync in the back end. The events you add straight into Google or CalDAV only come across the next time a sync runs, and the docs leave it to you to put the sync command on a cron job (they suggest hourly). Skip the cron and a customer can book a slot you already filled from your phone. Put php index.php console sync on a short cron schedule on day one.