services:
web:
build:
dockerfile: Dockerfile.dev
restart: unless-stopped
volumes:
- ..:/app
- node_modules:/app/node_modules
- pnpm-store:/pnpm
- data:${DATA_DIR:-/data}
ports:
- 3000:3000
environment:
MEILI_ADDR: ${MEILI_ADDR:-http://meilisearch:7700}
BROWSER_WEB_URL: ${BROWSER_WEB_URL:-http://chrome:9222}
NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-super-secure-nextauth-secret}
DATA_DIR: ${DATA_DIR:-/data}
HOSTNAME: 0.0.0.0
WATCHPACK_POLLING: "true"
CHOKIDAR_USEPOLLING: "true"
command:
- pnpm
- web
working_dir: /app
depends_on:
prep:
condition: service_completed_successfully
meilisearch:
condition: service_started
chrome:
condition: service_started
chrome:
image: ghcr.io/karakeep-app/karakeep-chrome:release
restart: unless-stopped
init: true
ports:
- 127.0.0.1:9222:9222
command:
- --disable-gpu
- --disable-dev-shm-usage
- --hide-scrollbars
- --disable-blink-features=AutomationControlled
- --window-size=1440,900
meilisearch:
image: getmeili/meilisearch:v1.41.0
restart: unless-stopped
environment:
MEILI_NO_ANALYTICS: "true"
MEILI_MASTER_KEY: ${MEILI_MASTER_KEY:-}
volumes:
- meilisearch:/meili_data
workers:
build:
dockerfile: Dockerfile.dev
restart: unless-stopped
volumes:
- ..:/app
- node_modules:/app/node_modules
- pnpm-store:/pnpm
- data:${DATA_DIR:-/data}
working_dir: /app
environment:
DATA_DIR: ${DATA_DIR:-/data}
MEILI_ADDR: ${MEILI_ADDR:-http://meilisearch:7700}
BROWSER_WEB_URL: ${BROWSER_WEB_URL:-http://chrome:9222}
NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-super-secure-nextauth-secret}
command:
- pnpm
- workers
depends_on:
prep:
condition: service_completed_successfully
meilisearch:
condition: service_started
chrome:
condition: service_started
prep:
build:
dockerfile: Dockerfile.dev
restart: "no"
working_dir: /app
environment:
DATA_DIR: ${DATA_DIR:-/data}
MEILI_ADDR: ${MEILI_ADDR:-http://meilisearch:7700}
NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-super-secure-nextauth-secret}
volumes:
- ..:/app
- node_modules:/app/node_modules
- pnpm-store:/pnpm
- data:${DATA_DIR:-/data}
command:
- /bin/sh
- -c
- mkdir -p "${DATA_DIR:-/data}" && pnpm install --frozen-lockfile && pnpm run db:migrate
volumes:
meilisearch:
data:
node_modules:
pnpm-store: