License Guide

Tours uses two independent licensing layers, plus the marketplace (Envato) license that governs how you may use the product. This guide covers all three. Always refer to the official marketplace license terms as the authoritative source for usage rights.

Overview

Layer What it controls Where you manage it
A. Product license Binds your purchase code to one domain; drives the License Gate/Banner Install Wizard · Admin → License
B. Add-on licensing Unlocks premium add-ons (entitlements or per-add-on codes) Admin → License · Admin → Add-ons
C. Marketplace license Your legal usage rights (Regular vs Extended) Your purchase account (marketplace)

A. The CreativeCape Product License

The product license ties your purchase code to a single domain. It is verified offline so it doesn't depend on a live connection on every request.

How it works (the model)

  1. Activate once. You enter your purchase code for your domain. The CreativeCape license server (default https://creative-cape.com, overridable with LICENSE_SERVER_URL) binds the code to that domain and returns a signed RS256 token.
  2. Verify offline. Tours verifies that token's signature on every check using a public key baked into the product — no key to configure. (You can override the key with LICENSE_PUBLIC_KEY for key rotation, but you normally never touch it.) The token is also checked against your current domain.
  3. Daily heartbeat. When due, Tours re-validates with the license server in the background. A successful heartbeat refreshes the "last verified" timestamp.
  4. Fail-open grace. If the license server is unreachable, Tours keeps running for a 14-day grace window measured from the last successful verification, so a network blip never takes a live site down.

Environment variables

Variable Default When to set it
LICENSE_SERVER_URL https://creative-cape.com Only if you're pointed at an alternate license server.
LICENSE_PUBLIC_KEY Baked-in public key Only for key rotation; normally left unset.

Where the license is enforced

Enforcement is deliberately soft: the product is not hard-blocked. Instead:

  • An admin License Gate prompts you to activate inside the admin panel.
  • A public License Banner appears on the storefront when unactivated.

The activated record is stored as a single row in the app_license table.

Activating your domain

You can activate during the Install Wizard (License step) or anytime in Admin → License:

Action What it does
Activate Binds your purchase code to the current domain and stores the signed token.
Recheck Forces an immediate server re-validation (heartbeat) and refreshes status.
Deactivate Releases this domain's seat and clears the local license, so you can move domains.

Dev-host bypass

Local and private hosts skip licensing entirely (dev mode) — and everything, including premium add-ons, is unlocked there for building and testing. This applies to:

  • localhost, 127.0.0.1, ::1
  • any *.localhost and *.test host
  • private LAN ranges (10.x, 192.168.x, 172.16–31.x)

Moving to a new domain

The license is bound to one domain. To move: Deactivate on the old domain (releases the seat — this still clears locally even if the server is temporarily unreachable), then Activate on the new domain. If you forget to deactivate, activating elsewhere reports a domain mismatch until the seat is freed.

Public status endpoint

GET /api/license/status returns the non-secret state for the installation. It deliberately omits the purchase code, domain, and detailed dates. (The full, masked detail lives behind the permission-gated admin endpoint GET /api/v1/admin/license.)

JSON
{
  "state": "active",
  "type": "extended",
  "graceEndsAt": null,
  "entitlements": ["payments:stripe", "feature:two-factor"],
  "message": "License active."
}

B. Add-on Licensing

Tours ships 65 built-in add-ons (54 integration channels + 11 features). They're all in the product source — there is no zip to install. Licensing simply unlocks what you've paid for, and a premium add-on must pass a two-gate model: it must be unlocked (licensed) and then switched on (admin toggle).

The two-gate model

Gate Question Where
Gate 1 Is the add-on unlocked (licensed)? License entitlement or per-add-on code
Gate 2 Is the add-on switched on? Admin toggle

An add-on only runs when both gates pass.

Two ways to unlock a premium add-on

  1. License entitlements. Your product license carries an entitlements list. An add-on is unlocked when the list contains:
    • * or all (full unlock), or
    • the channel id (whole-channel unlock, e.g. payments), or
    • the exact <channel>:<provider> key (e.g. payments:stripe), or, for feature add-ons, the exact feature id.
  2. Per-add-on purchase code. Buy an add-on separately, then enter its purchase code in Admin → Add-ons. Tours exchanges the code once with the license server for an RS256 token bound to { addon, domain }, stores it in the addon_licenses table, and verifies it offline on every check thereafter. This survives the server being briefly unreachable and can't be forged.

On a dev host, or with a */all master entitlement, everything is unlocked.

Free vs premium

A small free set works with no key at all:

Job Free provider
Email email:smtp
Analytics analytics:ga4
Payments payments:cod, payments:bank, payments:paypal
Storage storage:r2
Video video:youtube, video:vimeo

Everything outside that set is a premium add-on — including the other 20 payment gateways, premium email/video/storage providers, chat, chatbot, live chat, CAPTCHA, SMS, social login, WhatsApp, analytics extensions, and all 11 feature add-ons (Announcements, Support Desk, Maps & Geocoding, Two-Factor Authentication, SSO, and so on).

C. The Marketplace License (Regular vs Extended), in plain English

Tours is sold under the marketplace's standard licensing. Which one you need depends on whether your end users pay to access what you build.

Question Regular License Extended License
End users pay to access the platform? No Yes
Run it as a paid product / SaaS? No Yes
Covers one single end product Yes Yes
Commercial or client project allowed Yes Yes

Regular License

Choose the Regular License when end users are not charged to access your platform.

  • You run a free-to-access tours/booking site, marketplace, or internal directory.
  • It's fine if the project is commercial or for a client — what matters is that end users don't pay to access it.
  • One Regular License covers one single end product (one Tours / one website).

You may not use a Regular License for a platform where users pay to access it. For that you need the Extended License.

Extended License

Choose the Extended License when end users are charged, or you run Tours as a paid/SaaS product.

  • Travelers pay a fee, subscription, or membership to access tours.
  • You operate it as a SaaS where customers pay to use the service.
  • The end product itself is sold or monetized through paid access.

As with the Regular License, one Extended License covers one single end product. A staging/test copy of the same single end product is fine; a second, separate platform needs a second license.

Third-Party Licenses

Tours bundles open-source libraries that keep their own licenses (mostly MIT). Your marketplace license applies to the Tours source code itself, not to these packages, which remain governed by their respective licenses. Third-party services (Neon, Cloudflare R2, payment gateways, email providers, etc.) are governed by their own terms of service. See Credits for the full list.

Updates

  • Free lifetime updates are included with every license.
  • Updates ship bug fixes, compatibility improvements, and new add-ons (see the Changelog).
  • Updates do not change your license tier — your Regular/Extended terms continue to apply.

© CreativeCape Solutions · creative-cape.com · support@creative-cape.com