Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

entry-port flip: LuCI's :8090/:8443 pair does not converge after a fresh-image install (board mode) — caught by the new installer-contract lane

Open
#890 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
go
Domain
backend, devops

Research direction

Start with the installer-contract lane in tests/installer-contract/ and trace the fresh-image install path for entry_ui=board. Compare when the entry-ui applier and staged 999-tollgate-admin-setup run against the first-boot UCI defaults, using the uhttpd and UCI dumps described in the issue. Done means a pristine install followed by one reboot serves the LuCI listeners on :8090 and :8443, with the lane passing.

Written by the indexing model from the issue text.

Description

Title: entry-port flip: LuCI's :8090/:8443 pair does not converge after a fresh-image install (board mode) — caught by the new installer-contract lane

Body:

The installer-contract lane (vlab, OpenWrt 25.12.5 x86-64, pristine boot via qemu snapshot
restart, tollgate-wrt-0.6.0_rc1-r0.apk @ 362e5d5) caught a variance in the entry-port
flip (#746 family, the module/portal two-halves contract):

  • Fresh-image install path: after install AND after a reboot, nothing listens on
    :8090/:8443. LuCI is installed (15 luci packages); uhttpd reports running (3/4); the
    uhttpd config carries portal (:2051), trusted (:80) and admin (:8080/:443) — the
    main (LuCI) section has no listen entries at all, so in entry_ui=board mode (the
    mapping file says board, the board's own pair :8080/:443 works, TLS answers) the LuCI
    half of the mapping is simply not served.
  • Contrast (same package, same image, hours earlier on the same VM before the pristine
    restart): :8090/:8443 were listening after install and survived the reboot.

So the LuCI-half convergence is path-dependent: it converged on a device that had booted at
least once before install, and does not converge on a true fresh-image install + one reboot.
Per the README contract, board mode means "LuCI moves to 8090/8443" — an operator following
that doc on a fresh install gets no LuCI until something else re-triggers the applier.

Suspects: the writer that relocates uhttpd.main's listeners (the module's entry-ui
applier vs the staged 999-tollgate-admin-setup half) either runs before LuCI's own
defaults exist on first boot, or its uci state is dropped by the same first-boot
uci-defaults pass that consumes it.

Evidence: lane output ~/ic-out4 on ai-legion (ICFAILED listeners:8090 listeners:8443
alongside the #888 known-red), uhttpd/uci dumps in the session ledger; the lane itself
lands as tests/installer-contract/ and keeps these two listeners asserted, so this stays
red until fixed.

Dominant language
Go
Stars
12
Forks
14
Avg merge
1d 5h
Merged PRs (30d)
239

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenTollGate/tollgate-module-basic-go

All issues in OpenTollGate/tollgate-module-basic-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.