| MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai} | MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai} | ||||
| TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-} | TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-} | ||||
| INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-} | INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-} | ||||
| PM2_INSTANCES: ${PM2_INSTANCES:-2} | |||||
| # The postgres database. | # The postgres database. | ||||
| db: | db: |
| MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai} | MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai} | ||||
| TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-} | TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-} | ||||
| INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-} | INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-} | ||||
| PM2_INSTANCES: ${PM2_INSTANCES:-2} | |||||
| # The postgres database. | # The postgres database. | ||||
| db: | db: |
| ENV MARKETPLACE_URL=http://127.0.0.1:5001 | ENV MARKETPLACE_URL=http://127.0.0.1:5001 | ||||
| ENV PORT=3000 | ENV PORT=3000 | ||||
| ENV NEXT_TELEMETRY_DISABLED=1 | ENV NEXT_TELEMETRY_DISABLED=1 | ||||
| ENV PM2_INSTANCES=2 | |||||
| # set timezone | # set timezone | ||||
| ENV TZ=UTC | ENV TZ=UTC | ||||
| COPY --from=builder /app/web/.next/standalone ./ | COPY --from=builder /app/web/.next/standalone ./ | ||||
| COPY --from=builder /app/web/.next/static ./.next/static | COPY --from=builder /app/web/.next/static ./.next/static | ||||
| COPY docker/pm2.json ./pm2.json | |||||
| COPY docker/entrypoint.sh ./entrypoint.sh | COPY docker/entrypoint.sh ./entrypoint.sh | ||||
| pnpm run start --port=3001 --host=0.0.0.0 | pnpm run start --port=3001 --host=0.0.0.0 | ||||
| ``` | ``` | ||||
| If you want to customize the number of instances launched by PM2, you can configure `PM2_INSTANCES` in `docker-compose.yaml` or `Dockerfile`. | |||||
| ## Storybook | ## Storybook | ||||
| This project uses [Storybook](https://storybook.js.org/) for UI component development. | This project uses [Storybook](https://storybook.js.org/) for UI component development. |
| export NEXT_PUBLIC_TOP_K_MAX_VALUE=${TOP_K_MAX_VALUE} | export NEXT_PUBLIC_TOP_K_MAX_VALUE=${TOP_K_MAX_VALUE} | ||||
| export NEXT_PUBLIC_INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH} | export NEXT_PUBLIC_INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH} | ||||
| pm2 start ./pm2.json --no-daemon | |||||
| pm2 start /app/web/server.js --name dify-web --cwd /app/web -i ${PM2_INSTANCES} --no-daemon |