-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request janhq#2121 from janhq/dev
Release cut v0.4.7
- Loading branch information
Showing
315 changed files
with
8,629 additions
and
4,342 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
{ | ||
"name": "jan", | ||
"image": "node:20" | ||
} | ||
"name": "jan", | ||
"image": "node:20" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
name: Jan Electron Linter & Test | ||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- main | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: Jan Build Docker Nightly or Manual | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
- feature/helmchart-and-ci-jan-server | ||
paths-ignore: | ||
- 'README.md' | ||
- 'docs/**' | ||
schedule: | ||
- cron: '0 20 * * 1,2,3' # At 8 PM UTC on Monday, Tuesday, and Wednesday which is 3 AM UTC+7 Tuesday, Wednesday, and Thursday | ||
workflow_dispatch: | ||
|
||
jobs: | ||
# Job create Update app version based on latest release tag with build number and save to output | ||
get-update-version: | ||
uses: ./.github/workflows/template-get-update-version.yml | ||
|
||
build-cpu: | ||
uses: ./.github/workflows/template-build-jan-server.yml | ||
permissions: | ||
packages: write | ||
secrets: inherit | ||
needs: [get-update-version] | ||
with: | ||
dockerfile_path: ./Dockerfile | ||
docker_image_tag: "ghcr.io/janhq/jan-server:dev-cpu-latest,ghcr.io/janhq/jan-server:dev-cpu-${{ needs.get-update-version.outputs.new_version }}" | ||
|
||
build-gpu: | ||
uses: ./.github/workflows/template-build-jan-server.yml | ||
permissions: | ||
packages: write | ||
secrets: inherit | ||
needs: [get-update-version] | ||
with: | ||
dockerfile_path: ./Dockerfile.gpu | ||
docker_image_tag: "ghcr.io/janhq/jan-server:dev-cuda-12.2-latest,ghcr.io/janhq/jan-server:dev-cuda-12.2-${{ needs.get-update-version.outputs.new_version }}" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
name: Jan Build Docker | ||
|
||
on: | ||
push: | ||
tags: ["v[0-9]+.[0-9]+.[0-9]+"] | ||
|
||
jobs: | ||
# Job create Update app version based on latest release tag with build number and save to output | ||
get-update-version: | ||
uses: ./.github/workflows/template-get-update-version.yml | ||
|
||
build-cpu: | ||
permissions: | ||
packages: write | ||
uses: ./.github/workflows/template-build-jan-server.yml | ||
secrets: inherit | ||
needs: [get-update-version] | ||
with: | ||
dockerfile_path: ./Dockerfile | ||
docker_image_tag: "ghcr.io/janhq/jan-server:cpu-latest,ghcr.io/janhq/jan-server:cpu-${{ needs.get-update-version.outputs.new_version }}" | ||
|
||
build-gpu: | ||
permissions: | ||
packages: write | ||
uses: ./.github/workflows/template-build-jan-server.yml | ||
secrets: inherit | ||
needs: [get-update-version] | ||
with: | ||
dockerfile_path: ./Dockerfile.gpu | ||
docker_image_tag: "ghcr.io/janhq/jan-server:cuda-12.2-latest,ghcr.io/janhq/jan-server:cuda-12.2-${{ needs.get-update-version.outputs.new_version }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: build-jan-server | ||
on: | ||
workflow_call: | ||
inputs: | ||
dockerfile_path: | ||
required: false | ||
type: string | ||
default: './Dockerfile' | ||
docker_image_tag: | ||
required: true | ||
type: string | ||
default: 'ghcr.io/janhq/jan-server:dev-latest' | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME: janhq/jan-server | ||
permissions: | ||
packages: write | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Log in to the Container registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Build and push Docker image | ||
uses: docker/build-push-action@v3 | ||
with: | ||
context: . | ||
file: ${{ inputs.dockerfile_path }} | ||
push: true | ||
tags: ${{ inputs.docker_image_tag }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,61 @@ | ||
FROM node:20-bullseye AS base | ||
FROM node:20-bookworm AS base | ||
|
||
# 1. Install dependencies only when needed | ||
FROM base AS deps | ||
FROM base AS builder | ||
|
||
# Install g++ 11 | ||
RUN apt update && apt install -y gcc-11 g++-11 cpp-11 jq xsel && rm -rf /var/lib/apt/lists/* | ||
|
||
WORKDIR /app | ||
|
||
# Install dependencies based on the preferred package manager | ||
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./ | ||
RUN yarn install | ||
COPY . ./ | ||
|
||
# # 2. Rebuild the source code only when needed | ||
FROM base AS builder | ||
WORKDIR /app | ||
COPY --from=deps /app/node_modules ./node_modules | ||
COPY . . | ||
# This will do the trick, use the corresponding env file for each environment. | ||
RUN yarn workspace server install | ||
RUN yarn server:prod | ||
RUN export NITRO_VERSION=$(cat extensions/inference-nitro-extension/bin/version.txt) && \ | ||
jq --arg nitroVersion $NITRO_VERSION '(.scripts."downloadnitro:linux" | gsub("\\${NITRO_VERSION}"; $nitroVersion)) | gsub("\r"; "")' extensions/inference-nitro-extension/package.json > /tmp/newcommand.txt && export NEW_COMMAND=$(sed 's/^"//;s/"$//' /tmp/newcommand.txt) && jq --arg newCommand "$NEW_COMMAND" '.scripts."downloadnitro:linux" = $newCommand' extensions/inference-nitro-extension/package.json > /tmp/package.json && mv /tmp/package.json extensions/inference-nitro-extension/package.json | ||
RUN make install-and-build | ||
|
||
# 3. Production image, copy all the files and run next | ||
# # 2. Rebuild the source code only when needed | ||
FROM base AS runner | ||
|
||
# Install g++ 11 | ||
RUN apt update && apt install -y gcc-11 g++-11 cpp-11 jq xsel && rm -rf /var/lib/apt/lists/* | ||
|
||
WORKDIR /app | ||
|
||
ENV NODE_ENV=production | ||
# Copy the package.json and yarn.lock of root yarn space to leverage Docker cache | ||
COPY --from=builder /app/package.json ./package.json | ||
COPY --from=builder /app/node_modules ./node_modules/ | ||
COPY --from=builder /app/yarn.lock ./yarn.lock | ||
|
||
# Copy the package.json, yarn.lock, and build output of server yarn space to leverage Docker cache | ||
COPY --from=builder /app/core ./core/ | ||
COPY --from=builder /app/server ./server/ | ||
RUN cd core && yarn install && yarn run build | ||
RUN yarn workspace @janhq/server install && yarn workspace @janhq/server build | ||
COPY --from=builder /app/docs/openapi ./docs/openapi/ | ||
|
||
# Copy pre-install dependencies | ||
COPY --from=builder /app/pre-install ./pre-install/ | ||
|
||
# Copy the package.json, yarn.lock, and output of web yarn space to leverage Docker cache | ||
COPY --from=builder /app/uikit ./uikit/ | ||
COPY --from=builder /app/web ./web/ | ||
COPY --from=builder /app/models ./models/ | ||
|
||
RUN yarn workspace @janhq/uikit install && yarn workspace @janhq/uikit build | ||
RUN yarn workspace jan-web install | ||
|
||
RUN npm install -g serve@latest | ||
|
||
# RUN addgroup -g 1001 -S nodejs; | ||
COPY --from=builder /app/server/build ./ | ||
EXPOSE 1337 3000 3928 | ||
|
||
# Automatically leverage output traces to reduce image size | ||
# https://nextjs.org/docs/advanced-features/output-file-tracing | ||
COPY --from=builder /app/server/node_modules ./node_modules | ||
COPY --from=builder /app/server/package.json ./package.json | ||
ENV JAN_API_HOST 0.0.0.0 | ||
ENV JAN_API_PORT 1337 | ||
|
||
EXPOSE 4000 3928 | ||
ENV API_BASE_URL http://localhost:1337 | ||
|
||
ENV PORT 4000 | ||
ENV APPDATA /app/data | ||
CMD ["sh", "-c", "export NODE_ENV=production && yarn workspace jan-web build && cd web && npx serve out & cd server && node build/main.js"] | ||
|
||
CMD ["node", "main.js"] | ||
# docker build -t jan . | ||
# docker run -p 1337:1337 -p 3000:3000 -p 3928:3928 jan |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# Please change the base image to the appropriate CUDA version base on NVIDIA Driver Compatibility | ||
# Run nvidia-smi to check the CUDA version and the corresponding driver version | ||
# Then update the base image to the appropriate CUDA version refer https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda/tags | ||
|
||
FROM nvidia/cuda:12.2.0-runtime-ubuntu22.04 AS base | ||
|
||
# 1. Install dependencies only when needed | ||
FROM base AS builder | ||
|
||
# Install g++ 11 | ||
RUN apt update && apt install -y gcc-11 g++-11 cpp-11 jq xsel curl gnupg make python3-dev && curl -sL https://deb.nodesource.com/setup_20.x | bash - && apt install nodejs -y && rm -rf /var/lib/apt/lists/* | ||
|
||
# Update alternatives for GCC and related tools | ||
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 \ | ||
--slave /usr/bin/g++ g++ /usr/bin/g++-11 \ | ||
--slave /usr/bin/gcov gcov /usr/bin/gcov-11 \ | ||
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 \ | ||
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 && \ | ||
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-11 110 | ||
|
||
RUN npm install -g yarn | ||
|
||
WORKDIR /app | ||
|
||
# Install dependencies based on the preferred package manager | ||
COPY . ./ | ||
|
||
RUN export NITRO_VERSION=$(cat extensions/inference-nitro-extension/bin/version.txt) && \ | ||
jq --arg nitroVersion $NITRO_VERSION '(.scripts."downloadnitro:linux" | gsub("\\${NITRO_VERSION}"; $nitroVersion)) | gsub("\r"; "")' extensions/inference-nitro-extension/package.json > /tmp/newcommand.txt && export NEW_COMMAND=$(sed 's/^"//;s/"$//' /tmp/newcommand.txt) && jq --arg newCommand "$NEW_COMMAND" '.scripts."downloadnitro:linux" = $newCommand' extensions/inference-nitro-extension/package.json > /tmp/package.json && mv /tmp/package.json extensions/inference-nitro-extension/package.json | ||
RUN make install-and-build | ||
|
||
# # 2. Rebuild the source code only when needed | ||
FROM base AS runner | ||
|
||
# Install g++ 11 | ||
RUN apt update && apt install -y gcc-11 g++-11 cpp-11 jq xsel curl gnupg make python3-dev && curl -sL https://deb.nodesource.com/setup_20.x | bash - && apt-get install nodejs -y && rm -rf /var/lib/apt/lists/* | ||
|
||
# Update alternatives for GCC and related tools | ||
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 \ | ||
--slave /usr/bin/g++ g++ /usr/bin/g++-11 \ | ||
--slave /usr/bin/gcov gcov /usr/bin/gcov-11 \ | ||
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 \ | ||
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 && \ | ||
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-11 110 | ||
|
||
RUN npm install -g yarn | ||
|
||
WORKDIR /app | ||
|
||
# Copy the package.json and yarn.lock of root yarn space to leverage Docker cache | ||
COPY --from=builder /app/package.json ./package.json | ||
COPY --from=builder /app/node_modules ./node_modules/ | ||
COPY --from=builder /app/yarn.lock ./yarn.lock | ||
|
||
# Copy the package.json, yarn.lock, and build output of server yarn space to leverage Docker cache | ||
COPY --from=builder /app/core ./core/ | ||
COPY --from=builder /app/server ./server/ | ||
RUN cd core && yarn install && yarn run build | ||
RUN yarn workspace @janhq/server install && yarn workspace @janhq/server build | ||
COPY --from=builder /app/docs/openapi ./docs/openapi/ | ||
|
||
# Copy pre-install dependencies | ||
COPY --from=builder /app/pre-install ./pre-install/ | ||
|
||
# Copy the package.json, yarn.lock, and output of web yarn space to leverage Docker cache | ||
COPY --from=builder /app/uikit ./uikit/ | ||
COPY --from=builder /app/web ./web/ | ||
COPY --from=builder /app/models ./models/ | ||
|
||
RUN yarn workspace @janhq/uikit install && yarn workspace @janhq/uikit build | ||
RUN yarn workspace jan-web install | ||
|
||
RUN npm install -g serve@latest | ||
|
||
EXPOSE 1337 3000 3928 | ||
|
||
ENV LD_LIBRARY_PATH=/usr/local/cuda/targets/x86_64-linux/lib:/usr/local/cuda-12.0/compat${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} | ||
|
||
ENV JAN_API_HOST 0.0.0.0 | ||
ENV JAN_API_PORT 1337 | ||
|
||
ENV API_BASE_URL http://localhost:1337 | ||
|
||
CMD ["sh", "-c", "export NODE_ENV=production && yarn workspace jan-web build && cd web && npx serve out & cd server && node build/main.js"] | ||
|
||
# pre-requisites: nvidia-docker | ||
# docker build -t jan-gpu . -f Dockerfile.gpu | ||
# docker run -p 1337:1337 -p 3000:3000 -p 3928:3928 --gpus all jan-gpu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.