Model or dataset
yangjian102621/geekai avatar
yangjian102621/geekai

GeekAI: a self-hosted multi-model AI workspace with a billing backend

AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 ChatGPT, Azure, ChatGLM,讯飞星火,文心一言等多个平台的大语言模型。支持 MJ AI 绘画,Stable Diffusion AI 绘画,微博热搜等插件工具。采用 Go + Vue3 + element-plus 实现。

4,711 stars1,073 forksVueApache-2.0

At a glance

What is it?
GeekAI bundles chat, image, music, video and mind-map generation behind one Go and Vue3 application, with a user system and admin console for operators who want to charge for it. The install is a single docker-compose command, but the documentation is thin on upgrades and provider keys.
Who is it for?
Adopt GeekAI if you are an operator who needs a multi-model chat and drawing front end with its own user, credit and admin layers, and you are comfortable reading Go source when a provider key or database field is not documented. Skip it if you only want a thin chat UI over one API, or if you need a documented upgrade path: the README states that private deployments do not support upgrades and must be upgraded by hand.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 18 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What GeekAI actually packages

GeekAI is not a single chat client. The README describes it as a full open source solution for AI assistants with an operations console included, and lists ChatGPT, Azure, ChatGLM, iFlytek Spark and Ernie among the language models it connects to, plus MidJourney and Stable Diffusion for image work. The repository topics add dalle3, midjourney, stable-diffusion, azure, chatgpt, go and element-plus. The intended user is someone running a service, not someone writing a script: the feature list includes registration and login, permission management, credit top-ups, per-use or monthly billing, and usage statistics. That combination is the point. Most open source chat front ends stop at the conversation; GeekAI ships the billing and admin layers alongside it, which is why the deployment story matters more here than the model list.

Go, Gin, MySQL, Redis and a Vue3 front end

The README states the backend is Go with Gin, MySQL and Redis, and the front end is Vue3 with Element Plus and Vant, with separate desktop and mobile adaptation. The repository layout backs that up: api/ and config/ for the server, web/ for the browser client, desktop/ for a packaged client, database/ for schema, docker/ for container assets, and build/ for build scripts. Model providers are therefore configuration, not code paths the user writes. The README also claims a multi-layer cache strategy and streaming responses, and lists cloud storage options including Qiniu, Alibaba OSS, Tencent OSS and Minio. Treat the cache claim as a statement in the README rather than a measured result; nothing in the repository gives a benchmark or a test method. What is verifiable is the shape: one Go service in front of several external providers, with MySQL and Redis as state, and a Vue3 client that talks to it.

Installing GeekAI with docker-compose

The README gives exactly two deployment steps: install Docker and docker-compose yourself, then run the startup command from the project root. The documentation site at docs.geekai.me is where the project points for anything beyond that, and the README does not enumerate environment variables, ports or default credentials.

bash
docker-compose up -d

After that command, the containers defined under docker/ start in the background. To confirm what is running and read the logs, the usual compose subcommands apply.

bash
docker-compose ps
docker-compose logs -f

The README does not state which port the web interface binds to, so that value has to come from the compose file or the docs site. A first real use is to open the running instance, register an account, and check that the admin console is reachable, since the README lists a complete administrator interface as a feature. Beyond that, enabling a specific model means supplying that provider's credentials; the repository keeps configuration under config/ and schema under database/, and the README does not document the field names. Plan to read those files rather than follow a step-by-step guide.

Private deployment and the upgrade problem

The README is unusually direct on one point: private deployment is supported, but private deployments do not support upgrades and require manual upgrading. That is a real operational constraint, not a footnote. It means the docker-compose path gives you a working system and no supported way to move it forward when the project publishes a new release. Releases exist and are frequent enough to matter: v4.2.3 in November 2025, v4.2.8 in August 2026, and v4.3.0 on 2026-08-11. Anyone running a private instance is therefore choosing between staying on an old version and performing the migration by hand. The README does not document rollback, nor does it describe what a manual upgrade involves. If your team cannot absorb that work, this is the wrong tool regardless of how many providers it integrates.

Where GeekAI is the wrong choice

Three cases stand out. First, if you want a chat interface over a single API key for personal use, the user system, credit ledger and admin console are overhead you will maintain and never use. Second, if you need a documented, supported upgrade path, the README rules that out for private deployments. Third, if you depend on a provider that is not in the list, GeekAI does not help you: the README names ChatGPT, Azure, ChatGLM, iFlytek Spark and Ernie for text, MidJourney, DALL-E, Nano-Banana, Jimeng and Kling for images, Suno for audio, and Luma, Kling, Jimeng and Veo3 for video. A model outside that set is not covered by the documentation. The README also makes broad claims, such as a cache strategy that improves response speed by 80 percent, without stating how that was measured; treat marketing lines in the README as claims, and the repository files as the evidence.

Compared with a plain chat UI such as LibreChat

The natural alternative is a chat front end that does one job, for example LibreChat, which focuses on conversation across providers. The difference in approach is scope. LibreChat is a client; GeekAI is a client plus a back office. GeekAI adds registration, permissions, credits, top-ups, subscription billing, statistics and an admin console, and extends past text into image, music, video and mind-map generation. That breadth is the reason to pick it, and also the reason it carries MySQL and Redis, a larger schema under database/, and a heavier container footprint. If your requirement is conversation, the smaller tool wins on install and upgrade surface. If your requirement is running a paid service with several generation modes under one account system, GeekAI is the one that already has the ledger.

Licence, maintenance and what to check before adopting

The licence is Apache-2.0, which permits commercial use and modification and includes a patent grant, with the usual obligations around notices and attribution. That is a permissive licence, not a copyleft one, so it does not force you to publish your own changes; it also means the project offers no warranty, and the README's stability claims are not a substitute for your own testing. Maintenance is current: the repository is not archived, and the last push was on 2026-09-13. The latest release is v4.3.0 from 2026-08-11. Before adopting, verify the compose file under docker/ for pinned image tags, the configuration under config/ for the providers you need, and the schema under database/ for anything your billing model requires. The README does not document rollback, so decide how you would recover from a failed manual upgrade before you deploy.

Editorial conclusion

Adopt GeekAI if you are an operator who needs a multi-model chat and drawing front end with its own user, credit and admin layers, and you are comfortable reading Go source when a provider key or database field is not documented. Skip it if you only want a thin chat UI over one API, or if you need a documented upgrade path: the README states that private deployments do not support upgrades and must be upgraded by hand. Before committing, verify two things in the repository: how config/ and database/ define the model providers you intend to enable, and whether the docker/ directory pins image tags you can reproduce.

Frequently asked questions

What is GeekAI?

GeekAI is an open source AI assistant platform with an operations console included, built with Go and Vue3. It connects several language models and image, audio and video generation services behind one user system, credit system and admin interface.

How do I install GeekAI?

The README gives two steps: install Docker and docker-compose yourself, then run docker-compose up -d from the project root. The README does not list ports or environment variables, and points to docs.geekai.me for further detail.

Which AI providers does GeekAI support?

The README names ChatGPT, Azure, ChatGLM, iFlytek Spark and Ernie for language models, MidJourney, DALL-E, Nano-Banana, Jimeng and Kling for images, Suno for music, and Luma, Kling, Jimeng and Veo3 for video.

Can I upgrade a privately deployed GeekAI instance?

The README states that private deployment is supported but does not support upgrades, and that upgrading must be done manually. The README does not document rollback or the steps involved in a manual upgrade.

Official sources

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. yangjian102621/geekai on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/yangjian102621-geekai.svg)](https://hysenlabs.com/projects/yangjian102621-geekai)