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_KEYconfigured 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:
- 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.
- Periodic Background Updates: Periodically, the instance checks for updated plan entitlements, support status, and store announcements without impacting live chat.
- 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.
- 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.