Skip to content

feat(box): add single-host Compose deployment - #120

Merged
DIvanCode merged 10 commits into
masterfrom
codex/issue-119-local-deployment
Aug 10, 2026
Merged

feat(box): add single-host Compose deployment#120
DIvanCode merged 10 commits into
masterfrom
codex/issue-119-local-deployment

Conversation

@DIvanCode

@DIvanCodeDIvanCode commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Что изменено

  • весь автономный deployment-комплект размещён в Box/;
  • Box/docker-compose.yml использует релизные образы CoDuels 1.0.0 и одну сеть coduels;
  • порты, bind-адреса, межсервисные URL/endpoints и полная конфигурация трёх PostgreSQL-контейнеров явно заданы в Compose;
  • оставшиеся Box/env/*.env содержат только нетопологические прикладные настройки;
  • Kafka-настройки полностью удалены: Duely и Taski используют REST polling, Taski и Exesh полагаются на REST-only defaults из refactor(config): make service defaults REST-only CoDuels-Backend#338;
  • из OpenTelemetry-настроек оставлен только Otel__IsEnabled=false;
  • Nginx явно перечисляет production-подобные маршруты Duely и Taski без regex;
  • снаружи открыт только Nginx на порту 80; доступны Frontend, /api, WebSocket и /exesh-dashboard/;
  • volumes БД называются duely-postgres, taski-postgres, exesh-postgres; временные Exesh storage volumes отсутствуют.

Зависимость

Образы 1.0.0 были собраны до REST-only defaults из Backend PR #338. Перед рабочим запуском Box нужно выпустить новую версию образов из обновлённого Backend и заменить закреплённые теги в Compose.

Проверка

  • docker compose -f Box/docker-compose.yml config --quiet;
  • nginx:1.29.2 nginx -t;
  • проверка отсутствия Kafka-переменных в Box;
  • проверка, что только Nginx публикует порт хоста;
  • Backend: Taski и Exesh go test ./..., 445 Duely tests и Taski–Exesh e2e с verdict Accepted.

Полный Box stack локально не запускался.

Closes#119.

@gitguardian

gitguardianBot commented Aug 10, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 3 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secrets in your pull request
GitGuardian idGitGuardian statusSecretCommitFilename
35926904TriggeredUsername Password8e8156cenv/duely-migration.envView secret
35926904TriggeredUsername Password8e8156cenv/duely.envView secret
35926904TriggeredUsername Password639825aBox/docker-compose.ymlView secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@DIvanCodeDIvanCode changed the title feat(deploy): add single-host Compose stackfeat(box): add single-host Compose deploymentAug 10, 2026
@DIvanCode
DIvanCodeforce-pushed the codex/issue-119-local-deployment branch from 653c0ce to 165e9b8CompareAugust 10, 2026 10:29
@DIvanCode
DIvanCode marked this pull request as ready for review August 10, 2026 11:34
@DIvanCode
DIvanCode merged commit f4719b2 into masterAug 10, 2026
1 check passed
@DIvanCode
DIvanCode deleted the codex/issue-119-local-deployment branch August 10, 2026 11:34

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:1d495da335

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadBox/env/duely.env
ASPNETCORE_ENVIRONMENT=Production

# Ключ подписи JWT. Обязательно замените его перед публичным запуском.
JwtToken__SecretKey=CHANGE_ME

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Provide a JWT placeholder that can actually sign tokens

When this stack is started with the advertised out-of-box defaults, CHANGE_ME is only 9 bytes, below the 32-byte minimum for the HMAC-SHA256 key used to issue Duely JWTs. Token generation therefore fails at runtime during registration or login, leaving the application unusable even for a private smoke test; use a sufficiently long non-production placeholder while retaining the instruction to replace it.

Useful? React with 👍 / 👎.

driver_opts:
type: none
o: bind
device: /tasks/storage

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Provision the task-storage bind source before startup

On a fresh host where /tasks/storage does not already exist, the local volume driver's bind mount cannot be created and docker compose up fails while mounting taski-storage. Nothing in this deployment creates or populates that absolute host path, so the purported autonomous stack does not start without undocumented preparation; add a setup step that provisions the task storage or use a source that Compose can create.

Useful? React with 👍 / 👎.

Sign up for freeto 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.

[box] Сформировать файлы конфигурации для локального деплоя

1 participant

@DIvanCode