From 12af8ae0107545c7127097b71f4175749b9a079f Mon Sep 17 00:00:00 2001 From: Nystik <236107-Nystik@users.noreply.gitlab.com> Date: Thu, 12 Mar 2026 22:32:39 +0100 Subject: [PATCH] fix os.version shim, improve docker image --- Dockerfile | 48 ++++++++++++-------------------------- docker-compose.yml | 11 +++++---- images/favicon.png | Bin 0 -> 19532 bytes images/ignis.png | Bin 0 -> 60344 bytes scripts/entrypoint.sh | 37 +++++++++++++++++++++++++++++ scripts/patch-obsidian.js | 7 ++++++ server/routes/proxy.js | 2 +- shims/fs/sync.js | 2 +- shims/node/http.js | 9 +++++-- shims/node/os.js | 4 ++++ 10 files changed, 79 insertions(+), 41 deletions(-) create mode 100644 images/favicon.png create mode 100644 images/ignis.png create mode 100644 scripts/entrypoint.sh diff --git a/Dockerfile b/Dockerfile index d5aa950..eb625c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,6 @@ +# Build shim-loader.js FROM node:20-slim AS build -RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - binutils \ - xz-utils \ - && rm -rf /var/lib/apt/lists/* - WORKDIR /build COPY package.json package-lock.json ./ @@ -14,49 +8,37 @@ RUN npm ci --ignore-scripts COPY build.js ./ COPY shims/ ./shims/ -COPY scripts/ ./scripts/ -COPY server/ ./server/ RUN npm run build:shims - -ARG OBSIDIAN_VERSION=1.8.9 -RUN curl -fSL "https://github.com/obsidianmd/obsidian-releases/releases/download/v${OBSIDIAN_VERSION}/obsidian_${OBSIDIAN_VERSION}_amd64.deb" \ - -o /tmp/obsidian.deb \ - && mkdir -p /tmp/obsidian-deb \ - && ar x /tmp/obsidian.deb --output=/tmp/obsidian-deb \ - && mkdir -p /tmp/obsidian-pkg \ - && tar -xf /tmp/obsidian-deb/data.tar.xz -C /tmp/obsidian-pkg \ - && rm -rf /tmp/obsidian.deb /tmp/obsidian-deb - - -RUN npx --yes @electron/asar extract \ - /tmp/obsidian-pkg/opt/Obsidian/resources/obsidian.asar \ - /build/obsidian-app \ - && rm -rf /tmp/obsidian-pkg - -# Patch index.html -RUN node scripts/patch-obsidian.js /build/obsidian-app - -RUN cp dist/shim-loader.js /build/obsidian-app/shim-loader.js - -# Production image +# Production image. No Obsidian code included. +# On first run, the entrypoint downloads and patches Obsidian. FROM node:20-slim +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates curl binutils xz-utils \ + && rm -rf /var/lib/apt/lists/* + WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci --omit=dev --ignore-scripts COPY server/ ./server/ -COPY --from=build /build/obsidian-app ./obsidian-app +COPY scripts/ ./scripts/ +COPY images/ ./images/ +COPY --from=build /build/dist ./dist + +RUN chmod +x /app/scripts/entrypoint.sh ENV PORT=8080 ENV VAULT_ROOT=/vaults +ENV OBSIDIAN_VERSION=1.8.9 ENV OBSIDIAN_ASSETS_PATH=/app/obsidian-app EXPOSE 8080 VOLUME /vaults +VOLUME /app/obsidian-app -CMD ["node", "server/index.js"] +ENTRYPOINT ["/app/scripts/entrypoint.sh"] diff --git a/docker-compose.yml b/docker-compose.yml index dc40531..feccb34 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,14 @@ services: ignis: - build: - context: . - args: - OBSIDIAN_VERSION: "1.8.9" + build: . ports: - "8082:8080" + environment: + - OBSIDIAN_VERSION=1.12.4 volumes: - ./vaults:/vaults + - obsidian-app:/app/obsidian-app restart: unless-stopped + +volumes: + obsidian-app: diff --git a/images/favicon.png b/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..264c7e2266b38936c196480fd39f8f88d4f169a5 GIT binary patch literal 19532 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 literal 0 HcmV?d00001 diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh new file mode 100644 index 0000000..ef71ce3 --- /dev/null +++ b/scripts/entrypoint.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -e + +OBSIDIAN_DIR="/app/obsidian-app" +OBSIDIAN_VERSION="${OBSIDIAN_VERSION:-1.12.4}" + +if [ ! -f "$OBSIDIAN_DIR/index.html" ]; then + echo "[ignis] First run. Downloading Obsidian v${OBSIDIAN_VERSION}..." + + curl -fSL "https://github.com/obsidianmd/obsidian-releases/releases/download/v${OBSIDIAN_VERSION}/obsidian_${OBSIDIAN_VERSION}_amd64.deb" \ + -o /tmp/obsidian.deb + + echo "[ignis] Extracting .deb..." + mkdir -p /tmp/obsidian-deb /tmp/obsidian-pkg + ar x /tmp/obsidian.deb --output=/tmp/obsidian-deb + tar -xf /tmp/obsidian-deb/data.tar.xz -C /tmp/obsidian-pkg + + echo "[ignis] Unpacking asar..." + npx --yes @electron/asar extract \ + /tmp/obsidian-pkg/opt/Obsidian/resources/obsidian.asar \ + "$OBSIDIAN_DIR" + + echo "[ignis] Patching..." + node /app/scripts/patch-obsidian.js "$OBSIDIAN_DIR" + + cp /app/dist/shim-loader.js "$OBSIDIAN_DIR/shim-loader.js" + cp /app/images/favicon.png "$OBSIDIAN_DIR/favicon.png" + + + rm -rf /tmp/obsidian.deb /tmp/obsidian-deb /tmp/obsidian-pkg + + echo "[ignis] Obsidian v${OBSIDIAN_VERSION} ready." +else + echo "[ignis] Obsidian already set up." +fi + +exec node /app/server/index.js diff --git a/scripts/patch-obsidian.js b/scripts/patch-obsidian.js index 7b7c303..22c6a13 100644 --- a/scripts/patch-obsidian.js +++ b/scripts/patch-obsidian.js @@ -2,6 +2,7 @@ // Patches the extracted Obsidian asar for browser use: // 1. Removes Content-Security-Policy meta tag // 2. Injects shim-loader.js script (non-deferred, before all other scripts) +// 3. Injects favicon link const fs = require("fs"); const path = require("path"); @@ -26,6 +27,12 @@ function patchHtml(filePath) { "\n", ); + // Inject favicon into + html = html.replace( + "", + ' \n', + ); + // Inject shim-loader before the first