CM Free / Plus is a lightweight, self-hosted reservation and availability manager for small accommodation providers, apartments, holiday rentals and similar small hospitality setups.
It is built around a simple principle:
Own your calendar, own your data, avoid unnecessary SaaS complexity.
CM Free / Plus runs on a classic web stack, stores its state in JSON files, and is designed to be understandable, movable and easy to maintain.
Demo:
http://cmfree.duckdns.org/app/
The demo is hosted on a small local test machine and is intended for quick first impressions, UI testing and feedback.
Download page:
https://apartmamatevz.si/cmfree/download.html
Available package types:
Use these for real installations.
- Clean ZIP: for classic hosting or manual installation.
- Clean DEB: for Ubuntu/Debian systems.
The clean packages do not include:
- common/data/admin_key.txt
- common/data/json/
- demo reservations
- runtime state
The first-use flow creates the initial admin key and JSON structure.
Use these for testing, demonstrations or sandbox installs.
Demo packages may include prepared example content or demo state so the system is easier to inspect immediately after installation.
CM Free / Plus currently includes:
- public availability calendar
- date range selection
- offer / inquiry flow
- admin calendar
- inquiry management
- reservation management
- local blocks / hard locks
- basic unit management
- first-use setup flow
- help center and onboarding guides
- JSON-backed data storage
- ICS-oriented import/export workflows
- simple review flow
- optional graffiti / lightweight engagement widget
- email sending through system mail transport
Use the clean ZIP package if you want to install manually on a hosting account or web server.
Basic idea:
- Download the clean ZIP.
- Extract the app/ folder to your web root.
- Make sure app/common/data/ is writable by the web server.
- Open /app/admin/.
- Complete the first-use setup.
Example target path:
/var/www/html/app
Then open:
http://your-domain.example/app/admin/
Use the clean DEB package for Ubuntu/Debian based systems.
Example:
sudo apt update
sudo apt install ./cmfree_clean_amd64_1.2.1.deb
The DEB package installs the application under:
/var/www/html/app
and declares dependencies for:
- Apache
- PHP
- common PHP modules
- msmtp
- msmtp-mta
- unzip
After installation, open:
http://localhost/app/admin/
or from another device on the same network:
http://SERVER-IP/app/admin/
The clean package is intentionally shipped without runtime state.
On first use, the setup flow creates:
- common/data/admin_key.txt
- common/data/json/instance.json
- common/data/json/units/manifest.json
- the first unit
- per-unit JSON files
- integration skeletons
The admin key is generated automatically if it does not already exist.
CM Free / Plus is JSON-backed.
Typical runtime structure:
common/data/
├── admin_key.txt
├── i18n/
└── json/
├── instance.json
├── units/
│ ├── manifest.json
│ └── <UNIT>/
│ ├── prices.json
│ ├── occupancy.json
│ ├── occupancy_merged.json
│ ├── local_bookings.json
│ ├── day_use.json
│ ├── special_offers.json
│ └── site_settings.json
├── integrations/
├── inquiries/
└── reservations/
The Git repository does not include private runtime state such as real reservations, admin keys or local JSON data.
CM Free / Plus can send emails through the system mail transport.
The DEB package includes msmtp and msmtp-mta as dependencies, but SMTP credentials still need to be configured for the target system or installation.
After setup, verify that sendmail compatibility exists:
which sendmail
php -i | grep -i sendmail_path
CM Free / Plus includes ICS-oriented workflows for calendar interoperability.
The project is designed around a practical separation:
- internal state is managed locally
- confirmed reservations / hard locks can be exported
- soft holds and unconfirmed internal states should not be exported as confirmed external availability
This keeps the system safer when working with external calendars and booking platforms.
The package includes an internal help center for users and installers.
Important admin pages include contextual help and guide support so the system can be used in an “AnyDesk mode” setup, where a remote helper can install, configure or explain the system to a new user.
CM Free is released under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
Copyright © 2026 Viljem Dvojmoč.
This public repository contains the CM Free distribution source.
CM Plus upgrade packages, private customer-specific upgrade material, and CM PRO are separate editions and are not included in this repository or license unless explicitly stated.
CM Plus may be provided as a separate upgrade package. CM PRO is a separate commercial/professional edition and is not a module bundle or automatic upgrade from CM Free.
SPDX-License-Identifier: AGPL-3.0-or-later
CM Free / Plus v1.2.1 is a practical release candidate for testing and real-world feedback.
It is currently suitable for:
- demos
- sandbox installs
- small self-hosted tests
- early adopters
- small accommodation providers who want a lightweight local-first reservation tool
For production use, always test the full flow first:
- first-use setup
- public calendar
- inquiry submission
- admin acceptance
- reservation confirmation
- email sending
- ICS import/export behavior
- backups
- Demo: http://cmfree.duckdns.org/app/
- Download page: https://apartmamatevz.si/cmfree/download.html
- Journal story: https://apartmamatevz.si/journal/posts/2026-05-12-cm-freeplus-rezervacijski-sistem.html
This project started as a practical tool for a small independent accommodation business and is developed with real-world testing in mind.
The goal is not to replace large commercial channel managers, but to provide a small, understandable and self-hosted alternative for simple use cases.
Current release:
CM Free / Plus v1.2.1