Skip to content

Publish bizeros-knowledge web image to GHCR with the fork's source - #2

Merged
kelsi-bizer merged 3 commits into
masterfrom
claude/docker-publish-bizeros-knowledge
May 6, 2026
Merged

Publish bizeros-knowledge web image to GHCR with the fork's source#2
kelsi-bizer merged 3 commits into
masterfrom
claude/docker-publish-bizeros-knowledge

Conversation

@kelsi-bizer

Copy link
Copy Markdown
Owner

Summary

Adds a working publish pipeline so ghcr.io/kelsi-bizer/bizeros-knowledge:latest actually exists and contains the rebranded fork — not vanilla Logseq.

Two real bugs in the existing setup blocked any image from being usable:

  1. Dockerfile cloned upstream Logseq at build time (git clone -b master https://github.com/logseq/logseq.git .). Even when CI ran successfully, the image was vanilla Logseq with none of this fork's rebrand baked in.
  2. Workflow tagged the image ghcr.io/<owner>/logseq-webapp:latest and only ran on release: released. Since no releases have been cut on this fork, nothing was ever published, and consumers looking for bizeros-knowledge:latest got "denied invalid token".

Changes

  • Dockerfile — replaces the upstream clone with COPY . /data so the build context (this fork's source, including the rebrand) is what gets compiled.
  • .dockerignore — new file. Keeps the build context lean by excluding node_modules, static/, dist/, ios/, android/, docs/, cli-e2e/, clj-e2e/, .git/, .github/, etc. Without this, COPY . /data would balloon the context.
  • .github/workflows/build-docker.yml
    • Publishes to ghcr.io/${{ github.repository_owner }}/bizeros-knowledge (was logseq-webapp).
    • Triggers on push to master, on tags matching v*, on releases, and on manual dispatch.
    • Uses docker/metadata-action@v5 to compute tags: latest on default branch, semver from version tags, short-sha for traceability.
    • Adds permissions: packages: write so GITHUB_TOKEN can push to GHCR.
    • Bumps setup-qemu-action, setup-buildx-action, login-action, build-push-action to current majors (the v1/v2 versions are years out of date and won't run on current runners reliably).
    • Adds GHA build cache to keep subsequent builds faster.

Test plan

  • Merge → confirm the Build-Docker workflow runs on push to master
  • Confirm ghcr.io/kelsi-bizer/bizeros-knowledge:latest appears under the org's Packages tab and is pullable
  • Pull the image, run it (docker run -p 8080:80 ghcr.io/kelsi-bizer/bizeros-knowledge:latest), and verify the served HTML <title> says "BizerOS Knowledge" (proves the rebrand made it into the image, not vanilla Logseq)
  • Cut a v0.1.0 tag and verify a semver-tagged image is published alongside :latest

Generated by Claude Code

claude added 3 commits May 4, 2026 03:27
Previously the Dockerfile re-cloned upstream logseq/logseq:master at
build time, which discarded this fork's rebrand and made the produced
image identical to vanilla Logseq. The publish workflow also tagged
the image as logseq-webapp:latest and only ran on releases, so nothing
was ever published for kelsi-bizer/bizeros-knowledge.

Changes:
- Dockerfile now COPYs the build context (this repo) instead of cloning
  upstream, so the rebranded sources are baked into the image.
- Add .dockerignore to keep the build context lean (excludes mobile,
  docs, e2e suites, build outputs, .git).
- Workflow now publishes to ghcr.io/<owner>/bizeros-knowledge with
  metadata-driven tags (latest on master, semver tags on releases,
  sha tags for traceability), runs on every push to master, and uses
  current major versions of docker/* actions.
- Declare packages: write permission so GITHUB_TOKEN can push to GHCR.
PR #1's rebrand replaced two hardcoded "Logseq Sync" strings in
settings.cljs with "BizerOS Knowledge Sync". The i18n lint allowlist
only contained the old brand names, so bb lang:lint-hardcoded fails
on master.

Add "BizerOS Knowledge" and "BizerOS Knowledge Sync" alongside the
existing Logseq entries — same justification (brand name displayed
literally, intentionally not translated).
- src/test/frontend/context/i18n_test.cljs: English assertions for
  :help/about now expect "About BizerOS Knowledge". The Spanish
  assertion is unchanged because non-English dictionaries were not
  rebranded.
- src/main/mobile/components/settings.cljs: rebrand the hardcoded
  "Logseq Sync" fallback to "BizerOS Knowledge Sync" to match the
  desktop settings component.
@kelsi-bizer
kelsi-bizer marked this pull request as ready for review May 6, 2026 16:22
@kelsi-bizer
kelsi-bizer merged commit a5e7d61 into master May 6, 2026
6 of 7 checks passed
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.

2 participants