Initial commit: trueref v0.1.0-SNAPSHOT
Some checks failed
Build and publish Docker image / Build and push (push) Failing after 1m27s

Java 21 / Spring Boot 3.5.3 multi-module Maven project.
Hybrid BM25+HNSW search with RRF, cross-encoder reranker,
ONNX Runtime 1.22.0 (CPU + CUDA 12 GPU variants).
This commit is contained in:
moze
2026-05-06 00:49:16 +02:00
commit c5f950c2c0
132 changed files with 11287 additions and 0 deletions

51
Dockerfile Normal file
View File

@@ -0,0 +1,51 @@
# ─── Build stage ──────────────────────────────────────────────────────────────
# eclipse-temurin:21-jdk-jammy ships JDK 21 + Maven-compatible toolchain.
# frontend-maven-plugin downloads Node/npm automatically, so no explicit
# Node install is needed in the build stage.
FROM eclipse-temurin:21-jdk-jammy AS builder
RUN apt-get update \
&& apt-get install -y --no-install-recommends maven \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
COPY . .
RUN mvn -q package -DskipTests -T 1C
# ─── Runtime stage (CPU-only) ─────────────────────────────────────────────────
FROM eclipse-temurin:21-jre-jammy
LABEL org.opencontainers.image.title="TrueRef"
LABEL org.opencontainers.image.description="Self-hosted documentation retrieval platform for AI coding assistants (CPU variant)"
LABEL org.opencontainers.image.url="https://git.sal.giize.com/mozempk/trueref"
LABEL org.opencontainers.image.source="https://git.sal.giize.com/mozempk/trueref"
WORKDIR /app
COPY --from=builder /build/trueref-bootstrap/target/trueref.jar /app/trueref.jar
# /data is the default trueref.home: H2 DB, Lucene index, embedding cache and
# downloaded models all live here. Mount a volume to persist between restarts.
VOLUME /data
ENV TRUEREF_HOME=/data \
TRUEREF_PORT=18080 \
JAVA_OPTS=""
EXPOSE 18080
# JVM flags required by trueref:
# --enable-native-access silences FFM Linker warning from DJL tokenizers
# --add-modules enables Lucene 10 SIMD codepath (incubator.vector)
# Spring properties are passed via CMD so users can override them at runtime.
ENTRYPOINT ["sh", "-c", \
"exec java \
--enable-native-access=ALL-UNNAMED \
--add-modules=jdk.incubator.vector \
${JAVA_OPTS} \
-jar /app/trueref.jar \
--server.port=${TRUEREF_PORT} \
--trueref.home=${TRUEREF_HOME} \
--trueref.embedding.onnx-providers=cpu \
\"$@\"", "--"]