mrkeyoor.com_
Wed 16 Sept 06:26 UTC
Self-Hostedevaluationupdated 16 Sept 2026

octo-server review

OCTO Server is the Go backend for a self-hosted workplace where people can chat, manage shared spaces, and work with AI agents. It supplies the APIs, permissions, message routing, and agent scheduling, while separate OCTO apps provide the web interface, admin console, tasks, and summaries.

Verdict

Our octo-server build succeeded in 186 seconds, but 39 of 156 test results failed, so this is an active platform backend to trial as a complete stack rather than ship from one clean compile. OCTO makes sense when OpenClaw agents inside shared workplace spaces are the reason for the project. Choose a narrower chat system if you do not want to operate WuKongIM, data services, storage, and several companion applications.

We ran it

Lab card: what happened when we ran octo-serverScreenshot of octo-server (github.com/Mininglamp-OSS)
Install✓ · 67s527 packages
Build✓ · 186s
Tests✗ · 187s117 passed · 39 failed of 156 (go test)
Repo3077 files~545,265 lines of source · 98.1 MB · 17 CI workflows · Dockerfile · tests dir

Answers from our run

Does octo-server build from source?

Dependencies installed in 67 seconds (527 packages), and the build succeeded in 186 seconds. We cloned commit 1d75e21 into a clean Debian container with 3 CPUs and no project-specific setup.

Do octo-server's tests pass?

Not all of them: 117 of 156 passed and 39 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use octo-server?

Anyone seeking a standalone chat binary: the recommended trial stack names 10 components and lives in the separate octo-deployment repository.

What are the alternatives to octo-server?

Mattermost, Rocket.Chat, Zulip. Our octo-server build succeeded in 186 seconds, but 39 of 156 test results failed, so this is an active platform backend to trial as a complete stack rather than ship from one clean compile.

Setup2/5Build passed; useful deployment spans 10 named components
Docs4/5Detailed English quickstart, config, and deployment boundaries
Community4/5September pushes, releases, issue reports, and closures
Maturity3/5v1.18.0 is current, but tests and bot defects need attention

Who it’s for

Teams that want one self-hosted workplace for chat and OpenClaw-based agents.
Go developers prepared to work across OCTO's server, clients, shared library, and deployment repositories.
Operators who already understand MySQL, Redis, object storage, reverse proxies, and WuKongIM.
Organizations willing to test bot routing and access boundaries against their own space model.

Who it’s NOT for

Anyone seeking a standalone chat binary: the recommended trial stack names 10 components and lives in the separate octo-deployment repository.
Teams that require a clean test run before evaluation: our go test run reported 39 failures out of 156, and the supplied log tail did not identify their causes.
Small teams without a service operator: the local path requires WuKongIM v2, MySQL 8, Redis 7, and configuration for storage, proxies, and service credentials.
Bot fleets sharing one egress IP or one bot across several Spaces without their own regression tests: open issues #890 and #891 report rate-limit collateral and replies routed to the wrong Space.

Setup reality

Our sandbox install succeeded in 67 seconds and pulled 527 packages. The build passed in 186 seconds. Tests exited 1 after 187 seconds: go test reported 117 passed and 39 failed out of 156. The log tail showed several packages succeeding, followed only by FAIL, so it does not establish why the failures occurred.

A useful runtime needs WuKongIM v2, MySQL 8, Redis 7, and optionally S3-compatible storage. The full trial path also adds web, admin, task, summary, MinIO, and nginx services through a separate deployment repository. Bot connections use a Node.js daemon.

The docs require Go 1.25 and place --config before the subcommand. Operators must align the WuKongIM manager token, supply database and storage credentials, set trusted proxy ranges where needed, and replace the fixed test SMS code in the sample configuration before production use.

OCTO Server is one backend inside a 10-part trial stack

OCTO Server provides REST and WebSocket APIs for the OCTO workplace. It handles accounts, shared Spaces, files, permissions, message fan-out, and sessions for Lobster agents powered by OpenClaw. WuKongIM carries the real-time messaging layer. Web, mobile, admin, task, summary, shared-library, and adapter work live in companion repositories. That makes this repository the control point for a larger product, rather than a complete workplace by itself.

Its size matches that responsibility. Our checkout contained 3,077 files and about 545,265 lines of source, occupying 98.1 MB before installation. The code includes SQL migrations, storage adapters, API handlers, agent routing, and 17 CI workflow files. There is also a Dockerfile and a tests directory. Apache-2.0 licensing is straightforward, while the NOTICE explains that the server derives from TangSengDaoDaoServer and uses WuKongIM.

Local setup still depends on four other systems

The recommended trial path is the separate octo-deployment repository. Its Compose setup names 10 parts: server, admin, web, matter, smart summary, WuKongIM, MySQL, Redis, MinIO, and nginx. That route is the sensible way to see the product. Building this repository alone produces a backend with nowhere useful to store data, no messaging core, and no user interface.

Backend development has a shorter list, though it is still infrastructure work. The docs require Go 1.25, WuKongIM v2, MySQL 8, and Redis 7. Object storage is optional for file features. Our install pulled 527 packages in 67 seconds, which is reasonable for a Go project this large. Runtime setup takes longer because database schemas, the WuKongIM manager token, storage credentials, and reachable service addresses must all agree.

The quickstart gets several sharp details right. --config must appear before the subcommand because Go's flag parser stops at the first positional argument. Trusted proxy ranges affect which forwarded client address is accepted. The sample configuration also includes a fixed 123456 test SMS code. Anyone taking the local path should inspect that file line by line instead of treating it as a production preset.

What happened when we ran it

Our sandbox install succeeded in 67 seconds with 527 packages, and the build completed successfully in 186 seconds. We used commit 1d75e21 in an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The successful compile matters because the repository spans roughly 545,265 source lines and depends on other OCTO modules. It proves that the supplied checkout could be built in the stated environment.

The test command failed with exit code 1 after 187 seconds. go test reported 117 passed and 39 failed out of 156. The final log lines showed successful packages including pkg/space, pkg/user, several lint tools, and tools/workflow-guards, then ended with FAIL. That tail does not show the individual failure messages, so it cannot support a diagnosis. The useful result is narrower: this commit did not pass its complete test run on our fresh box.

Two open bot defects can affect shared deployments

Issue #890 describes a global per-IP limit running before authentication for two bot polling endpoints. According to the report, requests carrying an invalid credential consumed the same bucket as healthy bots behind that address. The reporter recorded valid heartbeat requests receiving 503 responses. Teams placing many agents behind one NAT or gateway should reproduce that path before depending on bot liveness.

Issue #891 covers a different boundary. A bot belonging to 2 Spaces can reply to a direct message under its earliest joined Space when the client does not send X-Space-ID. The issue says the reply is then absent from the Space where the user wrote. Our 187-second test run does not tell us whether either scenario is covered, and the two reports remained open when fetched. Both matter more than cosmetic roughness because they affect which agent receives capacity and where a reply appears.

September activity is fast, while the test result blocks trust

The repository was pushed on September 13, 2026, and release v1.18.0 arrived on September 7. That release added OAuth2 identity-provider work, search highlighting, an agent runtime shape, and the foundation for project collaboration. On September 16, GitHub showed 1,043 stars, 34 open issues and pull requests combined, and 20 open issues in issue search. Recent reports were also being closed, so the queue is active rather than abandoned.

Activity does not cancel the sandbox result. A 186-second successful build is encouraging, while 39 failed test results leave too much uncertainty for an unqualified production recommendation. The documentation is unusually candid about the separate deployment source, service versions, retired Compose files, and even stale Makefile targets. That earns confidence in the instructions. It does not explain the failures our run recorded.

The agent workplace is the reason to accept the operating cost

OCTO's distinct choice is to treat agents as participants in shared Spaces instead of adding a chatbot to ordinary team chat. The server owns agent sessions, tool-call execution, routing, and access checks alongside human conversations. If that model matches what you are building, the 10-part stack has a coherent purpose. If you mainly need channels and direct messages, Mattermost, Rocket.Chat, or Zulip asks you to accept fewer OCTO-specific moving pieces.

Start with octo-deployment, then test multi-Space bot replies, shared-IP throttling, member removal, and file storage using your own topology. Keep the trial away from production data until the complete suite is understood. Our run proved that 527 packages can install and the code can build; it also left 39 of 156 test results red. That is enough evidence for a serious evaluation, and too little for a blind rollout.

Alternatives

ProjectWhat it isPick it when
Mattermost gh↗A self-hosted collaboration platform centered on team communication and software operations.pick this instead when established team messaging matters more than OCTO's OpenClaw agent model.
Rocket.Chat gh↗A self-managed communications platform with a broad app and integration surface.pick this instead when conventional chat deployment and integrations are the main requirements.
Zulip gh↗A self-hosted team chat organized around topics inside long-running streams.pick this instead when structured asynchronous discussion matters more than embedded AI agents.

What people are saying

  1. [github-trending] Mininglamp-OSS/octo-server

Sources

  1. OCTO Server repository
  2. OCTO Server README
  3. OCTO Server quickstart
  4. OCTO Server sample configuration
  5. OCTO Server v1.18.0 release
  6. Bot rate-limit issue #890
  7. Multi-Space bot reply issue #891

More self-hosted reviews

newsnow · forem · runtime · openfang · SparkyFitness · sonic · the whole board →