update appflowy.

This commit is contained in:
amass 2025-03-09 13:26:38 +08:00
parent 33261c721b
commit feb597a567

View File

@ -1,208 +1,227 @@
#!/bin/bash
if [ -f "appflowy.env" ]; then
set -a
source appflowy.env
set +a
set -a
source appflowy.env
set +a
else
echo "cannot find appflowy.env"
exit 1
echo "cannot find appflowy.env"
exit 1
fi
images=(
"appflowyinc/appflowy_web:latest"
"appflowyinc/appflowy_worker:latest"
"appflowyinc/appflowy_ai:latest"
"appflowyinc/admin_frontend:latest"
"appflowyinc/appflowy_cloud:latest"
"appflowyinc/gotrue:latest"
"redis" # 等价于 redis:latest
"pgvector/pgvector:pg16"
"minio/minio:latest"
"appflowyinc/appflowy_web:latest"
"appflowyinc/appflowy_worker:latest"
"appflowyinc/appflowy_ai:latest"
"appflowyinc/admin_frontend:latest"
"appflowyinc/appflowy_cloud:latest"
"appflowyinc/gotrue:latest"
"redis" # 等价于 redis:latest
"pgvector/pgvector:pg16"
"minio/minio:latest"
)
CONTAINERS=(
frpc
minio
postgres
redis
appflowy_gotrue
appflowy_cloud
appflowy_admin_frontend
appflowy_ai
appflowy_worker
appflowy_web
frpc
minio
postgres
redis
appflowy_gotrue
appflowy_cloud
appflowy_admin_frontend
appflowy_ai
appflowy_worker
appflowy_web
)
for container in "${CONTAINERS[@]}"; do
# for image in "${images[@]}"; do
# echo -e "\n\033[34m pulling image: ${image}\033[0m"
# if docker pull "${image}"; then
# echo -e "\033[32m pull successed: ${image}\033[0m"
# else
# echo -e "\033[31m pull failed: ${image}\033[0m" >&2
# fi
# done
# echo -e "\n\033[36m all images pull finished \033[0m"
function stop_containers() {
for container in "${CONTAINERS[@]}"; do
if docker ps -a --format '{{.Names}}' | grep -q "^${container}\$"; then
echo "delete $container"
docker rm --force "$container" 2>/dev/null && echo "$container delete successed" || echo "$container delete failed"
echo "delete $container"
docker rm --force "$container" 2>/dev/null && echo "$container delete successed" || echo "$container delete failed"
else
echo "$container not existed"
echo "$container not existed"
fi
done
done
}
for image in "${images[@]}"; do
echo -e "\n\033[34m pulling image: ${image}\033[0m"
if docker pull "${image}"; then
echo -e "\033[32m pull successed: ${image}\033[0m"
else
echo -e "\033[31m pull failed: ${image}\033[0m" >&2
fi
done
function start_containers() {
stop_containers
docker run --restart=always --network host -d --name frpc \
-e TZ="Asia/Shanghai" \
-v /mnt/user/appdata/frpc/frpc.toml:/etc/frp/frpc.toml \
-v /mnt/user/appdata/frpc:/app \
registry.cn-shenzhen.aliyuncs.com/amass_toolset/frpc:0.61.2
echo -e "\n\033[36m all images pull finished \033[0m"
docker run -d --name minio --restart=on-failure \
-p 9000:9000 \
-p 9001:9001 \
-e MINIO_BROWSER_REDIRECT_URL="${APPFLOWY_BASE_URL}/minio" \
-e MINIO_ROOT_USER="${APPFLOWY_S3_ACCESS_KEY}" \
-e MINIO_ROOT_PASSWORD="${APPFLOWY_S3_SECRET_KEY}" \
-v /mnt/user/appdata/minio:/data \
minio/minio:latest server /data --console-address ":9001"
docker run --restart=always --network host -d --name frpc \
-e TZ="Asia/Shanghai" \
-v /mnt/user/appdata/frpc/frpc.toml:/etc/frp/frpc.toml \
-v /mnt/user/appdata/frpc:/app \
registry.cn-shenzhen.aliyuncs.com/amass_toolset/frpc:0.61.1
docker run -d --name postgres --restart=on-failure \
-p 5432:5432 \
-e POSTGRES_USER=${POSTGRES_USER} \
-e POSTGRES_DB=${POSTGRES_DB} \
-e POSTGRES_PASSWORD=${POSTGRES_PASSWORD} \
-e POSTGRES_HOST=${POSTGRES_HOST} \
-e SUPABASE_PASSWORD=${SUPABASE_PASSWORD} \
-v /mnt/user/appdata/postgres/migrations/before:/docker-entrypoint-initdb.d \
-v /mnt/user/appdata/postgres/data:/var/lib/postgresql/data \
pgvector/pgvector:pg16
docker run -d --name minio --restart=on-failure \
-p 9000:9000 \
-p 9001:9001 \
-e MINIO_BROWSER_REDIRECT_URL="${APPFLOWY_BASE_URL}/minio" \
-e MINIO_ROOT_USER="${APPFLOWY_S3_ACCESS_KEY}" \
-e MINIO_ROOT_PASSWORD="${APPFLOWY_S3_SECRET_KEY}" \
-v /mnt/user/appdata/minio:/data \
minio/minio:latest server /data --console-address ":9001"
docker run -d --name redis --restart=on-failure -p 6379:6379 redis
docker run -d --name postgres --restart=on-failure \
-p 5432:5432 \
-e POSTGRES_USER=${POSTGRES_USER} \
-e POSTGRES_DB=${POSTGRES_DB} \
-e POSTGRES_PASSWORD=${POSTGRES_PASSWORD} \
-e POSTGRES_HOST=${POSTGRES_HOST} \
-e SUPABASE_PASSWORD=${SUPABASE_PASSWORD} \
-v /mnt/user/appdata/postgres/migrations/before:/docker-entrypoint-initdb.d \
-v /mnt/user/appdata/postgres/data:/var/lib/postgresql/data \
pgvector/pgvector:pg16
docker run -d --name appflowy_gotrue --restart=on-failure \
-p 9999:9999 \
-e GOTRUE_ADMIN_EMAIL=${GOTRUE_ADMIN_EMAIL} \
-e GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD} \
-e GOTRUE_DISABLE_SIGNUP=${GOTRUE_DISABLE_SIGNUP} \
-e GOTRUE_SITE_URL='appflowy-flutter://' \
-e GOTRUE_URI_ALLOW_LIST='**' \
-e GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET} \
-e GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP} \
-e GOTRUE_JWT_ADMIN_GROUP_NAME=supabase_admin \
-e GOTRUE_DB_DRIVER=postgres \
-e API_EXTERNAL_URL=${API_EXTERNAL_URL} \
-e DATABASE_URL=${GOTRUE_DATABASE_URL} \
-e PORT=9999 \
-e GOTRUE_SMTP_HOST=${GOTRUE_SMTP_HOST} \
-e GOTRUE_SMTP_PORT=${GOTRUE_SMTP_PORT} \
-e GOTRUE_SMTP_USER=${GOTRUE_SMTP_USER} \
-e GOTRUE_SMTP_PASS=${GOTRUE_SMTP_PASS} \
-e GOTRUE_MAILER_URLPATHS_CONFIRMATION='/gotrue/verify' \
-e GOTRUE_MAILER_URLPATHS_INVITE='/gotrue/verify' \
-e GOTRUE_MAILER_URLPATHS_RECOVERY='/gotrue/verify' \
-e GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE='/gotrue/verify' \
-e GOTRUE_SMTP_ADMIN_EMAIL=${GOTRUE_SMTP_ADMIN_EMAIL} \
-e GOTRUE_SMTP_MAX_FREQUENCY=${GOTRUE_SMTP_MAX_FREQUENCY:-1ns} \
-e GOTRUE_RATE_LIMIT_EMAIL_SENT=${GOTRUE_RATE_LIMIT_EMAIL_SENT:-100} \
-e GOTRUE_MAILER_AUTOCONFIRM=${GOTRUE_MAILER_AUTOCONFIRM:-false} \
-e GOTRUE_EXTERNAL_GOOGLE_ENABLED=${GOTRUE_EXTERNAL_GOOGLE_ENABLED} \
-e GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID=${GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID} \
-e GOTRUE_EXTERNAL_GOOGLE_SECRET=${GOTRUE_EXTERNAL_GOOGLE_SECRET} \
-e GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI=${GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI} \
-e GOTRUE_EXTERNAL_GITHUB_ENABLED=${GOTRUE_EXTERNAL_GITHUB_ENABLED} \
-e GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=${GOTRUE_EXTERNAL_GITHUB_CLIENT_ID} \
-e GOTRUE_EXTERNAL_GITHUB_SECRET=${GOTRUE_EXTERNAL_GITHUB_SECRET} \
-e GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=${GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI} \
-e GOTRUE_EXTERNAL_DISCORD_ENABLED=${GOTRUE_EXTERNAL_DISCORD_ENABLED} \
-e GOTRUE_EXTERNAL_DISCORD_CLIENT_ID=${GOTRUE_EXTERNAL_DISCORD_CLIENT_ID} \
-e GOTRUE_EXTERNAL_DISCORD_SECRET=${GOTRUE_EXTERNAL_DISCORD_SECRET} \
-e GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI=${GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI} \
appflowyinc/gotrue:latest
docker run -d --name redis --restart=on-failure -p 6379:6379 redis
docker run -d --name appflowy_cloud --restart=on-failure \
-p 8000:8000 \
-e RUST_LOG=${RUST_LOG:-info} \
-e APPFLOWY_ENVIRONMENT=production \
-e APPFLOWY_DATABASE_URL=${APPFLOWY_DATABASE_URL} \
-e APPFLOWY_REDIS_URI=${APPFLOWY_REDIS_URI} \
-e APPFLOWY_GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET} \
-e APPFLOWY_GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP} \
-e APPFLOWY_GOTRUE_BASE_URL=${APPFLOWY_GOTRUE_BASE_URL} \
-e APPFLOWY_GOTRUE_EXT_URL=${API_EXTERNAL_URL} \
-e APPFLOWY_GOTRUE_ADMIN_EMAIL=${GOTRUE_ADMIN_EMAIL} \
-e APPFLOWY_GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD} \
-e APPFLOWY_S3_CREATE_BUCKET=${APPFLOWY_S3_CREATE_BUCKET} \
-e APPFLOWY_S3_USE_MINIO=${APPFLOWY_S3_USE_MINIO} \
-e APPFLOWY_S3_MINIO_URL=${APPFLOWY_S3_MINIO_URL} \
-e APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY} \
-e APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY} \
-e APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET} \
-e APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION} \
-e APPFLOWY_S3_PRESIGNED_URL_ENDPOINT=${APPFLOWY_S3_PRESIGNED_URL_ENDPOINT} \
-e APPFLOWY_MAILER_SMTP_HOST=${APPFLOWY_MAILER_SMTP_HOST} \
-e APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT} \
-e APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME} \
-e APPFLOWY_MAILER_SMTP_EMAIL=${APPFLOWY_MAILER_SMTP_EMAIL} \
-e APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD} \
-e APPFLOWY_MAILER_SMTP_TLS_KIND=${APPFLOWY_MAILER_SMTP_TLS_KIND} \
-e APPFLOWY_ACCESS_CONTROL=${APPFLOWY_ACCESS_CONTROL} \
-e APPFLOWY_DATABASE_MAX_CONNECTIONS=${APPFLOWY_DATABASE_MAX_CONNECTIONS} \
-e AI_SERVER_HOST=${AI_SERVER_HOST} \
-e AI_SERVER_PORT=${AI_SERVER_PORT} \
-e AI_OPENAI_API_KEY=${AI_OPENAI_API_KEY} \
-e APPFLOWY_ADMIN_FRONTEND_PATH_PREFIX=${ADMIN_FRONTEND_PATH_PREFIX} \
-e APPFLOWY_WEB_URL=${APPFLOWY_WEB_URL} \
appflowyinc/appflowy_cloud:latest
docker run -d --name appflowy_gotrue --restart=on-failure \
-p 9999:9999 \
-e GOTRUE_ADMIN_EMAIL=${GOTRUE_ADMIN_EMAIL} \
-e GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD} \
-e GOTRUE_DISABLE_SIGNUP=${GOTRUE_DISABLE_SIGNUP} \
-e GOTRUE_SITE_URL='appflowy-flutter://' \
-e GOTRUE_URI_ALLOW_LIST='**' \
-e GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET} \
-e GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP} \
-e GOTRUE_JWT_ADMIN_GROUP_NAME=supabase_admin \
-e GOTRUE_DB_DRIVER=postgres \
-e API_EXTERNAL_URL=${API_EXTERNAL_URL} \
-e DATABASE_URL=${GOTRUE_DATABASE_URL} \
-e PORT=9999 \
-e GOTRUE_SMTP_HOST=${GOTRUE_SMTP_HOST}\
-e GOTRUE_SMTP_PORT=${GOTRUE_SMTP_PORT} \
-e GOTRUE_SMTP_USER=${GOTRUE_SMTP_USER} \
-e GOTRUE_SMTP_PASS=${GOTRUE_SMTP_PASS} \
-e GOTRUE_MAILER_URLPATHS_CONFIRMATION='/gotrue/verify' \
-e GOTRUE_MAILER_URLPATHS_INVITE='/gotrue/verify' \
-e GOTRUE_MAILER_URLPATHS_RECOVERY='/gotrue/verify' \
-e GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE='/gotrue/verify' \
-e GOTRUE_SMTP_ADMIN_EMAIL=${GOTRUE_SMTP_ADMIN_EMAIL} \
-e GOTRUE_SMTP_MAX_FREQUENCY=${GOTRUE_SMTP_MAX_FREQUENCY:-1ns} \
-e GOTRUE_RATE_LIMIT_EMAIL_SENT=${GOTRUE_RATE_LIMIT_EMAIL_SENT:-100} \
-e GOTRUE_MAILER_AUTOCONFIRM=${GOTRUE_MAILER_AUTOCONFIRM:-false} \
-e GOTRUE_EXTERNAL_GOOGLE_ENABLED=${GOTRUE_EXTERNAL_GOOGLE_ENABLED} \
-e GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID=${GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID} \
-e GOTRUE_EXTERNAL_GOOGLE_SECRET=${GOTRUE_EXTERNAL_GOOGLE_SECRET} \
-e GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI=${GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI} \
-e GOTRUE_EXTERNAL_GITHUB_ENABLED=${GOTRUE_EXTERNAL_GITHUB_ENABLED} \
-e GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=${GOTRUE_EXTERNAL_GITHUB_CLIENT_ID} \
-e GOTRUE_EXTERNAL_GITHUB_SECRET=${GOTRUE_EXTERNAL_GITHUB_SECRET} \
-e GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=${GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI} \
-e GOTRUE_EXTERNAL_DISCORD_ENABLED=${GOTRUE_EXTERNAL_DISCORD_ENABLED} \
-e GOTRUE_EXTERNAL_DISCORD_CLIENT_ID=${GOTRUE_EXTERNAL_DISCORD_CLIENT_ID} \
-e GOTRUE_EXTERNAL_DISCORD_SECRET=${GOTRUE_EXTERNAL_DISCORD_SECRET} \
-e GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI=${GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI} \
appflowyinc/gotrue:latest
docker run -d --name appflowy_admin_frontend \
--restart on-failure \
-p 3001:3000 \
-e RUST_LOG=${RUST_LOG:-info} \
-e ADMIN_FRONTEND_REDIS_URL=${ADMIN_FRONTEND_REDIS_URL} \
-e ADMIN_FRONTEND_GOTRUE_URL=${ADMIN_FRONTEND_GOTRUE_URL} \
-e ADMIN_FRONTEND_APPFLOWY_CLOUD_URL=${ADMIN_FRONTEND_APPFLOWY_CLOUD_URL} \
-e ADMIN_FRONTEND_PATH_PREFIX=${ADMIN_FRONTEND_PATH_PREFIX:-} \
appflowyinc/admin_frontend:latest
docker run -d --name appflowy_ai \
--restart on-failure \
-p 5001:5001 \
-e OPENAI_API_KEY=${AI_OPENAI_API_KEY} \
-e APPFLOWY_AI_SERVER_PORT=${AI_SERVER_PORT} \
-e APPFLOWY_AI_DATABASE_URL=${AI_DATABASE_URL} \
-e APPFLOWY_AI_REDIS_URL=${AI_REDIS_URL} \
appflowyinc/appflowy_ai:latest
docker run -d --name appflowy_cloud --restart=on-failure \
-p 8000:8000 \
-e RUST_LOG=${RUST_LOG:-info} \
-e APPFLOWY_ENVIRONMENT=production \
-e APPFLOWY_DATABASE_URL=${APPFLOWY_DATABASE_URL} \
-e APPFLOWY_REDIS_URI=${APPFLOWY_REDIS_URI} \
-e APPFLOWY_GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET} \
-e APPFLOWY_GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP} \
-e APPFLOWY_GOTRUE_BASE_URL=${APPFLOWY_GOTRUE_BASE_URL} \
-e APPFLOWY_GOTRUE_EXT_URL=${API_EXTERNAL_URL} \
-e APPFLOWY_GOTRUE_ADMIN_EMAIL=${GOTRUE_ADMIN_EMAIL} \
-e APPFLOWY_GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD} \
-e APPFLOWY_S3_CREATE_BUCKET=${APPFLOWY_S3_CREATE_BUCKET} \
-e APPFLOWY_S3_USE_MINIO=${APPFLOWY_S3_USE_MINIO} \
-e APPFLOWY_S3_MINIO_URL=${APPFLOWY_S3_MINIO_URL} \
-e APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY} \
-e APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY} \
-e APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET} \
-e APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION} \
-e APPFLOWY_S3_PRESIGNED_URL_ENDPOINT=${APPFLOWY_S3_PRESIGNED_URL_ENDPOINT} \
-e APPFLOWY_MAILER_SMTP_HOST=${APPFLOWY_MAILER_SMTP_HOST} \
-e APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT} \
-e APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME} \
-e APPFLOWY_MAILER_SMTP_EMAIL=${APPFLOWY_MAILER_SMTP_EMAIL} \
-e APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD} \
-e APPFLOWY_MAILER_SMTP_TLS_KIND=${APPFLOWY_MAILER_SMTP_TLS_KIND} \
-e APPFLOWY_ACCESS_CONTROL=${APPFLOWY_ACCESS_CONTROL} \
-e APPFLOWY_DATABASE_MAX_CONNECTIONS=${APPFLOWY_DATABASE_MAX_CONNECTIONS} \
-e AI_SERVER_HOST=${AI_SERVER_HOST} \
-e AI_SERVER_PORT=${AI_SERVER_PORT} \
-e AI_OPENAI_API_KEY=${AI_OPENAI_API_KEY} \
-e APPFLOWY_ADMIN_FRONTEND_PATH_PREFIX=${ADMIN_FRONTEND_PATH_PREFIX} \
-e APPFLOWY_WEB_URL=${APPFLOWY_WEB_URL} \
appflowyinc/appflowy_cloud:latest
docker run -d --name appflowy_worker \
--restart on-failure \
-e RUST_LOG=${RUST_LOG:-info} \
-e APPFLOWY_ENVIRONMENT=production \
-e APPFLOWY_WORKER_REDIS_URL=${APPFLOWY_WORKER_REDIS_URL} \
-e APPFLOWY_WORKER_ENVIRONMENT=production \
-e APPFLOWY_WORKER_DATABASE_URL=${APPFLOWY_WORKER_DATABASE_URL} \
-e APPFLOWY_WORKER_DATABASE_NAME=${APPFLOWY_WORKER_DATABASE_NAME} \
-e APPFLOWY_WORKER_IMPORT_TICK_INTERVAL=30 \
-e APPFLOWY_S3_USE_MINIO=${APPFLOWY_S3_USE_MINIO} \
-e APPFLOWY_S3_MINIO_URL=${APPFLOWY_S3_MINIO_URL} \
-e APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY} \
-e APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY} \
-e APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET} \
-e APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION} \
-e APPFLOWY_MAILER_SMTP_HOST=${APPFLOWY_MAILER_SMTP_HOST} \
-e APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT} \
-e APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME} \
-e APPFLOWY_MAILER_SMTP_EMAIL=${APPFLOWY_MAILER_SMTP_EMAIL} \
-e APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD} \
-e APPFLOWY_MAILER_SMTP_TLS_KIND=${APPFLOWY_MAILER_SMTP_TLS_KIND} \
appflowyinc/appflowy_worker:latest
docker run -d --name appflowy_admin_frontend \
--restart on-failure \
-p 3001:3000 \
-e RUST_LOG=${RUST_LOG:-info} \
-e ADMIN_FRONTEND_REDIS_URL=${ADMIN_FRONTEND_REDIS_URL} \
-e ADMIN_FRONTEND_GOTRUE_URL=${ADMIN_FRONTEND_GOTRUE_URL} \
-e ADMIN_FRONTEND_APPFLOWY_CLOUD_URL=${ADMIN_FRONTEND_APPFLOWY_CLOUD_URL} \
-e ADMIN_FRONTEND_PATH_PREFIX=${ADMIN_FRONTEND_PATH_PREFIX:-} \
appflowyinc/admin_frontend:latest
docker run -d --name appflowy_web \
--restart on-failure \
-p 8090:80 \
-e AF_BASE_URL="${APPFLOWY_BASE_URL}" \
-e AF_GOTRUE_URL="${API_EXTERNAL_URL}" \
appflowyinc/appflowy_web:latest
}
docker run -d --name appflowy_ai \
--restart on-failure \
-p 5001:5001 \
-e OPENAI_API_KEY=${AI_OPENAI_API_KEY} \
-e APPFLOWY_AI_SERVER_PORT=${AI_SERVER_PORT} \
-e APPFLOWY_AI_DATABASE_URL=${AI_DATABASE_URL} \
-e APPFLOWY_AI_REDIS_URL=${AI_REDIS_URL} \
appflowyinc/appflowy_ai:latest
function main() {
local cmd=$1
shift 1
case $cmd in
stop)
stop_containers
;;
*)
start_containers
;;
esac
}
docker run -d --name appflowy_worker \
--restart on-failure \
-e RUST_LOG=${RUST_LOG:-info} \
-e APPFLOWY_ENVIRONMENT=production \
-e APPFLOWY_WORKER_REDIS_URL=${APPFLOWY_WORKER_REDIS_URL} \
-e APPFLOWY_WORKER_ENVIRONMENT=production \
-e APPFLOWY_WORKER_DATABASE_URL=${APPFLOWY_WORKER_DATABASE_URL} \
-e APPFLOWY_WORKER_DATABASE_NAME=${APPFLOWY_WORKER_DATABASE_NAME} \
-e APPFLOWY_WORKER_IMPORT_TICK_INTERVAL=30 \
-e APPFLOWY_S3_USE_MINIO=${APPFLOWY_S3_USE_MINIO} \
-e APPFLOWY_S3_MINIO_URL=${APPFLOWY_S3_MINIO_URL} \
-e APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY} \
-e APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY} \
-e APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET} \
-e APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION} \
-e APPFLOWY_MAILER_SMTP_HOST=${APPFLOWY_MAILER_SMTP_HOST} \
-e APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT} \
-e APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME} \
-e APPFLOWY_MAILER_SMTP_EMAIL=${APPFLOWY_MAILER_SMTP_EMAIL} \
-e APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD} \
-e APPFLOWY_MAILER_SMTP_TLS_KIND=${APPFLOWY_MAILER_SMTP_TLS_KIND} \
appflowyinc/appflowy_worker:latest
docker run -d --name appflowy_web \
--restart on-failure \
-p 8090:80 \
-e AF_BASE_URL="${APPFLOWY_BASE_URL}" \
-e AF_GOTRUE_URL="${API_EXTERNAL_URL}" \
appflowyinc/appflowy_web:latest
main $@