mirror of
https://github.com/Heretek-AI/openclaw.git
synced 2026-07-21 04:05:24 -04:00
a9ae1a6778
Matrix Protocol: - docker-compose.matrix.yml: Dendrite homeserver + PostgreSQL + Nginx TLS - src/channels/plugins/matrix-channel.ts: OpenClaw plugin implementation - docs/matrix-triad-setup.md: Setup guide with auth scheme (@tm1-4:triad.local) MCP Server Integration: - docs/mcp-triad-integration.md: SearXNG, Playwright, GitHub MCP configs - docs/mcp-curiosity-mapping.md: Gap-to-capability mapping Node Sync Architecture: - src/services/node-sync-service.ts: WebSocket peer sync + presence detection - src/services/node-sync-service.test.ts: Unit tests - docs/node-sync-architecture.md: Architecture docs Triad Resilience: - scripts/triad-corruption-check.mjs: SQLite + log + config + git integrity - docs/triad-resilience.md: Recovery procedures - .secure/deployment-logs/README.md: Schema v2 - skills/triad-heartbeat/SKILL.md: Corruption check integration NPM Publish Workflow: - scripts/npm-publish.mjs: version, changelog, validate, publish, rollback - .github/workflows/npm-publish.yml: GitHub Actions with provenance - docs/npm-publish-guide.md: Complete documentation All deliverables tested in Docker before production.
48 lines
2.0 KiB
Docker
Executable File
48 lines
2.0 KiB
Docker
Executable File
# syntax=docker/dockerfile:1.7
|
|
|
|
FROM node:24-bookworm@sha256:3a09aa6354567619221ef6c45a5051b671f953f0a1924d1f819ffb236e520e6b
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN corepack enable
|
|
|
|
RUN useradd --create-home --shell /bin/bash appuser \
|
|
&& mkdir -p /app \
|
|
&& chown appuser:appuser /app
|
|
|
|
ENV HOME="/home/appuser"
|
|
ENV NODE_OPTIONS="--disable-warning=ExperimentalWarning"
|
|
|
|
USER appuser
|
|
WORKDIR /app
|
|
|
|
COPY --chown=appuser:appuser package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
|
|
COPY --chown=appuser:appuser ui/package.json ./ui/package.json
|
|
COPY --chown=appuser:appuser extensions ./extensions
|
|
COPY --chown=appuser:appuser patches ./patches
|
|
|
|
RUN --mount=type=cache,id=openclaw-pnpm-store,target=/home/appuser/.local/share/pnpm/store,sharing=locked \
|
|
pnpm install --frozen-lockfile
|
|
|
|
COPY --chown=appuser:appuser tsconfig.json tsconfig.plugin-sdk.dts.json tsdown.config.ts vitest.config.ts vitest.e2e.config.ts vitest.performance-config.ts openclaw.mjs ./
|
|
COPY --chown=appuser:appuser src ./src
|
|
COPY --chown=appuser:appuser test ./test
|
|
COPY --chown=appuser:appuser scripts ./scripts
|
|
COPY --chown=appuser:appuser docs ./docs
|
|
COPY --chown=appuser:appuser skills ./skills
|
|
COPY --chown=appuser:appuser ui ./ui
|
|
COPY --chown=appuser:appuser extensions ./extensions
|
|
COPY --chown=appuser:appuser vendor/a2ui/renderers/lit ./vendor/a2ui/renderers/lit
|
|
COPY --chown=appuser:appuser apps/shared/OpenClawKit/Sources/OpenClawKit/Resources ./apps/shared/OpenClawKit/Sources/OpenClawKit/Resources
|
|
COPY --chown=appuser:appuser apps/shared/OpenClawKit/Tools/CanvasA2UI ./apps/shared/OpenClawKit/Tools/CanvasA2UI
|
|
|
|
RUN pnpm build
|
|
# Onboard Docker E2E does not exercise the Control UI itself; it only needs the
|
|
# asset-existence check to pass so configure/onboard can continue.
|
|
RUN mkdir -p dist/control-ui \
|
|
&& printf '%s\n' '<!doctype html><title>OpenClaw Control UI</title>' > dist/control-ui/index.html
|
|
|
|
CMD ["bash"]
|