fix: omit empty frontend directory from compose #85

Merged
ada merged 2 commits from fix/v235-compose-default into master 2026-08-13 19:01:05 +00:00
Collaborator

Problem

The default Compose file exported PORTAL_FRONTEND_DIR=. Clap treats the empty environment value for Option<PathBuf> as a supplied option without a value, so the reference docker compose up path could fail before the built-in landing-page fallback starts.

Fix

  • Omit the optional environment variable from the default Compose configuration.
  • Add a regression test that guards against reintroducing the empty expansion.

Validation

  • cargo fmt --check
  • cargo test --locked: 144 passed, 3 ignored
  • cargo clippy --locked --workspace --all-targets --all-features -- -D warnings
  • docker compose config: PORTAL_FRONTEND_DIR omitted
  • Isolated docker compose up --build: container running, HTTPS 200, built-in HTML served

This is a port patch on top of upstream v2.3.5; no wire/API behavior changes.

## Problem The default Compose file exported `PORTAL_FRONTEND_DIR=`. Clap treats the empty environment value for `Option<PathBuf>` as a supplied option without a value, so the reference `docker compose up` path could fail before the built-in landing-page fallback starts. ## Fix - Omit the optional environment variable from the default Compose configuration. - Add a regression test that guards against reintroducing the empty expansion. ## Validation - `cargo fmt --check` - `cargo test --locked`: 144 passed, 3 ignored - `cargo clippy --locked --workspace --all-targets --all-features -- -D warnings` - `docker compose config`: `PORTAL_FRONTEND_DIR` omitted - Isolated `docker compose up --build`: container running, HTTPS 200, built-in HTML served This is a port patch on top of upstream v2.3.5; no wire/API behavior changes.
fix: omit empty frontend directory from compose
Some checks failed
Rust CI / Format, lint, and test (pull_request) Failing after 7s
85ddc490b5
chore: retry CI after runner recovery
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 1m34s
015fa0bb65
ada merged commit 6a3e82bb0c into master 2026-08-13 19:01:05 +00:00
Author
Collaborator

Released as v2.3.5+rs.2.

Validation summary:

  • PR and master Rust CI passed.
  • 144 tests passed, 3 ignored; fmt and Clippy -D warnings passed.
  • Default Compose startup and built-in landing page returned HTTP 200.
  • Official portal v2.3.5 direct/lifecycle gates passed.
  • Multi-hop passed with Rust as ingress, middle, and exit, including the former exit-relay 502 path.
  • Production image digest: sha256:2ba2b60987b67b282ddeea2612d8931130b68a4de479d6c64f048518ea70fbc4.
  • Production reports portal-relay v2.3.5+rs.2; 8/8 expose services are active and public endpoint gates pass.

Infrastructure note: the first PR CI attempt was assigned to a Docker runner incorrectly advertising rust-host and failed at rustup: command not found. The conflicting label was removed; the unchanged source tree then passed on the approved Rust host runner.

Released as `v2.3.5+rs.2`. Validation summary: - PR and master Rust CI passed. - 144 tests passed, 3 ignored; fmt and Clippy `-D warnings` passed. - Default Compose startup and built-in landing page returned HTTP 200. - Official portal v2.3.5 direct/lifecycle gates passed. - Multi-hop passed with Rust as ingress, middle, and exit, including the former exit-relay 502 path. - Production image digest: `sha256:2ba2b60987b67b282ddeea2612d8931130b68a4de479d6c64f048518ea70fbc4`. - Production reports `portal-relay v2.3.5+rs.2`; 8/8 expose services are active and public endpoint gates pass. Infrastructure note: the first PR CI attempt was assigned to a Docker runner incorrectly advertising `rust-host` and failed at `rustup: command not found`. The conflicting label was removed; the unchanged source tree then passed on the approved Rust host runner.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gofix/portal-tunnel-rs!85
No description provided.