BAKARSERVER CLIENT 1.0.0 Linux / Python 3.9 or newer. No third-party Python packages or root access required. This client connects one BakarServer subscription to your server. It reports subscription status, expiry and whether the observed outgoing public IP matches the licensed IP. It does not install or activate cPanel, CloudLinux, Softaculous or other vendor applications, change their license files, stop their services, modify /etc/hosts, change certificates, or install a background task. INSTALL Download bakar-client-1.0.0.zip from https://mirror.bakarserver.com/ and verify its SHA-256 against the published SHA256SUMS/manifest. Extract into a new directory, read the included source, and run: python3 install.py The installer also verifies the bundled client against its embedded checksum. Default installed file: ~/.local/bin/bakar-client For a separate installation: python3 install.py --bin-dir /your/private/test/bin Existing files are not replaced without --replace. No sudo is required. ENROLL Open your subscription in NovaFast. Once it is synchronized, choose Create / replace client token. Copy the token displayed once, then run: ~/.local/bin/bakar-client enroll Paste the token at the hidden prompt. Never put a token in a shell command, URL, chat, shared screenshot or support ticket. A new token immediately invalidates the old token for that subscription. Revoke client token disables existing copies. Private configuration: ~/.config/bakarserver/client.json (0600). The API stores only a SHA-256 token digest. The full token is kept locally for HTTPS requests; the portal shows it once and discards the session copy when displayed or expired. Use --config /private/path/client.json before a command to keep multiple separate subscriptions on one host. Each configuration must have its own service token. CHECK ~/.local/bin/bakar-client status Exit 0: the BakarServer subscription is active, verified and IP-matched. Exit 3: the record is pending, suspended, expired, cancelled or IP-mismatched. Exit 2: no valid token, revocation, HTTPS/network failure or invalid response. There is no offline authorization fallback. JSON output never contains the token. The server uses the actual API connection IP, ignoring client-supplied IP headers. Use the correct public outgoing address when the customer server is behind NAT. The status endpoint is read-only with respect to service state. Enrollment does not activate a product or start a trial. Vendor license validation is not performed. UPDATE ~/.local/bin/bakar-client update Checks https://mirror.bakarserver.com/releases/stable.json without installing. ~/.local/bin/bakar-client update --apply Only a strictly newer release can replace the client. HTTPS certificate checking, fixed download origin/path, size, SHA-256, Python syntax and release version are validated before an atomic replacement. Token configuration is preserved. Nothing is downloaded from third-party sites, and no update is run automatically. Release authenticity relies on verified HTTPS to mirror.bakarserver.com; the manifest is not independently cryptographically signed in this first release. REMOVE Revoke the token from the subscription page, then run: ~/.local/bin/bakar-client forget --yes Delete only ~/.local/bin/bakar-client when you no longer need the client. No cron entry, daemon or vendor changes need to be undone.