Skip to content

GitHub Repositories

All repositories are under Deployd-io on GitHub.

RepositoryTypeBranch StrategyPurpose
LogriteMasterControlInfrastructuremainMaster CLI, deployment docs, config
Logrite-UIServicemainReact frontend
Logrite-AIServicemainSpring Boot backend
logrite-analyzerServicemainAI log analyzer
logrite-semantic-apiServicemain onlyNeural search API
logrite-ai-serviceServicemain onlyAI chat service
logrite-mcp-serverServicemain onlyMCP compliance server
logrite-webhookServicemain onlyGitHub webhook receiver: forwards PR events to the backend (it no longer deploys)
logrite-docsServicemainThis documentation site (Astro Starlight)
logrite-downtime-trackerServicemainUptime probes and container stats
JobSearchDemo appmainDemo application (still on Coolify)
LogriteOpenSearchInfrastructure (historical)mainopensearch-mgr CLI + scripts of the pre-compose host; still a submodule, not deployed
OpenSearchForkmainOpenSearch engine fork
OpenSearch-DashboardsForkmainDashboards UI fork

Every service repo is a submodule of MasterControl, on main (the /dev/ in each path is the directory layout, not a branch). One clone gets them all:

Terminal window
gh repo clone Deployd-io/LogriteMasterControl
cd LogriteMasterControl
./scripts/dev-vm/bootstrap-repos.sh # init every submodule and put each on its branch

On the dev VM the checkout is /home/deployd/LogriteMasterControl. The OpenSearch forks are deliberately not submodules; clone them only if you need them:

Terminal window
gh repo clone Deployd-io/OpenSearch
gh repo clone Deployd-io/OpenSearch-Dashboards

The OpenSearch forks have two remotes:

Terminal window
# Check remotes
cd OpenSearch
git remote -v
# origin https://github.com/Deployd-io/OpenSearch (fetch)
# upstream https://github.com/opensearch-project/OpenSearch (fetch)
# Sync from upstream
git fetch upstream
git checkout main
git merge upstream/main
git push origin main

The prod installation 132075896 on Deployd-io covers every repo. Several workspaces can be bound to one installation; each binding may carry a repo name prefix that limits what that workspace reaches.

  • Bind: POST /api/v1/github/app/install/bind {installationId, workspaceId, orgLogin, repoNamePrefix?} with X-OAuth-Token from a GitHub admin of the account. repoNamePrefix is a case-insensitive prefix of the repo name after owner/. A blank string clears it; leaving it out keeps the current value. Changing it re-runs the admin check.
  • In the UI: Settings → Workspace → Source control → Link existing installation. It lists the installations your linked GitHub account can see and binds one, with an optional “Only repositories starting with” field. Without a GitHub token in this browser it shows “Connect GitHub first”.
  • Effect of a prefix: /sync-repos and the repo picker skip repos outside it. Enrol, ensure-project, add-repo and branch listing for such a repo answer 403 Repository <full> is outside this workspace's connection to installation <id> (repositories must start with '<prefix>').
  • PR events fan out: a PR goes to every workspace bound to the installation whose prefix admits the repo, not only the newest binding. The response carries projectIds for every project scanned.
  • PR-event handling is OFF on both estates (LOGRITE_PR_EVENTS_ENABLED unset; measured 2026-10-08: zero pr-event calls on prod in 72 h). Until it is turned on, no PR is scanned anywhere and the fan-out above is dormant — AI-coding findings come from the plugin and run_compliance_scan.

Today ws 252 (ops) is bound with no prefix. The healthcare demo workspace is bound with repoNamePrefix: "carevault-", so it sees only carevault-* repos. Once PR events are on, a PR is scanned in each bound workspace that has a project for its repo.

Repo: Deployd-io/LogriteMasterControl Local: the MasterControl checkout (/home/deployd/LogriteMasterControl on the dev VM) Contents: the service submodules, ops/ (the deploy platform, management console, deploy watcher, backups, CI runners), scripts/dev-vm/, Data Prepper config; plus the retired PM2-era cli/ (logrite-manager.js, RCA generator) kept for reference

Repo: Deployd-io/Logrite-UI Local: services/frontend/dev/Logrite-UI/ (submodule) Stack: React 19 + Vite 7 + Redux Toolkit + Tailwind CSS

Repo: Deployd-io/Logrite-AI Local: services/backend/dev/Logrite-AI/ (submodule) Stack: Java 17 + Spring Boot 3 + Maven

Repo: Deployd-io/logrite-analyzer Local: services/analyzer/dev/logrite-analyzer/ (submodule) Stack: Node.js + TypeScript + Groq

Repo: Deployd-io/logrite-semantic-api Local: services/semantic-search/dev/logrite-semantic-api/ (submodule) Stack: Node.js + TypeScript + OpenSearch k-NN

Repo: Deployd-io/logrite-ai-service Local: services/ai-service/dev/logrite-ai-service/ (submodule) Stack: Node.js + TypeScript + Groq + SQLite

Repo: Deployd-io/logrite-mcp-server Local: services/mcp/dev/logrite-mcp-server/ (submodule) Stack: Python 3.10 + FastAPI + uvicorn

Repo: Deployd-io/logrite-webhook Local: services/webhook/dev/logrite-webhook/ (submodule) Stack: Node.js built-ins only

Repo: Deployd-io/LogriteOpenSearch Local: services/opensearch-cli/dev/LogriteOpenSearch/ (submodule) Contents: opensearch-mgr CLI, scripts, dashboards. Historical: written for the pre-compose host; OpenSearch now runs as the opensearch compose service and nothing in this repo is deployed.

Repo: Deployd-io/OpenSearch Local: not cloned by default (gh repo clone Deployd-io/OpenSearch) Upstream: opensearch-project/OpenSearch Version: 3.4.0-SNAPSHOT

Repo: Deployd-io/OpenSearch-Dashboards Local: not cloned by default (gh repo clone Deployd-io/OpenSearch-Dashboards) Upstream: opensearch-project/OpenSearch-Dashboards