mirror of
https://github.com/langgenius/dify.git
synced 2025-11-10 00:11:30 +00:00
Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: twwu <twwu@dify.ai> Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> Co-authored-by: jyong <718720800@qq.com> Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com> Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com> Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: quicksand <quicksandzn@gmail.com> Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com> Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: Hanqing Zhao <sherry9277@gmail.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Harry <xh001x@hotmail.com>
52 lines
1.7 KiB
Bash
Executable File
52 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Set UTF-8 encoding to address potential encoding issues in containerized environments
|
|
export LANG=${LANG:-en_US.UTF-8}
|
|
export LC_ALL=${LC_ALL:-en_US.UTF-8}
|
|
export PYTHONIOENCODING=${PYTHONIOENCODING:-utf-8}
|
|
|
|
if [[ "${MIGRATION_ENABLED}" == "true" ]]; then
|
|
echo "Running migrations"
|
|
flask upgrade-db
|
|
# Pure migration mode
|
|
if [[ "${MODE}" == "migration" ]]; then
|
|
echo "Migration completed, exiting normally"
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
if [[ "${MODE}" == "worker" ]]; then
|
|
|
|
# Get the number of available CPU cores
|
|
if [ "${CELERY_AUTO_SCALE,,}" = "true" ]; then
|
|
# Set MAX_WORKERS to the number of available cores if not specified
|
|
AVAILABLE_CORES=$(nproc)
|
|
MAX_WORKERS=${CELERY_MAX_WORKERS:-$AVAILABLE_CORES}
|
|
MIN_WORKERS=${CELERY_MIN_WORKERS:-1}
|
|
CONCURRENCY_OPTION="--autoscale=${MAX_WORKERS},${MIN_WORKERS}"
|
|
else
|
|
CONCURRENCY_OPTION="-c ${CELERY_WORKER_AMOUNT:-1}"
|
|
fi
|
|
|
|
exec celery -A celery_entrypoint.celery worker -P ${CELERY_WORKER_CLASS:-gevent} $CONCURRENCY_OPTION \
|
|
--max-tasks-per-child ${MAX_TASKS_PER_CHILD:-50} --loglevel ${LOG_LEVEL:-INFO} \
|
|
-Q ${CELERY_QUEUES:-dataset,pipeline,mail,ops_trace,app_deletion,plugin,workflow_storage,conversation}
|
|
|
|
elif [[ "${MODE}" == "beat" ]]; then
|
|
exec celery -A app.celery beat --loglevel ${LOG_LEVEL:-INFO}
|
|
else
|
|
if [[ "${DEBUG}" == "true" ]]; then
|
|
exec flask run --host=${DIFY_BIND_ADDRESS:-0.0.0.0} --port=${DIFY_PORT:-5001} --debug
|
|
else
|
|
exec gunicorn \
|
|
--bind "${DIFY_BIND_ADDRESS:-0.0.0.0}:${DIFY_PORT:-5001}" \
|
|
--workers ${SERVER_WORKER_AMOUNT:-1} \
|
|
--worker-class ${SERVER_WORKER_CLASS:-gevent} \
|
|
--worker-connections ${SERVER_WORKER_CONNECTIONS:-10} \
|
|
--timeout ${GUNICORN_TIMEOUT:-200} \
|
|
app:app
|
|
fi
|
|
fi
|