Add WASM frontend (hero_os_ui + archipelagos islands) to production container #38

Merged
mik-tf merged 1 commit from development_wasm_frontend into development_production_container 2026-02-26 23:33:03 +00:00
Owner

Summary

  • Add WASM toolchain (wasm32-unknown-unknown, wasm-pack, dioxus-cli) to production Docker builder
  • New docker/build-wasm.sh script that builds:
    • hero_os_ui Dioxus shell (desktop environment framework) with core features
    • hero_archipelagos standalone WASM islands (37 discovered, 31 built successfully)
  • Copy WASM assets to runtime stage at /root/hero/share/hero_os/
  • Set HERO_OS_ASSETS and HERO_OS_ISLANDS env vars for hero_os_http
  • Pin zinit to 9d21ba5 (workaround for rust-version workspace inheritance bug)
  • Expose port 8804 (hero_os_http)

Test Results (local Docker build)

  • 22 hero services running (all 20 original + hero_os_http now serving content)
  • hero_os_ui shell: HTML + JS + WASM served at / via hero_os_http
  • 31/37 islands built and served at /islands/{id}/
  • 6 island failures: filesystem, contexts, ai, code, room, hero_service (upstream hero_archipelagos compilation errors)
  • books island not built: missing [package.metadata.island] in Cargo.toml (upstream fix needed)

Known Issues

  • hero_os_http binds to 127.0.0.1 (by design — access via hero_proxy)
  • 6 islands fail to compile (upstream hero_archipelagos fixes needed)
  • books island needs [package.metadata.island] metadata added
  • zinit pinned to specific commit due to broken rust-version removal

Test plan

  • Local Docker build succeeds
  • hero_os_http serves WASM shell (verified via Unix socket)
  • Standalone islands served with correct content types
  • CI build succeeds
  • Visual verification of hero_os desktop in browser

Closes #37

## Summary - Add WASM toolchain (wasm32-unknown-unknown, wasm-pack, dioxus-cli) to production Docker builder - New `docker/build-wasm.sh` script that builds: - **hero_os_ui** Dioxus shell (desktop environment framework) with `core` features - **hero_archipelagos** standalone WASM islands (37 discovered, 31 built successfully) - Copy WASM assets to runtime stage at `/root/hero/share/hero_os/` - Set `HERO_OS_ASSETS` and `HERO_OS_ISLANDS` env vars for hero_os_http - Pin zinit to `9d21ba5` (workaround for `rust-version` workspace inheritance bug) - Expose port 8804 (hero_os_http) ## Test Results (local Docker build) - **22 hero services** running (all 20 original + hero_os_http now serving content) - **hero_os_ui shell**: HTML + JS + WASM served at `/` via hero_os_http - **31/37 islands** built and served at `/islands/{id}/` - 6 island failures: filesystem, contexts, ai, code, room, hero_service (upstream hero_archipelagos compilation errors) - **books island** not built: missing `[package.metadata.island]` in Cargo.toml (upstream fix needed) ## Known Issues - hero_os_http binds to 127.0.0.1 (by design — access via hero_proxy) - 6 islands fail to compile (upstream hero_archipelagos fixes needed) - books island needs `[package.metadata.island]` metadata added - zinit pinned to specific commit due to broken `rust-version` removal ## Test plan - [x] Local Docker build succeeds - [x] hero_os_http serves WASM shell (verified via Unix socket) - [x] Standalone islands served with correct content types - [ ] CI build succeeds - [ ] Visual verification of hero_os desktop in browser Closes #37
Add hero_os_ui Dioxus shell and hero_archipelagos standalone island
builds to the production Docker image. This enables the Hero OS desktop
environment with all island apps (settings, books, calendar, contacts,
etc.) to be served by hero_os_http.

Changes:
- Add wasm32-unknown-unknown target, wasm-pack, and dioxus-cli to builder
- New docker/build-wasm.sh script (builds shell + 37 islands)
- Copy WASM assets to runtime stage
- Set HERO_OS_ASSETS/HERO_OS_ISLANDS env vars for hero_os_http
- Pin zinit to 9d21ba5 (workaround rust-version inheritance bug)
- Expose port 8804 (hero_os_http)

Tested locally: 22 services running, shell served at /, 31/37 islands
built successfully.

Closes #37

Co-Authored-By: mik-tf <mik@threefold.io>
mik-tf changed title from WIP: Add WASM frontend (hero_os_ui + archipelagos islands) to production container to Add WASM frontend (hero_os_ui + archipelagos islands) to production container 2026-02-26 23:29:13 +00:00
mik-tf merged commit b8d7c7325d into development_production_container 2026-02-26 23:33:03 +00:00
mik-tf deleted branch development_wasm_frontend 2026-02-26 23:33:24 +00:00
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
lhumina_code/hero_services!38
No description provided.