109 lines
6.1 KiB
Bash
Executable File
109 lines
6.1 KiB
Bash
Executable File
#!/bin/bash
|
||
set -e
|
||
|
||
# =============================================================================
|
||
# CloudSearch 荳髞ョ驛ィ鄂イ閼壽悽
|
||
# 逕ィ豕<EFBDA8>:
|
||
# curl -sS https://gitea.timxx.cn/admin/CloudSearch/raw/branch/master/source_clean/deploy.sh | bash
|
||
#
|
||
# 蜿ッ騾臥識蠅<E8AD98>序驥擾シ磯Κ鄂イ蜑崎ョセ鄂ョ<E98482><EFBDAE>:
|
||
# CORS_ORIGIN - 鄂醍ォ吝沺蜷搾シ悟ソ<E6829F>。ォ (螯<> https://your-domain.com)
|
||
# JWT_SECRET - JWT 遲セ蜷榊ッ<E6A68A>徴 (逡咏ゥコ閾ェ蜉ィ逕滓<E98095>)
|
||
# ADMIN_PASSWORD - 邂。逅<EFBDA1>遭蟇<E981AD><E89F87><EFBFBD> (逡咏ゥコ閾ェ蜉ィ逕滓<E98095>)
|
||
# REDIS_URL - Redis 霑樊磁 (鮟倩ョ、: redis://redis:6379)
|
||
# LOG_LEVEL - 譌・蠢礼コァ蛻ォ (鮟倩ョ、: info)
|
||
# DEPLOY_DIR - 驛ィ鄂イ逶ョ蠖<EFBDAE> (鮟倩ョ、: /opt/cloudsearch)
|
||
# =============================================================================
|
||
|
||
REPO_URL="https://gitea.timxx.cn/admin/CloudSearch.git"
|
||
IMAGE="gitea.timxx.cn/admin/cloudsearch:latest"
|
||
DEPLOY_DIR="${DEPLOY_DIR:-/opt/cloudsearch}"
|
||
|
||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
|
||
info() { echo -e "${GREEN}[INFO]${NC} $*"; }
|
||
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
||
err() { echo -e "${RED}[ERROR]${NC} $*"; }
|
||
|
||
command -v docker &>/dev/null || { err "Docker 譛ェ螳芽」<E88ABD>シ瑚ッキ蜈亥ョ芽」<E88ABD> Docker"; exit 1; }
|
||
|
||
# 笏笏 譽譟・蠢<EFBDA5>。ォ蜿よ焚 笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏
|
||
if [ -z "$CORS_ORIGIN" ]; then
|
||
PUBLIC_IP=$(curl -s --connect-timeout 3 ifconfig.me 2>/dev/null || curl -s --connect-timeout 3 ip.sb 2>/dev/null || echo "")
|
||
if [ -n "$PUBLIC_IP" ]; then
|
||
CORS_ORIGIN="http://${PUBLIC_IP}:9527"
|
||
warn "譛ェ隶セ鄂ョ CORS_ORIGIN<49>瑚<EFBFBD>蜉ィ譽豬倶クコ: ${CORS_ORIGIN}"
|
||
warn "螯る怙閾ェ螳壻ケ臥ス大沺蜷搾シ瑚ッキ: CORS_ORIGIN=https://your.domain.com curl ... | bash"
|
||
else
|
||
CORS_ORIGIN="http://localhost:9527"
|
||
warn "譛ェ隗ョ<EFBFBD> CORS_ORIGIN<49>御スソ逕ィ鮟倩ョ、: ${CORS_ORIGIN}"
|
||
fi
|
||
fi
|
||
|
||
# 笏笏 諡牙叙莉灘コ<E78198> 笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏
|
||
info "諡牙叙莉灘コ<E78198>..."
|
||
if [ -d "$DEPLOY_DIR/.git" ]; then
|
||
cd "$DEPLOY_DIR" && git pull --ff-only origin master 2>/dev/null || true
|
||
else
|
||
rm -rf "$DEPLOY_DIR"
|
||
git clone --depth 1 "$REPO_URL" "$DEPLOY_DIR"
|
||
fi
|
||
cd "$DEPLOY_DIR/source_clean"
|
||
|
||
# 笏笏 蛻<>困蛻ー髟懷ワ讓。蠑<EFBDA1> 笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏
|
||
if grep -q '^ build:' docker-compose.yml 2>/dev/null; then
|
||
info "驟咲スョ髟懷ワ讓。蠑<EFBDA1>..."
|
||
sed -i 's/^ build:/ # build:/' docker-compose.yml
|
||
sed -i 's/^ context:/ # context:/' docker-compose.yml
|
||
sed -i 's/^ dockerfile:/ # dockerfile:/' docker-compose.yml
|
||
sed -i 's|^ # image: gitea.timxx.cn/admin/cloudsearch:latest| image: gitea.timxx.cn/admin/cloudsearch:latest|' docker-compose.yml
|
||
fi
|
||
|
||
# 笏笏 逕滓<E98095>蟇<EFBFBD>徴 笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏
|
||
JWT_SECRET="${JWT_SECRET:-$(openssl rand -hex 32)}"
|
||
ADMIN_PASSWORD="${ADMIN_PASSWORD:-$(openssl rand -base64 12 | tr -d '=+/' | head -c 16)}"
|
||
|
||
# 笏笏 逕滓<E98095> .env 笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏
|
||
cat > .env <<ENVEOF
|
||
CORS_ORIGIN=${CORS_ORIGIN}
|
||
JWT_SECRET=${JWT_SECRET}
|
||
ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
||
REDIS_URL=${REDIS_URL:-redis://redis:6379}
|
||
LOG_LEVEL=${LOG_LEVEL:-info}
|
||
ENVEOF
|
||
|
||
info "邂。逅<EFBFBD>遭: admin / ${ADMIN_PASSWORD}"
|
||
|
||
# 笏笏 驛ィ鄂イ 笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏
|
||
info "諡牙叙髟懷ワ..."
|
||
docker compose pull app 2>/dev/null || true
|
||
|
||
info "蛛懈ュ「譌ァ譛榊苅..."
|
||
docker compose down --remove-orphans 2>/dev/null || true
|
||
|
||
info "蜷ッ蜉ィ譛榊苅..."
|
||
docker compose up -d
|
||
|
||
# 笏笏 遲牙セ<E78999>ーア扈ェ 笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏
|
||
info "遲牙セ<E78999>恪蜉。蟆ア扈ェ..."
|
||
for i in $(seq 1 15); do
|
||
if curl -s -o /dev/null -w '%{http_code}' http://localhost:9527/health 2>/dev/null | grep -q '200'; then
|
||
break
|
||
fi
|
||
sleep 2
|
||
done
|
||
|
||
# 笏笏 蠑コ蛻カ蜀吝<E89C80>邂。逅<EFBDA1>遭蟇<E981AD><E89F87><EFBFBD>(蜿雁酔譌カ螟<EFBDB6>岼蠖募芦豐。譏ッ蜿鷹㍾蜷ッ,逶エ謗・譖エ譁ー謨ー謐ョ蠎<EFBDAE>) 笏笏笏笏笏笏笏笏笏笏笏)・ケ匸許"w満/<2F>2[楴<>B芳c明桙ククク<EFBDB8>)ヘア封タフ)多痕癖&癜戟
|
||
アスユ閃腐ノ今}チタ∋ス藻オ楳<EFBDB5>)鎖ケヘミ♂宰蠱ミ<EFBFBD>ノ頁ユ・ノ箱揄宰蠱ムゥフ悧<EFBFBD>)鎖ケヘミ<EFBFBD><11><><EFBFBD>楳<EFBFBD>ノ頁ユ・ノ箱揄篇ム癖オヘナア・ム販悧<E8B2A9>)鎖ケヘミ¢<EFBFBD><EFBFBD>ケ舗<EFBFBD><11><><EFBFBD>箱愎槽ム┸槽ム<E6A7BD><EFBE91>隼ヘナア・ム莫、<E88EAB>)鎖ケヘミ■<EFBFBD><EFBFBD><EFBFBD>燕ノ蠱ミケ。<EFBFBD>。M蟷権恆<EFBFBD>5%9}AMM]=I<11>ートタ、<EFBE80>)鎖ケヘミ&皈ヘム・ケ怙<EFBFBD>争ケチノ蔽<EFBFBD>箱扨1
|
||
P▼吹I=4≦揃・ケフ‐!I<14>ヘ碧ケ<E7A2A7>楳<EFBFBD><E6A5B3>、ケ摯ミ<E691AF>揣揃・ク悧<EFBDB8>)・<EFBFBD>。甫・ヘム・ケ悧<EFBFBD>(¢飴チノ蔽<EFBFBD>箱拔AQ≦揃・ケフ`P<><50>ヘンスノ挿。<E68CBF><EFBDA1><EFBFBD><C280>]!I<14>ヘ碧ケ<E7A2A7>楳<EFBFBD><E6A5B3>、ケノユク。。<EFBDA1><EFBDA1>ー揣揃・ク悧<EFBDB8>)<EFBFBD>奮ヘ煤<EFBFBD>(¢飴チノ蔽<EFBFBD>箱<EFBFBD>%9MIP<49>%9Q<≦揃・ケフ。ユヘ碧ケ<E7A2A7>伐<EFBFBD><E4BC90>ヘンスノ挿。<E68CBF><EFBDA1>、〆1UL<4C><C280><EFBFBD>悧ケノユク<EFBE95>揣揃・ク慍■<E6858D><E296A0>、<EFBFBD>)<EFBFBD>)争ケ些スヘ箱、<EFBFBD>(<EFBFBD>ネ<EFBFBD>装リスケユアー<EFBFBD>▼ケ匸京コ<EFBFBD>B芳c明桙尤ヒ烹3垳蝿‰<E89DBF>・ケ匸禦Vテ<56>6サ爺O<E788BA>"w満/<2F>2[停キセ<EFBDB7>3椶7烹;「ォ<>*」娘3<E5A898>"@<40>((激崖崖 |