jChat LogojChat Docs
Licensing & Multi-Site

Domain Activation & Binding

How to bind your purchase code, configure domain routing, and manage offline license validation.

Overview

JChat utilizes a self-hosted offline licensing model. Unlike legacy scripts that require continuous phone-home calls on every HTTP request, JChat validates your license locally on your server.

Once your purchase code is bound to your production domain, your instance operates with full autonomy, ensuring high availability, zero latency penalty, and complete privacy for your chat community.

Domain Binding & Subdomain Inheritance

When you activate a domain such as example.com, JChat automatically authorizes all first-level and nested subdomains belonging to that root apex domain:

  • ✅ example.com (Apex domain)
  • ✅ chat.example.com (Subdomain)
  • ✅ app.example.com (Subdomain)
  • ✅ community.example.com (Subdomain)

If you activate a specific subdomain directly (e.g. chat.mycompany.com), that subdomain is bound directly, while the parent apex and peer subdomains remain authorized under the same apex root.


Step-by-Step Activation Workflows

You can activate your instance through three official methods depending on your current deployment state:

When you deploy JChat for the first time, navigate to your server domain (e.g. https://chat.example.com/install) to launch the interactive installation wizard:

Retrieve Your License Key

Locate your purchase code from your JChat Store Dashboard (under Purchases) or from your official order confirmation email.

Enter License Information

On the License Verification screen of the wizard:

  • Paste your purchase code (or if using Docker with LICENSE_KEY configured in .env, it will be automatically detected).
  • Verify that the auto-detected domain matches your public URL (e.g. chat.example.com).

Activate Instance

Click Verify & Activate. JChat securely connects to the license verification service, binds your domain, and activates your instance for live production use.


Preserving Activation State in Docker

In Docker deployments, ensure the persistent data volume is mounted (data:/app/data as configured in the standard docker-compose.yml). Preserving this volume ensures that your instance activation and local settings persist across container restarts, image updates, and host reboots.


Offline Reliability & Subscription Lifecycle

JChat is designed with enterprise-grade resilience and offline autonomy:

  1. Zero Phone-Home on Boot & Chat Usage: When the JChat server boots or processes chat messages, license validation is performed locally on your server. No outbound network requests are made during normal chat operations.
  2. Periodic Background Updates: Periodically, the instance checks for updated plan entitlements, support status, and store announcements without impacting live chat.
  3. Graceful Network Fallback: If network connectivity to the verification service is temporarily unavailable during a check, your chat rooms, WebSockets, messages, and calls continue operating uninterrupted.
  4. Annual Term & 14-Day Overtime Grace Period: Subscriptions run on annual terms. If a subscription reaches its renewal date, JChat provides a 14-day operational grace period so your community remains active while administrators complete renewal.

Domain Transfer & Reset Workflow

If you need to permanently move your JChat installation from one domain to another (e.g. from a staging URL jchat-test.com to your live domain chat.mybrand.com):

Access JChat Store Customer Dashboard

Log into your account at the JChat Store using your customer credentials or Envato Single Sign-On.

Locate Your License in Purchases

Under Dashboard > Purchases, locate the active license and click Manage Domain Binding.

Reset or Update Registered Domain

Click Reset Domain Binding. This releases the previous domain and frees the license for immediate activation on your new domain.

Reactivate on New Host

Run the setup wizard or navigate to /install/reactivate on your new server to complete the binding.


Troubleshooting Common Scenarios

On this page