FROM node:22 COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ RUN apt-get update && apt-get install -y git rsync USER node ENV HOME=/home/node PATH=/home/node/.local/bin:$PATH WORKDIR $HOME/app COPY --chown=node lynxkite-bio ./lynxkite-bio COPY --chown=node lynxkite-llm-training ./lynxkite-llm-training COPY --chown=node pyproject.toml uv.lock .python-version ./ # Download Python dependencies. Ignore uv.lock for the LynxKite packages. RUN uv sync -P lynxkite-app -P lynxkite-assistant -P lynxkite-core -P lynxkite-graph-analytics -P lynxkite-mcp -P lynxkite-pillow-example RUN git clone --depth 1 https://github.com/lynxkite/lynxkite-2000.git RUN rsync -vr --ignore-existing lynxkite-2000/examples/* ./examples/ COPY --chown=node hf_ssh_config /home/node/.ssh/config RUN --mount=type=secret,id=LYNXSCRIBE_DEPLOY_KEY,mode=0444,required=true \ mkdir -p ~/.ssh && cp /run/secrets/LYNXSCRIBE_DEPLOY_KEY ~/.ssh/lynxscribe_deploy_key && chmod 600 ~/.ssh/lynxscribe_deploy_key RUN --mount=type=secret,id=LYNXKITE_LYNXSCRIBE_DEPLOY_KEY,mode=0444,required=true \ mkdir -p ~/.ssh && cp /run/secrets/LYNXKITE_LYNXSCRIBE_DEPLOY_KEY ~/.ssh/lynxkite_lynxscribe_deploy_key && chmod 600 ~/.ssh/lynxkite_lynxscribe_deploy_key RUN echo github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk= >> ~/.ssh/known_hosts COPY --chown=node examples ./examples RUN git clone --depth 1 git+ssh://git@github.com-lynxkite-lynxscribe/biggraph/lynxkite-lynxscribe.git RUN uv pip install lynxkite-lynxscribe/lynxkite-lynxscribe RUN rsync -vr --ignore-existing lynxkite-lynxscribe/examples/* ./examples/ RUN rm -rf ~/.ssh WORKDIR $HOME/app/examples ENV PORT=7860 ENV LYNXKITE_ASSISTANT_MODEL='openai:gpt-5.4-mini' CMD ["uv", "run", "--no-sync", "lynxkite"]