Skip to content

Instantly share code, notes, and snippets.

@StuMason
Created February 14, 2025 10:09
Show Gist options
  • Save StuMason/1d3517fe949486a9693ed57f543ed189 to your computer and use it in GitHub Desktop.
Save StuMason/1d3517fe949486a9693ed57f543ed189 to your computer and use it in GitHub Desktop.
Bolt.diy v0.0.6 Coolify Docker Compose file
version: '3.8'
services:
bolt:
image: bolt.diy:latest
pull_policy: build
platform: linux/arm64
build:
context: https://github.com/stackblitz-labs/bolt.diy.git#v0.0.6
target: bolt-ai-production
dockerfile_inline: |
FROM node:20.18.0 AS base
WORKDIR /app
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
COPY package.json pnpm-lock.yaml ./
RUN npm install -g [email protected] && pnpm install
COPY . .
RUN git init && \
git config --global user.email "[email protected]" && \
git config --global user.name "Build Process" && \
git add . && \
git commit -m "Initial commit for build"
EXPOSE 5173
FROM base AS bolt-ai-production
ARG GROQ_API_KEY
ARG HuggingFace_API_KEY
ARG OPENAI_API_KEY
ARG ANTHROPIC_API_KEY
ARG OPEN_ROUTER_API_KEY
ARG GOOGLE_GENERATIVE_AI_API_KEY
ARG OLLAMA_API_BASE_URL
ARG XAI_API_KEY
ARG TOGETHER_API_KEY
ARG TOGETHER_API_BASE_URL
ARG AWS_BEDROCK_CONFIG
ARG VITE_LOG_LEVEL=debug
ARG DEFAULT_NUM_CTX
ENV WRANGLER_SEND_METRICS=false \
GROQ_API_KEY=${GROQ_API_KEY} \
HuggingFace_KEY=${HuggingFace_API_KEY} \
OPENAI_API_KEY=${OPENAI_API_KEY} \
ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} \
OPEN_ROUTER_API_KEY=${OPEN_ROUTER_API_KEY} \
GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY} \
OLLAMA_API_BASE_URL=${OLLAMA_API_BASE_URL} \
XAI_API_KEY=${XAI_API_KEY} \
TOGETHER_API_KEY=${TOGETHER_API_KEY} \
TOGETHER_API_BASE_URL=${TOGETHER_API_BASE_URL} \
AWS_BEDROCK_CONFIG=${AWS_BEDROCK_CONFIG} \
VITE_LOG_LEVEL=${VITE_LOG_LEVEL:-debug} \
DEFAULT_NUM_CTX=${DEFAULT_NUM_CTX}\
RUNNING_IN_DOCKER=true \
VITE_CJS_IGNORE_WARNING=true \
VITE_CJS_TRACE=true \
HOST=0.0.0.0 \
NODE_ENV=production
RUN mkdir -p /root/.config/.wrangler && \
echo '{"enabled":false}' > /root/.config/.wrangler/metrics.json
RUN NODE_OPTIONS="--max_old_space_size=4096 --expose-gc" pnpm run build
CMD [ "pnpm", "run", "dockerstart" ]
environment:
- NODE_ENV=production
- COMPOSE_PROFILES=production
- PORT=5173
- RUNNING_IN_DOCKER=true
- NODE_OPTIONS=--max_old_space_size=8192 --expose-gc
- GROQ_API_KEY=${GROQ_API_KEY}
- HuggingFace_API_KEY=${HuggingFace_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPEN_ROUTER_API_KEY=${OPEN_ROUTER_API_KEY}
- GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY}
- OLLAMA_API_BASE_URL=${OLLAMA_API_BASE_URL:-http://host.docker.internal:11434}
- XAI_API_KEY=${XAI_API_KEY}
- TOGETHER_API_KEY=${TOGETHER_API_KEY}
- TOGETHER_API_BASE_URL=${TOGETHER_API_BASE_URL}
- AWS_BEDROCK_CONFIG=${AWS_BEDROCK_CONFIG}
- DEFAULT_NUM_CTX=${DEFAULT_NUM_CTX:-32768}
- VITE_CJS_IGNORE_WARNING=true
- VITE_CJS_TRACE=true
- HOST=0.0.0.0
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 2G
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
security_opt:
- no-new-privileges:true
read_only: false
tmpfs:
- /tmp
- /var/run
labels:
- traefik.enable=true
- traefik.http.routers.bolt.entrypoints=websecure
- traefik.http.routers.bolt.rule=Host(`example.bolt.diy`)
- traefik.http.routers.bolt.tls=true
- traefik.http.routers.bolt.tls.certresolver=coolify
- traefik.http.services.bolt.loadbalancer.server.port=5173
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5173"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment