goflylivechat is a free, open source customer support & success project written in HTML and released under Apache-2.0. It has 2,586 GitHub stars, 732 forks and 39 open issues, and was last pushed 13 months ago. On this registry it ranks #8 of 17 tracked projects in Customer Support & Success, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is goflylivechat?

What it is

GOFLY LIVE CHAT is an open-source live chat support system written in Go for self-hosted customer service workloads. It belongs to the Go web-application ecosystem and targets private-cloud deployments where an organization runs its own messaging backend, database, and web frontend instead of relying on a hosted support platform.

The project addresses the need for a website chat channel between visitors and support agents. It provides a server that listens for chat connections, a browser integration for opening a chat window, and a MySQL data layer for storing the application state. The repository topics also identify it as customer support, web chat, and chatbot software.

Key capabilities

  • Real-time messaging connects customers and support agents through WebSocket communication.
  • Popup integration embeds a chat widget on a website by loading chat-widget.js and calling CHAT_WIDGET.initialize with API_URL and AGENT_ID.
  • Direct agent links allow access to a chat session through a URL such as /livechat?user_id=agent.
  • MySQL persistence stores application data through GORM, with the database configured in mysql.json.
  • JWT-based access handling is indicated by the jwt-go dependency in the backend stack.
  • Command-line operation is provided through Cobra, including install, server, build, and run commands.
  • VueJS and ElementUI frontend components support the user-facing application interface.

Who uses it and how

  • A self-hosted support team runs the Go server on a private cloud or local network and connects it to a MySQL database.
  • A website operator embeds the popup script so visitors can start a chat without leaving the page.
  • An agent opens a direct chat link with a user_id parameter to participate in a conversation.
  • A public-facing deployment places a reverse proxy in front of the service so users access the chat through a domain name rather than port 8081.
  • A tester or learner builds the gochat binary and starts it with gochat server, optionally using -p and -d flags.

Getting started

The README instructs users to install MySQL version 5.5 or later, create a goflychat database, edit mysql.json, clone the repository, and run go run main.go install followed by go run main.go server. The service listens on port 8081, and a reverse proxy is recommended for domain access.

When to use it — and when not to

This project is useful for learning, testing, or private experiments with a self-hosted Go live-chat stack, because the README provides clear source-code installation and integration steps. A self-hoster must still operate MySQL, the Go server, a reverse proxy, and any domain configuration needed for public access. The README provides source-code installation only and does not mention a Docker image, hosted option, or package manager. The README explicitly states that the code is intended only for personal demonstration and testing and prohibits commercial use, despite the repository license metadata listing Apache-2.0, so it is not a safe choice for a production support system that requires commercial deployment.

project readme (upstream, from github) — read inline

GOFLY LIVE CHAT

Open-source live chat support system, built for modern customer service

​​Real-time messaging​​ - Instant connection between customers and support teams

Lightning-fast performance​​ - Powered by Golang for high-concurrency handling

Technical Architecture​

A modern stack built for performance and scalability​

  • Backend: gin, jwt-go, websocket, go.uuid, gorm, cobra
  • Frontend: VueJS, ElementUI
  • Database: MySQL

Installation & Usage

1. Set Up MySQL Database
  • Install and run MySQL (version ≥ 5.5).
  • Create a database:
  CREATE DATABASE goflychat CHARSET utf8mb4;
  • Configure Database Connection Edit mysql.json in the config directory:
{
	"Server":"127.0.0.1",
	"Port":"3306",
	"Database":"goflychat",
	"Username":"goflychat",
	"Password":"goflychat"
}
  • Install and Configure Golang Run the following commands:
wget https://studygolang.com/dl/golang/go1.20.2.linux-amd64.tar.gz
tar -C /usr/local -xvf go1.20.2.linux-amd64.tar.gz
mv go1.20.2.linux-amd64.tar.gz /tmp
echo "PATH=\$PATH:/usr/local/go/bin" >> /etc/profile
echo "PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc
source /etc/profile
go version
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
  • Download the Source Code

    Clone the repository in any directory:

git clone https://github.com/taoshihan1991/goflylivechat.git
cd goflylivechat  
  • Initialize the Database
go run main.go install
  • Run the Application
 go run main.go server
  • ​​Build executable
 go build -o gochat
  • ​​Run binary​​:
  Linux: ./gochat server (optional flags: -p 8082 -d)
  
  Windows: gochat.exe server (optional flags: -p 8082 -d)
  • Terminate the Process
   killall gochat

Once running, the service listens on port 8081. Access via http://[your-ip]:8081.

For domain access, configure a reverse proxy to port 8081 to hide the port number.

Customer Service Integration

Chat Link

http://127.0.0.1:8081/livechat?user_id=agent

Popup Integration

<script>
    (function(global, document, scriptUrl, callback) {
        const head = document.getElementsByTagName('head')[0];
        const script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = scriptUrl + "/static/js/chat-widget.js";
        script.onload = script.onreadystatechange = function () {
            if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
                callback(scriptUrl);
            }
        };
        head.appendChild(script);
    })(window, document, "http://127.0.0.1:8081", function(baseUrl) {
        CHAT_WIDGET.initialize({
            API_URL: baseUrl,
            AGENT_ID: "agent",
        });
    });
</script>

Important Notice

The use of this project for illegal or non-compliant purposes, including but not limited to viruses, trojans, pornography, gambling, fraud, prohibited items, counterfeit products, false information, cryptocurrencies, and financial violations, is strictly prohibited.

This project is intended solely for personal learning and testing purposes. Any commercial use or illegal activities are explicitly forbidden!!!

Copyright Notice

This project provides full-featured code but is intended ​​only for personal demonstration and testing​​. Commercial use is strictly prohibited.

By using this software, you agree to comply with all applicable local laws and regulations. ​​You are solely responsible for any legal consequences arising from misuse.​

Frequently asked questions

Is goflylivechat free to use?

goflylivechat is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does goflylivechat do?

开源在线客服系统GO语言开发GO-FLY,免费在线客服系统/GOFLY LIVE CHAT: open source self-hosted private cloud customer support live chat software by golang

What is goflylivechat written in?

goflylivechat is primarily written in HTML. Its source is publicly available at https://github.com/taoshihan1991/goflylivechat, and it has 2,586 GitHub stars.