Skip to content

[docker] Bundle XTM One in the default stack#131

Open
SamuelHassine wants to merge 5 commits into
masterfrom
feat/introduce-xtm-one
Open

[docker] Bundle XTM One in the default stack#131
SamuelHassine wants to merge 5 commits into
masterfrom
feat/introduce-xtm-one

Conversation

@SamuelHassine
Copy link
Copy Markdown
Member

@SamuelHassine SamuelHassine commented May 30, 2026

Proposed changes

Adds XTM One alongside OpenAEV in the default compose stack so docker compose up -d brings up the AI assistant next to the platform.

  • New redis service (required by XTM One) and a dedicated pgsql-xtm-one service (pgvector/pgvector:pg17) with its own credentials and volume, isolated from the OpenAEV pg cluster.
  • New xtm-one and xtm-one-worker services pulled from the published xtmone/platform:latest and xtmone/worker:latest images (hub.docker.com/u/xtmone), reusing the existing minio. Images are pinned to :latest like openaev/platform.
  • xtm-one is exposed on host port 8090; BASE_URL and FRONTEND_URL both resolve to the templated ${XTM_ONE_EXTERNAL_SCHEME}://${XTM_ONE_HOST}:${XTM_ONE_PORT} (no hard-coded internal hostnames). Its healthcheck uses curl (present in the image; wget is not).
  • OpenAEV is wired to XTM One via OPENAEV_XTM_ONE_URL / OPENAEV_XTM_ONE_TOKEN and the shared PLATFORM_REGISTRATION_TOKEN.
  • .env.sample documents the new XTM ONE block and the mandatory-to-rotate PLATFORM_REGISTRATION_TOKEN. Admin email defaults to admin@filigran.io.

This mirrors the unified xtm-docker stack (FiligranHQ/xtm-docker#15); the OpenCTI docker repo receives the same treatment via OpenCTI-Platform/docker#578.

Related issues

Adds XTM One alongside OpenAEV in the default compose stack:

- New redis service (required by XTM One) and a dedicated
  pgsql-xtm-one service (pgvector/pgvector:pg17) with its own
  credentials and volume, isolated from the OpenAEV pg cluster.
- New xtm-one + xtm-one-worker services (published filigran images),
  reusing the existing minio.
- xtm-one exposed on host port 8090; BASE_URL and FRONTEND_URL both
  resolve to the templated
  ${XTM_ONE_EXTERNAL_SCHEME}://${XTM_ONE_HOST}:${XTM_ONE_PORT}.
- OpenAEV wired to XTM One via OPENAEV_XTM_ONE_URL / OPENAEV_XTM_ONE_TOKEN
  and the shared PLATFORM_REGISTRATION_TOKEN.
- .env.sample documents the XTM ONE block and the mandatory-to-rotate
  PLATFORM_REGISTRATION_TOKEN.
The XTM One images are published on Docker Hub as xtmone/platform and
xtmone/worker, not filigran/xtm-one(-worker).
Use admin@filigran.io as the default admin email for OpenAEV and XTM One
in .env.sample (with a default password) so the shared JWT email claim
resolves on the platform. Admin emails live in .env.sample only; none are
hard-coded in the compose file. Unify the XTM One comments to match the
other docker repos.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Bundles XTM One into the default Compose stack so a single docker compose up -d starts OpenAEV alongside XTM One. Adds the supporting infrastructure (Redis, dedicated pgvector Postgres) and wires OpenAEV to XTM One via a shared registration token.

Changes:

  • Add redis, pgsql-xtm-one, xtm-one, and xtm-one-worker services plus redisdata/pgsqlxtmonedata volumes in docker-compose.yml, and wire OpenAEV with OPENAEV_XTM_ONE_URL/OPENAEV_XTM_ONE_TOKEN.
  • Add a new XTM ONE block and a shared PLATFORM_REGISTRATION_TOKEN to .env.sample.
  • Replace blank OPENAEV_ADMIN_EMAIL/OPENAEV_ADMIN_PASSWORD placeholders with default values (admin@filigran.io / changeme).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
docker-compose.yml Adds Redis, dedicated pgvector Postgres, XTM One platform/worker services, related volumes, and OpenAEV→XTM One wiring.
.env.sample Documents new XTM One variables and PLATFORM_REGISTRATION_TOKEN; gives OpenAEV admin email/password concrete defaults.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docker-compose.yml Outdated
Comment thread docker-compose.yml
Comment thread docker-compose.yml Outdated
Comment thread .env.sample
Use xtmone/platform:latest and xtmone/worker:latest directly, matching the
opencti/platform:latest convention, and drop the XTM_ONE_VERSION variable
from .env.sample.
Use curl for the XTM One healthcheck (the xtmone/platform image ships
curl, not wget), matching the HTTP-probe style of the other services.
@SamuelHassine
Copy link
Copy Markdown
Member Author

All review threads addressed and resolved.

Note: I can't self-approve this PR (I opened it) — it needs a maintainer approval to merge.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants