From 0ef30967dd5c4ff4a4754693bbaf3603789eecac Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Mon, 21 Oct 2024 20:10:08 +0100 Subject: [PATCH 1/8] Docker Additions Added Dockerfile and docker-compose.yml, also adjusted start command to listen for all IP's and on Port 3000 --- Dockerfile | 29 +++++++++++++++++++++++++++++ docker-compose.yml | 23 +++++++++++++++++++++++ package.json | 2 +- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..de88d11 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# Use an official Node.js runtime as the base image +FROM node:20.15.1 + +# Set the working directory in the container +WORKDIR /app + +# Install pnpm +RUN npm install -g pnpm@9.4.0 + +# Copy package.json and pnpm-lock.yaml (if available) +COPY package.json pnpm-lock.yaml* ./ + +# Install dependencies +RUN pnpm install + +# Copy the rest of the application code +COPY . . + +# Build the application +RUN pnpm run build + +# Make sure bindings.sh is executable +RUN chmod +x bindings.sh + +# Expose the port the app runs on (adjust if you specified a different port) +EXPOSE 3000 + +# Start the application +CMD ["pnpm", "run", "start"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..70b4fef --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +services: + bolt-app: + build: + context: . + dockerfile: Dockerfile + ports: + - "3000:3000" + environment: + - NODE_ENV=production + # Add any other environment variables your app needs + # - OPENAI_API_KEY=${OPENAI_API_KEY} + # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} + # - GROQ_API_KEY=${GROQ_API_KEY} + volumes: + # This volume is for development purposes, allowing live code updates + # Comment out or remove for production + - .:/app + # This volume is to prevent node_modules from being overwritten by the above volume + - /app/node_modules + command: pnpm run start + +volumes: + node_modules: \ No newline at end of file diff --git a/package.json b/package.json index 737ca05..7215888 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "test:watch": "vitest", "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", "lint:fix": "npm run lint -- --fix", - "start": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings", + "start": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings --ip 0.0.0.0 --port 3000", "typecheck": "tsc", "typegen": "wrangler types", "preview": "pnpm run build && pnpm run start" From 7424bff375cb89fbfede89adbaedbc934b13b1ad Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Mon, 21 Oct 2024 20:16:16 +0100 Subject: [PATCH 2/8] Create github-build-push.yml --- .github/actions/github-build-push.yml | 50 +++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/actions/github-build-push.yml diff --git a/.github/actions/github-build-push.yml b/.github/actions/github-build-push.yml new file mode 100644 index 0000000..56c7074 --- /dev/null +++ b/.github/actions/github-build-push.yml @@ -0,0 +1,50 @@ +name: Build and Push Container + +on: + push: + branches: + - main + paths: + - 'Dockerfile' + workflow_dispatch: +jobs: + build-and-push: + runs-on: [self-hosted] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and Push Containers + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + platforms: linux/amd64,linux/arm64,linux/arm + push: true + tags: | + ghcr.io/${{ github.repository }}:latest + ghcr.io/${{ github.repository }}:${{ github.sha }} + + - name: Build and Push Containers + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + platforms: linux/amd64,linux/arm64,linux/arm + push: true + tags: | + registry.bukn.net/${{ github.event.repository.name }}:latest + registry.bukn.net/${{ github.event.repository.name }}:${{ github.sha }} From fc688ec038ba9e16780005b3470152cf3193301b Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Mon, 21 Oct 2024 20:17:59 +0100 Subject: [PATCH 3/8] moved action --- .github/{actions => workflows}/github-build-push.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{actions => workflows}/github-build-push.yml (100%) diff --git a/.github/actions/github-build-push.yml b/.github/workflows/github-build-push.yml similarity index 100% rename from .github/actions/github-build-push.yml rename to .github/workflows/github-build-push.yml From 21a0a075f8259c932d819b77030a933399e47587 Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Mon, 21 Oct 2024 20:19:16 +0100 Subject: [PATCH 4/8] Update github-build-push.yml --- .github/workflows/github-build-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github-build-push.yml b/.github/workflows/github-build-push.yml index 56c7074..1d314b7 100644 --- a/.github/workflows/github-build-push.yml +++ b/.github/workflows/github-build-push.yml @@ -9,7 +9,7 @@ on: workflow_dispatch: jobs: build-and-push: - runs-on: [self-hosted] + runs-on: [ubuntu-latest] steps: - name: Checkout code uses: actions/checkout@v4 From 8150f6f4596bc94a925dfc9bc99ce5c96cd52cdd Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Mon, 21 Oct 2024 20:20:04 +0100 Subject: [PATCH 5/8] Update github-build-push.yml --- .github/workflows/github-build-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/github-build-push.yml b/.github/workflows/github-build-push.yml index 1d314b7..c11b7cc 100644 --- a/.github/workflows/github-build-push.yml +++ b/.github/workflows/github-build-push.yml @@ -4,8 +4,8 @@ on: push: branches: - main - paths: - - 'Dockerfile' + # paths: + # - 'Dockerfile' workflow_dispatch: jobs: build-and-push: From 1799636ba26b957ecb63717df711853ce870265c Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Mon, 21 Oct 2024 20:25:56 +0100 Subject: [PATCH 6/8] Update github-build-push.yml --- .github/workflows/github-build-push.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/github-build-push.yml b/.github/workflows/github-build-push.yml index c11b7cc..00177a0 100644 --- a/.github/workflows/github-build-push.yml +++ b/.github/workflows/github-build-push.yml @@ -36,15 +36,4 @@ jobs: push: true tags: | ghcr.io/${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:${{ github.sha }} - - - name: Build and Push Containers - uses: docker/build-push-action@v2 - with: - context: . - file: Dockerfile - platforms: linux/amd64,linux/arm64,linux/arm - push: true - tags: | - registry.bukn.net/${{ github.event.repository.name }}:latest - registry.bukn.net/${{ github.event.repository.name }}:${{ github.sha }} + ghcr.io/${{ github.repository }}:${{ github.sha }} From 29f87974cf7ae7f202559fc212f3ceb037668cc4 Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Mon, 21 Oct 2024 20:29:01 +0100 Subject: [PATCH 7/8] Update github-build-push.yml --- .github/workflows/github-build-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github-build-push.yml b/.github/workflows/github-build-push.yml index 00177a0..4d4db05 100644 --- a/.github/workflows/github-build-push.yml +++ b/.github/workflows/github-build-push.yml @@ -32,7 +32,7 @@ jobs: with: context: . file: Dockerfile - platforms: linux/amd64,linux/arm64,linux/arm + platforms: linux/amd64,linux/arm64 push: true tags: | ghcr.io/${{ github.repository }}:latest From 9ca017c40fda9b79291568b8faaf2b8e21d207af Mon Sep 17 00:00:00 2001 From: Aaron Bolton Date: Wed, 23 Oct 2024 14:57:53 +0100 Subject: [PATCH 8/8] Update docker-compose.yml --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 70b4fef..21ef4c0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,6 +11,7 @@ services: # - OPENAI_API_KEY=${OPENAI_API_KEY} # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} # - GROQ_API_KEY=${GROQ_API_KEY} + # - OPEN_ROUTER_API_KEY=${OPEN_ROUTER_API_KEY} volumes: # This volume is for development purposes, allowing live code updates # Comment out or remove for production