GeekAI: a self-hosted AI creation platform in Go and Vue3
AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 ChatGPT, Azure, ChatGLM,讯飞星火,文心一言等多个平台的大语言模型。支持 MJ AI 绘画,Stable Diffusion AI 绘画,微博热搜等插件工具。采用 Go + Vue3 + element-plus 实现。
At a glance
- What is it?
- GeekAI bundles chat, image, audio, video and mind-map generation behind one Go and Vue3 codebase with an admin console. It suits teams that want to run their own multi-model AI workspace, and it is heavier than a single-model wrapper.
- Who is it for?
- GeekAI fits teams that want a self-hosted, multi-model AI creation workspace with a built-in admin console and billing, and who accept a Docker Compose deployment with MySQL and Redis behind it. It is the wrong tool if you only need one chat model behind an API, or if you want the hosted service without operating the stack.
- 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 3 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 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What GeekAI solves, and for whom
Most teams that want AI generation inside a product end up gluing together several vendor SDKs, a user table, a credit system and an admin page. GeekAI is an attempt to ship that glue as one project. The README describes it as a full open source solution with an operations admin console that works out of the box, integrating large language models from ChatGPT, Azure, ChatGLM, iFlytek Spark and ERNIE Bot, plus AI painting through MidJourney and Stable Diffusion, and plugins such as Weibo trending topics. The repository description adds the stack: Go, Vue3 and element-plus.
The audience is narrower than the marketing implies. This is for people who intend to operate a multi-tenant AI site: registration and login, role permissions, credit top-ups, per-use or subscription billing, consumption records. The README lists those under a commercial-ready heading. If you are a solo developer who wants a chat box on a page, the user system and billing tables are overhead you will carry without using. If you are running a creator platform or an internal AI portal where different users burn different amounts of quota, the pieces already exist and you are configuring rather than building.
The README also positions it for private deployment, and that comes with an explicit cost: private deployments do not support upgrades and require manual upgrades. That single line changes the maintenance calculus more than any feature list. You are not tracking a hosted product that updates itself; you are operating a fork of your own.
How the pieces fit: Go backend, Vue3 front end, MySQL and Redis
The architecture is a conventional separated web application. The backend is Go with the Gin framework, backed by MySQL and Redis. The front end is Vue3 with Element Plus for the desktop admin and user interface, and Vant for mobile, so one deployment serves both. The repository layout reflects that split: api/, config/, database/, docker/, build/, web/ and desktop/ sit at the top level, alongside documentation directories and agent configuration files such as AGENTS.md and CLAUDE.md.
Redis is not incidental. The README claims a multi-layer caching strategy and a response speed improvement of 80 percent, a number the README does not substantiate, so treat it as a design intention rather than a measurement. What is verifiable from the stack is that Redis is a required runtime dependency, not an optional accelerator you can drop for a small install.
Model access is abstracted. The README names ChatGPT, Claude, Azure, ChatGLM, iFlytek Spark and ERNIE Bot on the conversation side, MidJourney, DALL-E, Nano-Banana, Jimeng and Kling on the image side, Suno for music, and Luma, Kling, Jimeng and Veo3 for video. Each of those is an external service with its own credentials and its own quota rules, so the platform is a router and a billing layer in front of providers rather than a model host. File output goes to one of several object stores: Qiniu, Alibaba Cloud OSS, Tencent Cloud OSS or Minio. That choice matters for private deployment, because Minio is the only one on that list you can run inside your own network without a cloud account.
Generation is streamed. The README states that responses are streamed so the creation process does not stall, which is what you would expect from a chat product but also applies to the longer-running image and video tasks, where the UI has to show progress while a remote provider works.
Installing GeekAI with docker-compose
The README gives a two-step deployment. First install Docker and docker-compose by whatever means suits your machine; the README explicitly leaves that to the reader. Then, from the repository root, run the compose file that ships in the docker/ directory.
docker-compose up -dThat starts the stack detached. Because the compose file is in the repository rather than pulled from a registry, you should read it before running it: it is where the service topology, ports and volume mounts are defined, and the README does not enumerate them. After the containers report healthy, the web interface and the admin console are served from the same deployment, and the README points to https://chat.geekai.me as a live demo of what that looks like.
Configuration lives under config/ and the schema under database/. The README does not spell out the individual keys, so the practical first step after the containers come up is to open the configuration files and set your model provider credentials, your object storage choice and your database connection. The documentation site at https://docs.geekai.me is the place the README directs you for deployment and API development detail; the README itself stops at the compose command.
A realistic first use is a single conversation against one provider. Register an account in the running instance, confirm the admin console loads and that you can see the user you just created, then wire one chat model and send a message. Doing it in that order separates deployment problems from credential problems, which is the failure mode that eats the most time on a first install.
Where GeekAI gets in the way
The upgrade story is the sharpest limitation, and the README states it plainly: private deployment does not support upgrades and requires manual upgrades. If you modify the code for your own needs, you own the merge for every future release. Releases are frequent enough that this is a real workload: v4.2.3 in November 2025, v4.2.8 and v4.3.0 in August 2026. Following that cadence by hand across a customized fork is not a background task.
The dependency surface is the second constraint. A working install needs Docker, MySQL, Redis, and at least one external model provider account. Every provider you enable is another credential to rotate, another quota to monitor and another set of terms to accept. The README lists many integrations, but each one is an integration you are choosing to operate.
Third, the README's performance and stability claims are unbacked. "80% faster" and "validated by a large number of users" appear without a benchmark, a methodology or a date. That does not make them false, but it means you cannot size hardware from the README. You will have to measure against your own traffic.
Finally, consider when GeekAI is simply the wrong shape. If your requirement is a chat completion endpoint behind your own authentication, a thin proxy is less code, fewer moving parts and no MySQL. If your requirement is a single image model, the multi-provider abstraction and the billing tables add surface area without adding capability. GeekAI earns its complexity when you need more than one modality, more than one provider and more than one class of user in the same system.
GeekAI compared with a single-provider chat UI
The obvious alternative is a self-hosted chat front end for one provider, of which there are many. The difference is not the chat box; it is what sits behind it. A single-provider UI typically stores conversations and forwards requests with one API key. GeekAI instead models users, credits, consumption records and administrative visibility as first-class data, and routes across a set of providers whose names appear in the README: ChatGPT, Claude, Azure, ChatGLM, iFlytek Spark and ERNIE Bot for text, and a separate set for images, audio and video.
That difference shows up in operations. With a single-provider UI, adding a second model means changing code. With GeekAI, it means adding credentials and configuration, assuming the provider is already integrated. The trade is that you now run MySQL and Redis, and you inherit a schema that assumes billing. If you never charge anyone, those tables are inert but not free: they are part of what you back up and what you migrate on every upgrade.
A second comparison is against the hosted service itself. The README links a demo at chat.geekai.me. If your goal is to use the product rather than operate it, the hosted instance removes the entire deployment and upgrade burden, at the cost of your data living on someone else's infrastructure and your customization being limited to what the service exposes. The README does not document a migration path between the two, so treat that as a one-way decision until you confirm otherwise.
Maintenance, releases and the Apache-2.0 licence
The project is not archived, and the last push was on 2026-09-13, one day before the date used for this review. Releases in the recent record are v4.3.0 on 2026-08-11, v4.2.8 on 2026-08-03 and v4.2.3 on 2025-11-26. The gap between November 2025 and August 2026 is worth noting if you plan to depend on a steady cadence; the project moved in bursts over that period rather than continuously.
Licensing is Apache-2.0, which permits commercial use and modification and includes an explicit patent grant. It also requires that you preserve copyright and licence notices and state significant changes. That last obligation is easy to miss when you fork for a private deployment and edit the code: your modified distribution should carry a note about what you changed. This is a description of the licence terms, not legal advice; have your own counsel review how you distribute.
One licensing question the repository does not answer is the status of the model providers themselves. Apache-2.0 covers the GeekAI code. It does not cover the terms of ChatGPT, MidJourney, Suno or any other service you connect, and those terms govern commercial use of their output. The README lists the integrations without discussing that boundary, so it is on you to check each provider you enable.
The upgrade cost is the number that should drive your decision. Because private deployments require manual upgrades, the effort scales with how far you have diverged from upstream. A deployment that only changes configuration files is a pull and a restart. A deployment that changes Go handlers and Vue components is a merge on every release, and the release history shows there is something to merge several times a year.
Editorial conclusion
GeekAI fits teams that want a self-hosted, multi-model AI creation workspace with a built-in admin console and billing, and who accept a Docker Compose deployment with MySQL and Redis behind it. It is the wrong tool if you only need one chat model behind an API, or if you want the hosted service without operating the stack. Before adopting it, read the deployment section of docs.geekai.me, confirm which model providers you actually have credentials for, and check whether the private deployment path is acceptable given that the README states private deployments do not support upgrades and require manual upgrades.
Frequently asked questions
What is GeekAI?
GeekAI is an open source AI creation platform that integrates multiple large language models and image, audio and video generation services behind one interface. It is built with Go, Gin, MySQL and Redis on the backend and Vue3 with Element Plus and Vant on the front end, and it ships with a user system, billing and an admin console.
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. Configuration lives under config/ and the database schema under database/, with deployment detail in the documentation at docs.geekai.me.
What model providers does GeekAI support?
The README names ChatGPT, Claude, Azure, ChatGLM, iFlytek Spark and ERNIE Bot for conversation, MidJourney, DALL-E, Nano-Banana, Jimeng and Kling for images, Suno for music, and Luma, Kling, Jimeng and Veo3 for video. Each provider needs its own credentials and is subject to its own terms.
Can I upgrade a private GeekAI deployment?
The README states that private deployment does not support upgrades and requires manual upgrades. In practice that means you track upstream releases yourself rather than applying an in-place update, and the effort grows with how much you have modified the code.
What licence does GeekAI use?
The repository is licensed under Apache-2.0, which allows commercial use and modification and includes a patent grant. It requires preserving copyright and licence notices and stating significant changes when you redistribute modified code.
Community notes