From 58971e8b30fb60d77ce28ea11706c4b510ca341a Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Mon, 8 Jan 2024 16:15:01 -0800 Subject: [PATCH] Build & Publish AnythingLLM for ARM64 and x86 (#549) * Update build process to support multi-platform builds Bump @lancedb/vectordb to 0.1.19 for ARM&AMD compatibility Patch puppeteer on ARM builds because of broken chromium resolves #539 resolves #548 --------- Co-authored-by: shatfield4 --- .github/workflows/build-and-push-image.yaml | 41 ++++++++--- clean.sh | 3 - collector/package.json | 2 +- collector/yarn.lock | 50 ++++++------- docker/Dockerfile | 80 ++++++++++++++++++--- docker/HOW_TO_USE_DOCKER.md | 21 ++++-- docker/docker-compose.yml | 3 +- server/package.json | 2 +- server/yarn.lock | 60 ++++++++++++++-- 9 files changed, 202 insertions(+), 60 deletions(-) delete mode 100644 clean.sh diff --git a/.github/workflows/build-and-push-image.yaml b/.github/workflows/build-and-push-image.yaml index b712dc13..b8ac6348 100644 --- a/.github/workflows/build-and-push-image.yaml +++ b/.github/workflows/build-and-push-image.yaml @@ -1,8 +1,18 @@ -name: Publish Docker image and Github Registry +# This Github action is for publishing of the primary image for AnythingLLM +# It will publish a linux/amd64 and linux/arm64 image at the same time +# This file should ONLY BY USED FOR `master` BRANCH. +# TODO: Update `runs-on` for arm64 when GitHub finally supports +# native arm environments as QEMU takes around 1 hour to build +# ref: https://github.com/actions/runner-images/issues/5631 :( +name: Publish AnythingLLM Primary Docker image (amd64/arm64) + +concurrency: + group: build-${{ github.ref }} + cancel-in-progress: true on: push: - branches: ['master'] + branches: ['master'] # master branch only. Do not modify. paths-ignore: - '*.md' - 'cloud-deployments/*' @@ -11,8 +21,8 @@ on: - '**/.env.example' jobs: - push_to_registries: - name: Push Docker image to multiple registries + push_multi_platform_to_registries: + name: Push Docker multi-platform image to multiple registries runs-on: ubuntu-latest permissions: packages: write @@ -20,6 +30,17 @@ jobs: steps: - name: Check out the repo uses: actions/checkout@v4 + + - name: Parse repository name to lowercase + shell: bash + run: echo "repo=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT + id: lowercase_repo + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a @@ -42,11 +63,15 @@ jobs: mintplexlabs/anythingllm ghcr.io/${{ github.repository }} - - name: Build and push Docker images - uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + - name: Build and push multi-platform Docker image + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + platforms: linux/amd64,linux/arm64 + tags: | + ${{ steps.meta.outputs.tags }} + ${{ github.ref_name == 'master' && 'mintplexlabs/anythingllm:latest' || '' }} + ${{ github.ref_name == 'master' && format('ghcr.io/{0}:{1}', steps.lowercase_repo.outputs.repo, 'latest') || '' }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/clean.sh b/clean.sh deleted file mode 100644 index 966cc177..00000000 --- a/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Easily kill process on port because sometimes nodemon fails to reboot -kill -9 $(lsof -t -i tcp:5000) & -kill -9 $(lsof -t -i tcp:3001) # if running default for MacOS Monterey diff --git a/collector/package.json b/collector/package.json index 0e81b72a..01cf26b6 100644 --- a/collector/package.json +++ b/collector/package.json @@ -34,7 +34,7 @@ "multer": "^1.4.5-lts.1", "officeparser": "^4.0.5", "pdf-parse": "^1.1.1", - "puppeteer": "^21.6.1", + "puppeteer": "~21.5.2", "slugify": "^1.6.6", "url-pattern": "^1.0.3", "uuid": "^9.0.0", diff --git a/collector/yarn.lock b/collector/yarn.lock index 6501aac9..e181b245 100644 --- a/collector/yarn.lock +++ b/collector/yarn.lock @@ -134,10 +134,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@puppeteer/browsers@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-1.9.0.tgz#dfd0aad0bdc039572f1b57648f189525d627b7ff" - integrity sha512-QwguOLy44YBGC8vuPP2nmpX4MUN2FzWbsnvZJtiCzecU3lHmVZkaC1tq6rToi9a200m8RzlVtDyxCS0UIDrxUg== +"@puppeteer/browsers@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-1.8.0.tgz#fb6ee61de15e7f0e67737aea9f9bab1512dbd7d8" + integrity sha512-TkRHIV6k2D8OlUe8RtG+5jgOF/H98Myx0M6AOafC8DdNVOFiBSFa5cpRDtpm8LXOa9sVwe0+e6Q3FC56X/DZfg== dependencies: debug "4.3.4" extract-zip "2.0.1" @@ -608,10 +608,10 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chromium-bidi@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.5.1.tgz#390c1af350c4887824a33d82190de1cc5c5680fc" - integrity sha512-dcCqOgq9fHKExc2R4JZs/oKbOghWpUNFAJODS8WKRtLhp3avtIH5UDCBrutdqZdh3pARogH8y1ObXm87emwb3g== +chromium-bidi@0.4.33: + version "0.4.33" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.4.33.tgz#9a9aba5a5b07118c8e7d6405f8ee79f47418dd1d" + integrity sha512-IxoFM5WGQOIAd95qrSXzJUv4eXIrh+RvU3rwwqIiwYuvfE7U/Llj4fejbsJnjJMUYCuGtVQsY2gv7oGl4aTNSQ== dependencies: mitt "3.0.1" urlpattern-polyfill "9.0.0" @@ -2584,26 +2584,26 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -puppeteer-core@21.6.1: - version "21.6.1" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-21.6.1.tgz#10eccb4dc3167c8c26bc21122fabb45a9fda9ca7" - integrity sha512-0chaaK/RL9S1U3bsyR4fUeUfoj51vNnjWvXgG6DcsyMjwYNpLcAThv187i1rZCo7QhJP0wZN8plQkjNyrq2h+A== +puppeteer-core@21.5.2: + version "21.5.2" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-21.5.2.tgz#6d3de4efb2ae65f1ee072043787b75594e88035f" + integrity sha512-v4T0cWnujSKs+iEfmb8ccd7u4/x8oblEyKqplqKnJ582Kw8PewYAWvkH4qUWhitN3O2q9RF7dzkvjyK5HbzjLA== dependencies: - "@puppeteer/browsers" "1.9.0" - chromium-bidi "0.5.1" + "@puppeteer/browsers" "1.8.0" + chromium-bidi "0.4.33" cross-fetch "4.0.0" debug "4.3.4" devtools-protocol "0.0.1203626" - ws "8.15.1" + ws "8.14.2" -puppeteer@^21.6.1: - version "21.6.1" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-21.6.1.tgz#2ec0878906ff90b3a424f19e5eb006592abe25b6" - integrity sha512-O+pbc61oj8ln6m8EJKncrsQFmytgRyFYERtk190PeLbJn5JKpmmynn2p1PiFrlhCitAQXLJ0MOy7F0TeyCRqBg== +puppeteer@~21.5.2: + version "21.5.2" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-21.5.2.tgz#0a4a72175c0fd0944d6486f4734807e1671d527b" + integrity sha512-BaAGJOq8Fl6/cck6obmwaNLksuY0Bg/lIahCLhJPGXBFUD2mCffypa4A592MaWnDcye7eaHmSK9yot0pxctY8A== dependencies: - "@puppeteer/browsers" "1.9.0" + "@puppeteer/browsers" "1.8.0" cosmiconfig "8.3.6" - puppeteer-core "21.6.1" + puppeteer-core "21.5.2" qs@6.11.0: version "6.11.0" @@ -3259,10 +3259,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@8.15.1: - version "8.15.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.1.tgz#271ba33a45ca0cc477940f7f200cd7fba7ee1997" - integrity sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ== +ws@8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== xmlbuilder@^10.0.0: version "10.1.1" diff --git a/docker/Dockerfile b/docker/Dockerfile index 72fea424..595099fb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,11 +1,66 @@ # Setup base image FROM ubuntu:jammy-20230522 AS base -# Build arguments ARG ARG_UID=1000 ARG ARG_GID=1000 -# Install system dependencies +FROM base AS build-arm64 +RUN echo "Preparing build of AnythingLLM image for arm64 architecture" + +RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \ + unzip curl gnupg libgfortran5 libgbm1 tzdata netcat \ + libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 \ + libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libx11-6 libx11-xcb1 libxcb1 \ + libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 \ + libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release \ + xdg-utils git build-essential ffmpeg && \ + mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \ + apt-get update && \ + apt-get install -yq --no-install-recommends nodejs && \ + curl -LO https://github.com/yarnpkg/yarn/releases/download/v1.22.19/yarn_1.22.19_all.deb \ + && dpkg -i yarn_1.22.19_all.deb \ + && rm yarn_1.22.19_all.deb + +# Create a group and user with specific UID and GID +RUN groupadd -g $ARG_GID anythingllm && \ + useradd -u $ARG_UID -m -d /app -s /bin/bash -g anythingllm anythingllm && \ + mkdir -p /app/frontend/ /app/server/ /app/collector/ && chown -R anythingllm:anythingllm /app + +# Copy docker helper scripts +COPY ./docker/docker-entrypoint.sh /usr/local/bin/ +COPY ./docker/docker-healthcheck.sh /usr/local/bin/ +COPY --chown=anythingllm:anythingllm ./docker/.env.example /app/server/.env + +# Ensure the scripts are executable +RUN chmod +x /usr/local/bin/docker-entrypoint.sh && \ + chmod +x /usr/local/bin/docker-healthcheck.sh + +USER anythingllm +WORKDIR /app + +# Puppeteer does not ship with an ARM86 compatible build for Chromium +# so web-scraping would be broken in arm docker containers unless we patch it +# by manually installing a compatible chromedriver. +RUN echo "Need to patch Puppeteer x Chromium support for ARM86 - installing dep!" && \ + curl https://playwright.azureedge.net/builds/chromium/1088/chromium-linux-arm64.zip -o chrome-linux.zip && \ + unzip chrome-linux.zip && \ + rm -rf chrome-linux.zip + +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true +ENV CHROME_PATH=/app/chrome-linux/chrome +ENV PUPPETEER_EXECUTABLE_PATH=/app/chrome-linux/chrome + +RUN echo "Done running arm64 specific installtion steps" + +############################################# + +# amd64-specific stage +FROM base AS build-amd64 +RUN echo "Preparing build of AnythingLLM image for non-ARM architecture" + RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \ curl gnupg libgfortran5 libgbm1 tzdata netcat \ @@ -37,22 +92,25 @@ COPY --chown=anythingllm:anythingllm ./docker/.env.example /app/server/.env RUN chmod +x /usr/local/bin/docker-entrypoint.sh && \ chmod +x /usr/local/bin/docker-healthcheck.sh -USER anythingllm +############################################# +# COMMON BUILD FLOW FOR ALL ARCHS +############################################# +FROM build-${TARGETARCH} AS build +RUN echo "Running common build flow of AnythingLLM image for all architectures" +USER anythingllm WORKDIR /app # Install frontend dependencies -FROM base as frontend-deps +FROM build as frontend-deps COPY ./frontend/package.json ./frontend/yarn.lock ./frontend/ -RUN cd ./frontend/ && yarn install && yarn cache clean +RUN cd ./frontend/ && yarn install --network-timeout 100000 && yarn cache clean # Install server dependencies -FROM base as server-deps +FROM build as server-deps COPY ./server/package.json ./server/yarn.lock ./server/ -RUN cd ./server/ && yarn install --production && yarn cache clean && \ - rm /app/server/node_modules/vectordb/x86_64-apple-darwin.node && \ - rm /app/server/node_modules/vectordb/aarch64-apple-darwin.node +RUN cd ./server/ && yarn install --production --network-timeout 100000 && yarn cache clean # Compile Llama.cpp bindings for node-llama-cpp for this operating system. USER root @@ -75,7 +133,7 @@ COPY --from=build-stage /app/frontend/dist ./server/public COPY --chown=anythingllm:anythingllm ./collector/ ./collector/ # Install collector dependencies -RUN cd /app/collector && yarn install --production && yarn cache clean +RUN cd /app/collector && yarn install --production --network-timeout 100000 && yarn cache clean # Migrate and Run Prisma against known schema RUN cd ./server && npx prisma generate --schema=./prisma/schema.prisma @@ -93,4 +151,4 @@ HEALTHCHECK --interval=1m --timeout=10s --start-period=1m \ CMD /bin/bash /usr/local/bin/docker-healthcheck.sh || exit 1 # Run the server -ENTRYPOINT ["/bin/bash", "/usr/local/bin/docker-entrypoint.sh"] +ENTRYPOINT ["/bin/bash", "/usr/local/bin/docker-entrypoint.sh"] \ No newline at end of file diff --git a/docker/HOW_TO_USE_DOCKER.md b/docker/HOW_TO_USE_DOCKER.md index 3a2875e9..81a3cd83 100644 --- a/docker/HOW_TO_USE_DOCKER.md +++ b/docker/HOW_TO_USE_DOCKER.md @@ -29,14 +29,19 @@ Use the Dockerized version of AnythingLLM for a much faster and complete startup > It is best to mount the containers storage volume to a folder on your host machine > so that you can pull in future updates without deleting your existing data! -`docker pull mintplexlabs/anythingllm:master` +Pull in the latest image from docker. Supports both `amd64` and `arm64` CPU architectures. +```shell +docker pull mintplexlabs/anythingllm +``` - - + + + + + diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 5ec67cab..313e4175 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.9' +version: "3.9" name: anythingllm @@ -10,7 +10,6 @@ services: anything-llm: container_name: anything-llm image: anything-llm:latest - platform: linux/amd64 build: context: ../. dockerfile: ./docker/Dockerfile diff --git a/server/package.json b/server/package.json index d9fe9b70..0e2d909c 100644 --- a/server/package.json +++ b/server/package.json @@ -59,7 +59,7 @@ "swagger-ui-express": "^5.0.0", "uuid": "^9.0.0", "uuid-apikey": "^1.5.3", - "vectordb": "0.1.12", + "vectordb": "0.1.19", "weaviate-ts-client": "^1.4.0" }, "devDependencies": { diff --git a/server/yarn.lock b/server/yarn.lock index f33f2308..6215bf01 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -257,6 +257,31 @@ resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== +"@lancedb/vectordb-darwin-arm64@0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.1.19.tgz#f7e270623008446b2cdcedcc1badfba2d35ab8e8" + integrity sha512-efQhJkBKvMNhjFq3Sw3/qHo9D9gb9UqiIr98n3STsbNxBQjMnWemXn91Ckl40siRG1O8qXcINW7Qs/EGmus+kg== + +"@lancedb/vectordb-darwin-x64@0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.1.19.tgz#0d1c271acfb832a5282ad24c2e77cb9a1cc0e9a3" + integrity sha512-r6OZNVyemAssABz2w7CRhe7dyREwBEfTytn+ux1zzTnzsgMgDovCQ0rQ3WZcxWvcy7SFCxiemA9IP1b/lsb4tQ== + +"@lancedb/vectordb-linux-arm64-gnu@0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.1.19.tgz#47f36e1069182bce9b4143b5fe89963a335babb9" + integrity sha512-mL/hRmZp6Kw7hmGJBdOZfp/tTYiCdlOcs8DA/+nr2eiXERv0gIhyiKvr2P5DwbBmut3qXEkDalMHTo95BSdL2A== + +"@lancedb/vectordb-linux-x64-gnu@0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.1.19.tgz#8612ce0969fd98ef2f166837d517bcfc32a45937" + integrity sha512-AG0FHksbbr+cHVKPi4B8cmBtqb6T9E0uaK4kyZkXrX52/xtv9RYVZcykaB/tSSm0XNFPWWRnx9R8UqNZV/hxMA== + +"@lancedb/vectordb-win32-x64-msvc@0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.1.19.tgz#6e859949ac2e83546f275b65727eee31451884e9" + integrity sha512-PDWZ2hvLVXH4Z4WIO1rsWY8ev3NpNm7aXlaey32P+l1Iz9Hia9+F2GBpp2UiEQKfvbk82ucAvBLRmpSsHY8Tlw== + "@langchain/core@~0.0.8": version "0.0.9" resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.0.9.tgz#3b4e74693eddcfa5f6e649857b561d3a9b60d1d4" @@ -287,6 +312,11 @@ semver "^7.3.5" tar "^6.1.11" +"@neon-rs/load@^0.0.74": + version "0.0.74" + resolved "https://registry.yarnpkg.com/@neon-rs/load/-/load-0.0.74.tgz#0f887144b0e3ea79e099b89bd83345004adedeb2" + integrity sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1094,6 +1124,15 @@ axios@^1.3.2: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@^1.4.0: + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + b4a@^1.6.4: version "1.6.4" resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" @@ -2310,6 +2349,11 @@ follow-redirects@^1.15.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.15.4: + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -5275,13 +5319,21 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vectordb@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/vectordb/-/vectordb-0.1.12.tgz#b23b9938467415060e53d614e2a84458244eeb17" - integrity sha512-C7/4/n3kBiR2Z5Cgid08z9hUNfVpQaA5WKVyT4msdwmLoSZOltFeikCdx7OM5a6ekd9BwnPbzP8RhNTW8hBfNA== +vectordb@0.1.19: + version "0.1.19" + resolved "https://registry.yarnpkg.com/vectordb/-/vectordb-0.1.19.tgz#a36ea583cbc269c871edefa6a2abc5467e902d83" + integrity sha512-AS73SjteiLFM5qJQ9YwwYORd2vIVDseEq/vZmwZVbCwJAyD7M52uCiZir0cScRRAisovQZFoyvAKwZs2T4gOmw== dependencies: "@apache-arrow/ts" "^12.0.0" + "@neon-rs/load" "^0.0.74" apache-arrow "^12.0.0" + axios "^1.4.0" + optionalDependencies: + "@lancedb/vectordb-darwin-arm64" "0.1.19" + "@lancedb/vectordb-darwin-x64" "0.1.19" + "@lancedb/vectordb-linux-arm64-gnu" "0.1.19" + "@lancedb/vectordb-linux-x64-gnu" "0.1.19" + "@lancedb/vectordb-win32-x64-msvc" "0.1.19" vlq@^0.2.1: version "0.2.3"
Linux/MacOsWindows PowershellMount the storage locally and run AnythingLLM in Docker
+ Linux/MacOs + ```shell @@ -48,13 +53,19 @@ docker run -d -p 3001:3001 \ -v ${STORAGE_LOCATION}:/app/server/storage \ -v ${STORAGE_LOCATION}/.env:/app/server/.env \ -e STORAGE_DIR="/app/server/storage" \ -mintplexlabs/anythingllm:master +mintplexlabs/anythingllm ``` +
+ Windows ```powershell +# Run this in powershell terminal $env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; ` If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; ` If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env"}; ` @@ -63,7 +74,7 @@ docker run -d -p 3001:3001 ` -v "$env:STORAGE_LOCATION`:/app/server/storage" ` -v "$env:STORAGE_LOCATION\.env:/app/server/.env" ` -e STORAGE_DIR="/app/server/storage" ` -mintplexlabs/anythingllm:master; +mintplexlabs/anythingllm; ```