Server, backup and updates

Everything related to the machine where ChatISP runs: server network, WireGuard VPN, domain and HTTPS certificate, local AI, the Ravi Systems support VPN, backup, restore and migration, software updates, license and the automatic routines. Most of it is exclusive to the self-hosted installation; this page indicates, item by item, what also exists in ChatISP Cloud.

Self-hosted installation and ChatISP Cloud

ChatISP comes in two forms, with the same system inside:

  • Self-hosted installation: the internet service provider (ISP) downloads the ISO from the website and installs ChatISP on its own server (physical or virtual machine), with a 10-day free trial. The ISP owns the machine, which is why the panel includes the network, domain, local AI and update screens.
  • ChatISP Cloud: Ravi Systems hosts the system. The ISP signs up, chooses a plan and a subdomain and logs in right away. The machine, domain, certificate and updates are handled by Ravi Systems, and the machine owner screens disappear from the panel.
FeatureSelf-hosted installationChatISP Cloud
Network tab (IP, DNS, WireGuard VPN)YesNot shown
Domain and certificate tabYesNot shown (the Cloud subdomain comes with HTTPS from the start)
Local AI tabYesNot shown (maintained by Ravi Systems)
Ravi Systems support VPNYesNot applicable
Automatic update by the server itselfYes, every 30 minutesNo: Ravi Systems applies new versions to the platform
Backup: download, upload and restoreYesYes
Daily database copy at Ravi SystemsYesYes
Registration and licenseYes (10-day trial, then a plan)Yes (plan chosen at sign-up, no trial)

The Network, Domain and certificate and Local AI tabs are in Settings and require the Server (network and certificate) permission. Backup and registration are in the System tab and require the Settings permission.

Actions that touch the operating system (applying the network, issuing a certificate, bringing up a VPN, installing the local AI, restoring a backup) do not run directly from the browser: the panel records the request and a service on the server itself executes it within seconds, with the safeguards described in each section. That is why some screens show "applying" or "activating" for a few moments before the result.


Server network Self-hosted installation

Network tab, Server IP address card: "Addresses, gateway, VLAN and DNS of the network card. Save stores the new configuration; it only takes effect on Apply, which restarts the network." The card has two sub-tabs.

Simplified configuration

One row per address, with the fields IP address, Netmask, Gateway, Card and VLAN, and the Remove button. Add address creates a new row (extra addresses on the same card, VLANs, IPv6). A card configured by DHCP appears as an informational row: to set a static IP, remove that row and add the address.

The screen validates everything before saving and refuses with a message describing the problem: invalid IP or netmask, gateway outside the address network, more than one gateway per IP family (one for IPv4 and one for IPv6), VLAN outside 1 to 4094, nonexistent card, no address or no DNS. At least one address must remain.

Advanced configuration

Direct editing of the server network file (/etc/network/interfaces), for configurations the form does not cover (bridges, extra routes, specific options). The text must have at least one configured interface. The same safeguard as the simplified configuration applies.

DNS servers

Primary DNS and Secondary DNS fields, shared by both sub-tabs. At least one is required.

Save, apply and discard

  1. Save stores the new configuration without touching the network ("Configuration saved. It only takes effect when applied."). A banner warns that there is a saved configuration not yet applied, with who saved it and when.
  2. Apply and restart the network asks for confirmation ("The panel may stop responding for a few seconds.") and restarts the network card with the saved configuration.
  3. The server keeps the previous configuration, restarts the network and tests the gateway. If the network does not come up or the gateway does not respond, it automatically rolls back to the previous configuration and the screen reports the reason.
  4. If the panel address changed, the screen counts down a few seconds and opens the panel at the new address.
  5. Discard saved changes deletes the pending configuration without applying it.

Changing the network can cut off access to the panel. Check the IP, netmask and gateway before applying. Take special care with extra public IP addresses on the same card: an address in the wrong subnet makes the server treat that whole subnet as a local network and may cut off access to an ERP or Ravicor located there.

Addresses active now

Informational card showing what the card is using at this moment. It may differ from the saved file until the network restarts: use it to check the effect of an Apply.


WireGuard VPN Self-hosted installation

WireGuard VPN card on the Network tab: "Secure tunnels between this server and routers or servers on your network (reach devices with private IPs, integrate the ERP, link branches)." Typical use: ChatISP installed in a data center needs to reach the ERP or Ravicor located on the ISP's internal network.

Create a VPN

Click Add VPN. The New WireGuard VPN window explains: the private key stays only on this server; the public key is what you register on the other end.

FieldWhat it is
Operating modeClient: this server dials the other end. Server: this server listens and receives connections.
NameVPN identification (e.g. Office VPN).
Tunnel IP (Address)Address of this server inside the tunnel, in CIDR (e.g. 10.0.0.2/24). If left blank, the AI chooses it during the automatic configuration.
Listen portUDP, used in server mode. The server firewall opens the port on its own when connecting. Accepts 1 to 65535, except 53.
Private keyBlank: keeps the current one (or generates a new one on creation). It is never displayed back.

Remote ends (peers) and routes

ItemFields and rules
Remote end (peer)Name, Peer public key, endpoint (public host:port of the other end: required when this server is the client, blank in server mode), optional Preshared key (PSK) and Keepalive (s), suggested at 25.
New routeIP block that becomes reachable through the VPN: Block (CIDR), e.g. 192.168.10.0/24, and Description. The default route (0.0.0.0/0) is not allowed: it would hijack the panel's own network.

Connect and monitor

Each VPN appears as a card with Interface, Tunnel IP, Port, Traffic, status (Connected or Disconnected) and the remote ends. Actions:

  • Connect: brings up the tunnel. Requires at least one peer and the tunnel IP set. A connected VPN comes back on its own after a server restart.
  • Disconnect: brings down the tunnel, with confirmation ("Whatever is reached through it will become unavailable.").
  • View configuration: shows This server's public key and an Example configuration for the other end, with copy buttons.
  • Configure with AI: see the next section.
  • Deleting the VPN brings down the tunnel and erases peers and routes.

A VPN whose configuration violates the security policy (for example, a /0 default route) receives the warning "needs review before connecting" and does not come up. The rule exists so that no VPN can take the panel offline.


Configure the VPN with AI Self-hosted installation

The Configure with AI button opens a session in which the AI accesses the remote device over SSH and configures the VPN end to end, live, with a mandatory backup before any change. You follow every command and approve any sensitive action.

  1. Choose the Device type: MikroTik RouterOS or Linux server (Debian/Ubuntu).
  2. Enter Address (IP or host), SSH user, Port and SSH password. The credential is used only in this session, encrypted at rest, and never appears on screen.
  3. Click Start configuration. The screen shows two terminals side by side (This server (ChatISP) and Remote device) and the AI's reasoning.
  4. On MikroTik, the first step is always a full backup downloaded to this server ("Device backup saved on this server.").
  5. When the AI wants to run a sensitive command, the screen pauses and asks you to Approve or Decline.
  6. At the end, the AI validates the tunnel and the session ends with "Configuration completed and validated." or with the reason for the failure.

Configuration with AI depends on the platform AI being available to the server. If the connection to the live view drops, the session may continue on the server: refresh the screen to see its state.


Domain and HTTPS certificate Self-hosted installation

Domain and certificate tab, Domain and HTTPS certificate card: "Domains answering with HTTPS on this server, each with its own Let's Encrypt certificate renewed automatically. Access by IP keeps working with the internal CA."

Domain types

TypeHow it worksFields
chatisp.com.br subdomainYou choose a name (e.g. myisp.chatisp.com.br). The DNS record is created automatically at the Ravi Systems central server and the certificate is issued right after. The screen checks availability as you type (Available or "This subdomain is already in use").Subdomain (lowercase letters, digits and hyphen), E-mail for certificate notices, Public IP (IPv4), IPv6 (optional).
My own domainA domain owned by the ISP (e.g. panel.yourcompany.com). Before adding it, create an A record in your DNS pointing the domain to this server's public IP.Domain, E-mail for certificate notices.

Activation

  1. Click Add domain, choose the Type and fill in the fields. "Domain added. Activation takes a few minutes."
  2. The row shows Activating…. The server checks whether the domain already points to it; until it does, the status shows "Waiting for DNS propagation to issue the certificate…". The wait lasts up to about 4 hours.
  3. With the DNS correct, the Let's Encrypt certificate is issued and the row changes to Active, with its validity ("Valid until ...").
  4. The first active domain becomes the Primary: the server's default address, used in links generated by the system (invitations, password recovery, integrations). Change it with Set as primary.

Statuses and actions

Status on screenMeaning and what to do
The domain does not point to this serverAfter the wait, the DNS still does not lead to the server. Fix the A record and use Try again.
The domain could not be validated over the internetThe domain points correctly, but Let's Encrypt could not reach the server. Open port 80 from the outside to the server (in the firewall and NAT) and try again.
Temporary issuance limit for this domainLet's Encrypt limits failed attempts per hour. Wait a few hours and try again.
The automatic renewal of this certificate is not happeningLess than 7 days remain before expiration and the renewal (which starts on its own 30 days before) has not occurred. Check port 80 and use Renew now.
The new web server configuration was rejected and the previous one remains in effectThe server tested the new configuration before applying it and kept the previous one. The panel stays online; contact support.
Failed to remove the subdomain record at the centralDeleting the subdomain could not reach the DNS central. Try again in a moment.

Show details shows the technical response of the last attempt. Renew now on a still valid certificate does not consume the issuance limit. Deleting a domain asks for confirmation ("HTTPS access through it stops working."); for a chatisp.com.br subdomain, the DNS record is removed from the central first.

Access by IP

Without a domain, the panel answers on the server IP with the certificate from the installation's internal CA, and the browser shows a security warning. To access by IP without the warning, download the CA file from the link at the bottom of the card (ravi-ca.crt) and install it on the agents' computers. Having a domain is recommended: with it, any browser opens the panel without a warning and without installing anything.


Local AI Self-hosted installation

Local AI tab, Server local AI card (Free badge): "AI features that run on this very server, with no per-use cost: transcription of received audio and the voice that answers customers with audio. Here you can see whether they are working, the reason when they are not, and install what is missing."

The three rows of the card

RowWhat it shows
Audio transcriptionStatus, the date of the last completed transcription and an alert if transcription is turned off in the Service tab.
AI voiceStatus, how many Portuguese voices are installed and whether audio replies are on or off.
Server processorCompatible or Incompatible with the instructions transcription requires.

Statuses

StatusReason and solution
WorkingAll good.
Installed, but stoppedThe service is installed but not running. Click Install now.
Running, but not respondingThe service is running but has not talked to the panel for more than a minute. Click Install now, which also works as a repair.
Not installedThe feature has not been installed on this server yet (for example, on an installation made with the light version). Click Install now.
Installed, but faultyThe files are on the server, but the program cannot run. This usually happens when the installation media was written in a way that loses part of the files (ISO extracted onto a USB drive instead of written as an image). Click Install now to redo it.
Unavailable on this processorThe processor does not offer the x86-64-v2 instructions. On a virtual machine, this is almost always the generic processor type set in the hypervisor, not a limitation of the real hardware. In Proxmox: Hardware tab, Processors item, Edit button, Type "host"; power the virtual machine off and on, then come back and click Install now. The AI voice does not depend on these instructions.

Install now

The button only appears when there is something it can fix. It downloads what is missing and starts the services without interrupting customer service, with a progress bar through the stages: preparing, checking the processor, installing the transcription components, downloading the transcription model, configuring and starting the service, installing the AI voices and done. The installation requires internet access on the server; if a stage fails, the screen says which one and you just click again.


Ravi Systems support VPN Self-hosted installation

To handle a technical ticket without asking for access to your firewall, Ravi Systems support can open a temporary tunnel to your server. There is nothing to configure in the panel: the server comes ready.

  • The tunnel only comes up when the support team activates a session for your installation, during a support case. The request arrives through the normal synchronization with the central server.
  • Each session lasts at most 1 hour. The server itself brings the tunnel down when the time is up, even if it loses contact with the central server, and generates new keys for the next time.
  • The tunnel is isolated: it does not appear among your WireGuard VPNs, does not touch your routes or gateway and only reaches the support addresses.
  • Since activation travels in the license synchronization, the server must have outbound internet access to the Ravi Systems central server.

Backup

Automatic backup card, in the System tab of Settings. There are two different copies, which run together every night:

CopyWhat it includesWhere it is storedControl
Daily copy at Ravi SystemsOnly the database, compressed, without media files.Ravi Systems backup server, identified by the installation token.Always on. The card shows the last upload and its result.
Local backupDatabase and, with Include media files on, images, audio, documents and recordings.Fixed, protected folder on the server itself (the screen does not expose paths).Daily backup on and Keep for (days), from 1 to 365 (default 7).
  • The automatic backup runs at around 2 a.m. (server time).
  • Run now triggers both copies immediately, even with the daily backup turned off. While it runs, the card shows "Backup in progress…" and refreshes on its own.
  • Only one backup or restore runs at a time: a request in the middle of another is refused with a warning.
  • The Backups stored on this server list shows the most recent ones (up to 30), with date and size. Download transfers the file to your computer, to keep it off the server; the download is recorded in the audit log.

The size of the local backup is almost all media, and much of it is usually call recordings. Monitor disk space when you turn on recording and adjust the retention. Also remember that the copy at Ravi Systems does not include media: to preserve attachments and recordings, download a local backup periodically.

The installation token and license are never part of a backup. Encrypted secrets (ERP, official API and two-factor authentication credentials) travel in the backup and open normally on another ChatISP installation, which makes it possible to migrate servers without redoing integrations.


Restore and migration

Restoring puts the data from a ChatISP backup back on this server. It is also the way to migrate: from an old server to a new one, or from a self-hosted installation to ChatISP Cloud.

Where to restore from

  • From the list: Restore button next to a backup stored on this server.
  • From a file: Upload backup and restore… button. It accepts a ChatISP backup in .tar.gz format (local backup, with or without media) or .sql.gz (database-only copy, such as the one provided by support from the daily copy). The file is uploaded in parts, with progress on screen, and can be hundreds of megabytes; if a part fails, the upload restarts.

Before confirming

The Restore backup window summarizes what will happen:

  • All current data (conversations, contacts, users and settings) will be replaced by the data in the backup.
  • Before any change, a safety copy of the current data is added to this server's backup list (marked as "safety copy (taken before a restore)").
  • The token and license of this installation are preserved.
  • At the end, you may need to log in to the panel again.

What happens after Restore now

  1. File validation.
  2. Safety copy of the current data.
  3. The customer service services (WhatsApp, calls, AI) are paused, so nothing is written to a half-loaded database.
  4. Database import. If the import fails, the previous data comes back on its own ("The import failed; bringing the previous data back…").
  5. The keys of this installation (panel address and local service keys) are rewritten, so a backup from another server does not point to the old machine.
  6. Database structure update: a backup from an earlier version is upgraded to the current structure.
  7. Media files are restored, when the file includes media (existing files are not deleted).
  8. Services are restarted and "Restore completed."

You can close the window: the restore continues on the server and the progress stays on the backup card. If the session drops midway (users are also restored), use Reload the panel and log in again. A database-only restore (.sql.gz) brings the conversations without the files: missing images appear as a generic "unavailable" image.

WhatsApp sessions paired by QR Code belong to the server where they were paired. After migrating to a new server, check the Connections screen and reconnect whatever is disconnected. Turn off the old server before reconnecting on the new one, so the two do not compete for the same number.


Software updates

Self-hosted installation Installed ChatISP updates itself, with no intervention:

  1. On each synchronization with the central server, the server learns whether a new version has been published for it.
  2. Every 30 minutes, the updater checks whether there is something to apply. If there is, it downloads the package from the official ChatISP website, verifies the Ravi Systems digital signature and only then replaces the files.
  3. After the replacement, it applies the database structure changes and restarts the necessary services. Customer service continues normally.

Progress appears on the registration card, System tab: the Software update row (Up to date, "Version X (build N) available" or the failure of the last cycle) and the Latest updates list. The installed version appears in ChatISP version.

Failure shownWhat to do
insufficient diskThe updater requires at least 1 GB free. Free up space (old local backups and recordings are usually the largest) and wait for the next cycle.
download failedThe server could not download the package. Check the server's outbound internet access.
package differs from the published one / invalid package signatureThe downloaded file does not match what Ravi Systems published and is discarded without touching the system. It is usually transient; if it persists, contact support.
Update in progressA cycle is already running. Wait.
database migration failed / provisioning failedThe files were replaced, but a later step failed. Contact support with the time of the occurrence.

ChatISP Cloud In the Cloud, the server does not download packages: Ravi Systems updates the platform and applies the new version to all customers, without disconnecting anyone.


License and synchronization with the central server

Each installation has a unique, immutable token, created during installation. The plan, the limits and the license status are decided by the Ravi Systems central server and reach the server through synchronization, which happens automatically every 10 minutes (and 2 minutes after each restart). The Refresh button on the registration card forces an immediate synchronization.

License statuses

StatusWhen it happensEffect
Free trialNew installation, within 10 days of creation.Everything unlocked, no limits. Administrators see the countdown at the top and the Register now! button.
ActivePaid plan registered.Unlocked, with the plan limits.
Trial endedThe 10 days passed without a plan.Panel blocked. Conversations and settings remain saved.
DeactivatedLicense canceled at the central server.Panel blocked, with the Reactivate now button.
Blocked due to pending paymentMonthly fee overdue beyond the grace period.Panel blocked, with Request a new invoice copy. Once payment is settled, the system comes back on its own within a few minutes.
No communication with the central serverMore than 3 days without synchronizing.Panel blocked until the next successful synchronization.

Time limits without a signal

  • Up to 24 hours without synchronizing: nothing changes.
  • From 24 hours on: administrators see at the top of the panel "No communication with the Ravi Systems central server for N h.", with the Refresh button.
  • Over 72 hours (3 days): the status becomes No communication with the central server and the panel is blocked. As soon as the server talks to the central server again, the license comes back.

Block screen

With the license blocked, the panel opens a dedicated screen with the reason, the token (with Copy), the Sync now button, the action for the case (register, reactivate or request a new invoice copy), the link "Questions about plans? Talk to Ravi Systems" and Sign out. Nothing is deleted during the block, and the Ravi Systems support team can still log in to help.

Limits per plan

PlanAgentsWhatsApp numbersActive flowsAPI keysAutonomous AIMessage automation and public APIVoice calls
BASIC2120NoNoYes
NORMAL4230YesNoYes
PREMIUM84Unlimited3YesYesYes
GOLD128Unlimited10YesYesYes
ENTERPRISEUnlimitedUnlimitedUnlimitedUnlimitedYesYesYes
Free trialUnlimitedUnlimitedUnlimitedUnlimitedYesYesYes

When a limit is reached, the screen that creates the item warns you ("... limit reached") and offers an upgrade; a feature outside the plan shows from which plan it is available. Plans and prices: registration page on the ChatISP website.

The token identifies one machine. Copying the disk or cloning the virtual machine to run two installations with the same token is detected by the central server, and synchronization responds "Error 02. Please contact Ravi Systems support." To change servers, use backup and restore on a new installation.


Automatic routines and maintenance

The server runs a series of routines on its own. Knowing the schedules helps you understand what happens "without anyone touching anything":

RoutineFrequencyWhat it does
Customer service routinesEvery few secondsDistributes the queue through the round-robin, sends inactivity warnings and closures, returns to the queue a conversation the AI did not answer in time, triggers campaigns, billing reminders and scheduled messages, delivers webhooks, sends service order deadline alerts, triggers calendar alerts and mirrors Google Calendar, sends read receipts, applies the discard patterns and resumes user deletions in the background.
License synchronizationEvery 10 minutesPlan, status, update request and any support VPN session.
ERP mirrorEvery 15 minutesUpdates the local copy of the ERP records used to identify the customer by phone number.
Updater Self-hosted installationEvery 30 minutesApplies a new version, when there is one.
BackupDaily, at around 2 a.m.Sends the database to Ravi Systems and writes the local backup, if enabled.
RetentionDaily, at around 3:40 a.m.Deletes closed conversations older than the Closed conversation retention (days) period and cleans up old webhook delivery records.
Server executor Self-hosted installationWhen each request arrives and every 5 minutesApplies the network, certificates and VPNs requested by the panel and checks certificate validity.

The schedules follow the time zone configured on the server and have a small random variation, so that not all installations call the central server at the same second. Each routine fails on its own: a problem in billing reminders, for example, does not stop the round-robin from distributing the queue.