Skip to content

feat(compose): reach the shaide server at http://shaide-server like on k8s (SHD-1088) - #36

Closed
janosmurai wants to merge 2 commits into
mainfrom
SHD-1086/webapp-server-url
Closed

janosmurai wants to merge 2 commits into
mainfrom
SHD-1086/webapp-server-url

Conversation

@janosmurai

@janosmurai janosmurai commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Type of change

  • New feature
  • Bug fix
  • Breaking change
  • Refactoring or maintenance
  • Documentation update

Related issue

Closes SHD-1088

Part of SHD-1086, which adds SHAIDE_SERVER_URL to the webapp.

Description

The webapp's Node server, not the browser, connects to the shaide server, so users had to enter an address that resolves inside the webapp container. Entering http://localhost:8080 failed with "Could not reach the server to sign in". The webapp service now gets SHAIDE_SERVER_URL.

To keep compose as close to the k8s deployment as possible, the containers now reach the server at the same address as on k8s, http://shaide-server:

  • Service renamed shaide_server -> shaide-server, since k8s Service names can't contain _. It was the only compose service with an underscore. Updated in compose.yaml, compose.kc.yaml, the KC notifications Caddyfile, the platform-discovery test stack and the justfile.
  • Port 80 inside the network, like the k8s Service: the containerized server listens on port 80. Containers can bind it without extra capabilities, including under the KC overlay's cap_drop: [ALL].
  • SHAIDE_SERVER_FQDN and SHAIDE_SERVER_PORT mean what they mean on k8s: where the other containers reach the server. They default to shaide-server and 80, the values the installer gives the control panel.
  • New SHAIDE_SERVER_HOST_PORT (default 8080) is the port the server is published on, on the host.
Mode Webapp SHAIDE_SERVER_URL Control panel
just stack app (containerized server) http://shaide-server shaide-server:80
just dev app (native server) http://host.docker.internal:8080 host.docker.internal:8080

The webapp service also gets the host.docker.internal:host-gateway entry the control panel already has, so the native mode resolves.

Validation

  • cargo fmt --check
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo build --verbose --all-features
  • cargo test --verbose --all-features
  • Relevant Docker, service-integration, or documentation checks

Additional validation details:

  • Only compose files, scripts and docs changed. The Rust checks above pass on the branch rebased onto current main (200 tests, 1 ignored).
  • docker compose config resolves the addresses in the table above in both modes.
  • test/kc-compose passes (27 tests). I added assertions that KC reaches the server at http://shaide-server and that the server's container port is 80.
  • docker compose config accepts test/platform-discovery/compose.yaml.
  • I ran the stack (server and app profiles) under a separate project name. The server logged Listening at http://0.0.0.0:80. Sign-in returned 200 from the host on the published port, from the webapp container at http://shaide-server and from the control-panel container at shaide-server:80.

Deployment and compatibility

Local compose only. No server, API or database changes.

For existing local setups:

  • If you publish the server on a port other than 8080, set SHAIDE_SERVER_HOST_PORT instead of SHAIDE_SERVER_PORT. The KC operator guide is updated.
  • A stack started before this change still has a shaide_server container. just services-up and just stack remove it with --remove-orphans; with plain compose, run docker compose --profile '*' down --remove-orphans once.

Webapp images that predate axem-solutions/shaide_app_client#32 ignore SHAIDE_SERVER_URL, so this is safe to merge first.

Documentation

The README's Docker compose section explains the addresses and variables. The compose comments, the KC operator guide and the platform-discovery README are updated.

Checklist

  • I added or updated tests for changed behavior, or explained why tests are not needed.
  • I updated user-facing and API documentation where necessary.
  • My commits follow the Conventional Commits specification.
  • Every commit includes a Signed-off-by trailer (git commit -s).

Additional information

Related: axem-solutions/shaide_app_client#32 (app) and axem-solutions/shaide#55 (k8s installer).

AI assistance:

  • Tool: Claude Code
  • Model: Claude Opus 5.5
  • Used for: compose changes, contract test assertions and this description
  • Human verification: pending review

🤖 Generated with Claude Code

https://claude.ai/code/session_015XRChLGwyiDuPLPYGFiQkk

@janosmurai
janosmurai requested a review from gaboraxem as a code owner October 18, 2026 18:10
@janosmurai
janosmurai force-pushed the SHD-1086/webapp-server-url branch 2 times, most recently from fae38f3 to 2b9bc90 Compare October 19, 2026 13:15
@janosmurai janosmurai changed the title feat(compose): pass the shaide server URL to the webapp (SHD-1086) feat(compose): reach the shaide server at http://shaide-server like on k8s (SHD-1086) Oct 19, 2026
@janosmurai janosmurai changed the title feat(compose): reach the shaide server at http://shaide-server like on k8s (SHD-1086) feat(compose): reach the shaide server at http://shaide-server like on k8s (SHD-1088) Oct 19, 2026
Signed-off-by: janosmurai <janos.murai@axem.dev>
…8s (SHD-1088)

Signed-off-by: janosmurai <janos.murai@axem.dev>
@janosmurai
janosmurai force-pushed the SHD-1086/webapp-server-url branch from 2b9bc90 to b406209 Compare October 20, 2026 13:25
@janosmurai janosmurai closed this Oct 20, 2026
@janosmurai
janosmurai deleted the SHD-1086/webapp-server-url branch October 20, 2026 13:25
@janosmurai

Copy link
Copy Markdown
Contributor Author

Superseded by #37: the branch was renamed to SHD-1088/compose-shaide-server-url after the work moved to its own ticket, SHD-1088. GitHub closed this PR when its head branch was renamed.

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