Skip to content

[codex] Complete Rust runtime cutover#4

Merged
ewilhelm1979-netizen merged 2 commits into
mainfrom
codex/complete-rust-cutover
Jun 7, 2026
Merged

[codex] Complete Rust runtime cutover#4
ewilhelm1979-netizen merged 2 commits into
mainfrom
codex/complete-rust-cutover

Conversation

@ewilhelm1979-netizen

Copy link
Copy Markdown
Owner

Summary

Completes the Rust runtime cutover by removing the remaining Django/Python application runtime and making the Rust Axum backend the only app process.

What changed

  • Removed the legacy Django/Python runtime tree: apps/, config/, templates/, manage.py, requirements*.txt, the root Python Dockerfile, and the Python Docker entrypoint.
  • Converted Docker Compose so app builds rust/iscy-backend directly and serves on port 9000.
  • Updated Stage/Production Nginx to proxy to the Rust service.
  • Simplified env examples to Rust/Compose runtime keys only.
  • Converted Makefile local/team checks to Rust tests and Rust smoke checks.
  • Updated backup/restore and production readiness scripts for DB + media storage and Rust validation.
  • Updated README, support matrix, cutover docs, and roadmap docs to reflect the completed Rust cutover.
  • Ensured the Rust Docker build copies seeds/, which are required by compile-time include_str! usage.

Validation

  • nix develop --command cargo fmt --manifest-path rust/iscy-backend/Cargo.toml -- --check
  • nix develop --command cargo test --manifest-path rust/iscy-backend/Cargo.toml
    • 24 unit tests passed
    • 138 HTTP/integration tests passed
  • nix develop --command cargo clippy --manifest-path rust/iscy-backend/Cargo.toml --all-targets -- -D warnings
  • nix flake show
  • Active legacy runtime reference search for Django/Python start paths returned no hits.

Notes

Docker Compose config validation could not be run in the local shell because docker is not installed in this environment; the CI docker-config job should cover this on GitHub Actions.

@ewilhelm1979-netizen ewilhelm1979-netizen marked this pull request as ready for review June 7, 2026 07:10
@ewilhelm1979-netizen ewilhelm1979-netizen merged commit b12db82 into main Jun 7, 2026
4 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot 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: 0727ea3484

ℹ️ 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 thread docker-compose.yml
Comment on lines 18 to +19
build:
context: .
args:
INSTALL_LOCAL_LLM: ${INSTALL_LOCAL_LLM:-false}
context: ./rust/iscy-backend

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 Run Rust migrations before serving Compose app

With the Compose service now starting the Rust image directly, a fresh postgres_data volume only contains an empty Postgres database: main.rs runs init-demo/migrate only when that CLI argument is passed, while normal startup just connects the stores. The previous app entrypoint ran migrations before serving, so the documented cp .env.*.example .env && make dev-up/prod-up flow now comes up healthy on /health/live but the first dashboard/API request fails against missing tables such as processes_process and risks_risk. Add an init/migration step to this service startup path or a one-shot dependency before the server is marked ready.

Useful? React with 👍 / 👎.

Comment thread docker-compose.yml
Comment on lines +30 to +31
ports:
- "${ISCY_HTTP_PORT:-9000}:9000"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep the Rust app port out of prod/stage Compose

Because this ports mapping lives in the base file, it is inherited when running docker-compose.yml with docker-compose.prod.yml or docker-compose.stage.yml, so production/stage expose the Axum app directly on host port 9000 in addition to Nginx on 80/8080. That bypasses the reverse-proxy-only path configured in those overlays (host routing, body-size limits, future TLS) and can also collide with another local dev instance; move this mapping to the dev override or explicitly clear it in the prod/stage overlays.

Useful? React with 👍 / 👎.

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.

1 participant