Ports and services

The services of the compose stack: what each runs, the ports it listens on and the volumes it keeps.

The whole stack as self-hosting runs it. Settings and secrets come from .env (see .env.example). The project is named after the checkout's folder, so a second checkout gets its own volumes and needs other ports in its .env.

The orbsearch image runs twice: as the Query API and as the indexer.

ServiceHost addressHost portPort inside
postgres127.0.0.15432 (POSTGRES_PORT)5432
meilisearch127.0.0.17700 (MEILISEARCH_PORT)7700
orbsearch127.0.0.1 (PUBLISH_ADDRESS)7800 (ORBSEARCH_PORT)7800
control127.0.0.1 (PUBLISH_ADDRESS)8000 (CONTROL_PORT)8000

postgres

Accounts, releases, imports and index runs.

imagepostgres:18.6-trixie
ports127.0.0.1:${POSTGRES_PORT:-5432}:5432
volumespostgres:/var/lib/postgresql

meilisearch

The search engine, holding only compiled indexes.

imagegetmeili/meilisearch:v1.54.3
ports127.0.0.1:${MEILISEARCH_PORT:-7700}:7700
volumesmeilisearch:/meili_data

orbsearch

The Query API (orbsearch serve), which storefronts call.

imagebuilt from crates/orbsearch/Dockerfile
ports${PUBLISH_ADDRESS:-127.0.0.1}:${ORBSEARCH_PORT:-7800}:7800
volumesstorage:/var/lib/orbsearch:ro
depends_onpostgres, meilisearch

Starts once postgres and meilisearch are healthy.

indexer

Index runs (orbsearch index): compiles a catalog snapshot and a release into Meilisearch and swaps them live.

imagebuilt from crates/orbsearch/Dockerfile
commandindex
volumesstorage:/var/lib/orbsearch
depends_onpostgres, meilisearch

Starts once postgres and meilisearch are healthy.

control

The control plane: the panel, the management API under /api/v1, and the schedule that fetches the feed URL.

imagebuilt from apps/control/Dockerfile
ports${PUBLISH_ADDRESS:-127.0.0.1}:${CONTROL_PORT:-8000}:8000
volumesstorage:/var/lib/orbsearch
depends_onpostgres

Starts once postgres is healthy.

Volumes

Accounts, releases, imports and index runs.

The search engine, holding only compiled indexes.

Catalog snapshots, written by the control plane, read and cleaned up by the indexer, inspected by the Query API.

Guide: What runs

On this page