mrkeyoor.com_
Tue 29 Sept 15:38 UTC
Self-Hostedevaluationupdated 29 Sept 2026

opencti review

OpenCTI is a self-hosted workspace for collecting, connecting, investigating, and sharing cyber threat intelligence. It gives analysts a STIX-based knowledge graph, a web interface, a GraphQL API, and connectors to systems such as MISP and TheHive.

Verdict

Our OpenCTI build failed in 15 seconds and its test command failed in 13 seconds, so commit fd1cfda did not give us a green source checkout in a fresh Node 22 container. Adopt it for a staffed threat-intelligence program that needs the graph, connectors, and analyst workflow enough to operate the surrounding services. For a small IOC-sharing job or a team without search and queue operations, MISP or a narrower repository will demand less infrastructure.

We ran it

Lab card: what happened when we ran openctiScreenshot of opencti (opencti.io)
Install✓ · 10s140 packages · 73 MB
Build✗ · 15s
Tests✗ · 13sran, no count parsed
Repo6593 files~895,190 lines of source · 223.1 MB · 20 CI workflows

Answers from our run

Does opencti build from source?

Dependencies installed in 10 seconds (140 packages), and the build failed. We cloned commit fd1cfda into a clean Debian container with 3 CPUs and no project-specific setup.

Do opencti's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use opencti?

A small team seeking a single-container IOC list: the official stack depends on Elasticsearch or OpenSearch, Redis, RabbitMQ, S3-compatible storage, and workers.

What are the alternatives to opencti?

MISP, TheHive, Yeti. Our OpenCTI build failed in 15 seconds and its test command failed in 13 seconds, so commit fd1cfda did not give us a green source checkout in a fresh Node 22 container.

Setup1/5Build and tests failed; production needs several stateful services
Docs5/5Detailed deployment, configuration, connector, and analyst guides
Community5/510,064 stars and same-day issue, pull request, and release activity
Maturity4/5Version 7 is active, but our source validation did not pass

Who it’s for

Security teams that need analysts to connect indicators, threat actors, reports, incidents, and original sources.
Organizations already able to operate search, queues, object storage, workers, backups, and access controls.
CTI programs exchanging STIX data or integrating MISP, TheHive, and MITRE ATT&CK.
Platform teams that want a GraphQL API and connector ecosystem around a shared intelligence model.

Who it’s NOT for

A small team seeking a single-container IOC list: the official stack depends on Elasticsearch or OpenSearch, Redis, RabbitMQ, S3-compatible storage, and workers.
Source-based deployments that require a green fresh-container check: our build and test commands both failed at commit fd1cfda.
Hosts with tight memory ceilings: OpenCTI's Node runtime defaults to an 8 GB limit, and the documented Redis stream can use around 8 GB by itself.
Buyers assuming every feature uses the Community Edition license: OpenCTI documents separate Community and Enterprise editions.
Environments that prohibit outbound product analytics without prior review: the telemetry guide says anonymous usage metrics are sent to Filigran every 6 hours when reachable.

Setup reality

Our sandbox installed 140 Yarn packages in 10 seconds at commit fd1cfda, using 73 MB on disk. The build failed after 15 seconds with exit 130, and the test command failed after 13 seconds with exit 1. The checkout contained 6,593 files, about 895,190 source lines, and occupied 223.1 MB.

The build log says opencti-graphql:build failed and opencti-front:build was not run because a dependency failed or Nx bail was active. The test tail names failures in GraphQL tests, frontend tests, worker development startup, and frontend end-to-end tests. It does not show the underlying exceptions.

Production also needs Elasticsearch or OpenSearch, Redis, RabbitMQ, S3-compatible storage, OpenCTI workers, secrets, and persistent volumes. The official Docker setup lives in a separate repository; this source checkout has no Dockerfile.

OpenCTI links threat facts back to people and sources

OpenCTI is built for intelligence analysis rather than a flat indicator feed. It stores technical observables alongside threat actors, campaigns, victimology, reports, confidence, and first or last seen dates. Relationships use a schema based on STIX 2, so an analyst can move from an IP address to the malware, intrusion set, report, and source that give it meaning. The web interface and GraphQL API sit on the same model.

Imports, exports, feeds, and connectors move data between OpenCTI and other security tools. The README names MISP, TheHive, and MITRE ATT&CK, while a separate connector catalog expands that surface. This is useful when several teams need one evidence trail. It is excessive when the task is only to publish 20 indicators or subscribe to a few feeds, because the knowledge graph and connector lifecycle become additional systems to govern.

The official deployment needs at least four stateful dependencies

The production design is distributed. OpenCTI depends on Elasticsearch or OpenSearch for search, Redis for streams and coordination, RabbitMQ for work messages, and an S3-compatible bucket for files. Workers consume RabbitMQ jobs. The official Docker repository supplies Compose files, while the application repository we measured has no Dockerfile. Manual, Helm, and Terraform routes are documented too.

Capacity planning starts above hobby-server territory. The documentation says the Node runtime has an 8 GB default memory limit. Its default Redis stream can hold 2 million entries and use around 8 GB, before search, object storage, RabbitMQ, workers, connectors, and the web application are counted. A proof of concept can run smaller, but a production budget must come from retention, ingestion, connector count, and query load.

What happened when we ran it

Our sandbox installed 140 Yarn packages in 10 seconds at commit fd1cfda and used 73 MB after installation. The source tree itself was far larger: 6,593 files, roughly 895,190 lines of source, and 223.1 MB checked out. We found 20 CI workflow files, no root Dockerfile, and no tests directory. The install step succeeded in an unprivileged Node 22 Debian container with 3 CPUs and 8 GB of RAM.

The build failed after 15 seconds with exit 130. The final output says Nx could not complete the build target for two projects because opencti-graphql:build failed. It also says opencti-front:build was not run because its dependency failed or --nx-bail=true stopped the graph. The supplied log tail contains no lower-level compiler or runtime exception, so it does not support a claim about the cause.

The test tail names four failed targets without their exceptions

Our test command failed after 13 seconds with exit 1. Nx named opencti-graphql:test, opencti-front:test, opencti-worker:dev, and opencti-front:e2e as failed tasks. The summary reports a 2.5-second Nx run, a 1.3-second critical path, and 0 of 1 cached tasks. It does not provide individual test cases or a passed-test count.

That distinction matters. We cannot say the application logic is broken, that services were missing, or that Node 22 is incompatible from the tail alone. We can say the documented repository commands did not produce a green build or test result in our fresh 8 GB container. Anyone choosing a source deployment should reproduce both commands in the intended environment before planning custom connectors or patches.

Community and Enterprise editions use different terms

The README describes 2 editions. Community Edition uses Apache 2.0, while Enterprise Edition has its own license and adds paid capabilities. GitHub therefore reports no single SPDX license for the whole repository. Evaluate the Community feature set against requirements before treating OpenCTI as a cost-free replacement for a commercial CTI platform. Licensing and operations are separate decisions.

OpenCTI also sends anonymous usage statistics to Filigran when the telemetry endpoint is reachable. The documentation says pushes occur every 6 hours and exclude threat-intelligence content, personally identifiable information, and IP addresses. It lists platform, user-count, connector, feature-use, authentication, and AI-feature metrics. Regulated deployments should review that list, outbound network policy, and support-package logs before production.

September activity is high despite a queue of 2,188 items

GitHub showed 10,064 stars and 2,188 open issues and pull requests on September 29, 2026. That combined number is not a bug count. The repository was pushed the same day, and active work included dependency updates, connector fixes, observability, workflows, and configuration export. Release 7.260928.1 shipped one day earlier with a connector auto-upgrade fix. Maintenance is plainly active.

OpenCTI is credible for an organization building a real CTI practice, especially when STIX relationships and source attribution are central. Our failed 15-second build and 13-second test run prevent a clean recommendation for source contributors at fd1cfda. Start with the official deployment path, size the four stateful dependencies, confirm which edition contains the needed controls, and require a green environment-specific build before modifying the platform.

Alternatives

ProjectWhat it isPick it when
MISPA threat intelligence sharing platform centered on events, attributes, feeds, and communities.pick this instead when IOC exchange and established sharing communities matter more than OpenCTI's graph-centered analyst workspace.
TheHiveA security incident response and case management platform for analyst teams.pick this instead when investigations, tasks, and cases are the center of the workflow rather than a CTI knowledge base.
YetiA threat intelligence repository for observables, indicators, entities, feeds, and enrichment.pick this instead when you want a narrower intelligence repository and enrichment workflow.

What people are saying

  1. [github-trending] OpenCTI-Platform/opencti

Sources

  1. OpenCTI README
  2. OpenCTI installation guide
  3. OpenCTI usage telemetry guide
  4. Release 7.260928.1
  5. OpenCTI connector catalog

More self-hosted reviews

cap · Qwen3.8-Flash-Next-Single-DGX-Spark · superlocal · usque-custom-pro · anythingmcp · Calibre-Web-Automated · the whole board →