Refactor: Tianji (#6662)
This commit is contained in:
parent
755da8bdc3
commit
d5b0209453
49
ct/tianji.sh
49
ct/tianji.sh
@ -29,33 +29,26 @@ function update_script() {
|
|||||||
if ! command -v jq &>/dev/null; then
|
if ! command -v jq &>/dev/null; then
|
||||||
$STD apt-get install -y jq
|
$STD apt-get install -y jq
|
||||||
fi
|
fi
|
||||||
if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "22" ]]; then
|
|
||||||
msg_info "Installing Node.js 22"
|
|
||||||
$STD apt-get purge -y nodejs
|
|
||||||
rm -f /etc/apt/sources.list.d/nodesource.list
|
|
||||||
rm -f /etc/apt/keyrings/nodesource.gpg
|
|
||||||
mkdir -p /etc/apt/keyrings
|
|
||||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get install -y nodejs
|
|
||||||
$STD npm install -g pnpm@9.7.1
|
|
||||||
msg_ok "Node.js 22 installed"
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
|
||||||
msg_info "Stopping ${APP} Service"
|
|
||||||
systemctl stop tianji
|
|
||||||
msg_ok "Stopped ${APP} Service"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
RELEASE=$(curl -fsSL https://api.github.com/repos/msgbyte/tianji/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
cd /opt
|
if [[ "${RELEASE}" != "$(cat ~/.tianji 2>/dev/null)" ]] || [[ ! -f ~/.tianji ]]; then
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||||
|
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop tianji
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backing up data"
|
||||||
cp /opt/tianji/src/server/.env /opt/.env
|
cp /opt/tianji/src/server/.env /opt/.env
|
||||||
mv /opt/tianji /opt/tianji_bak
|
mv /opt/tianji /opt/tianji_bak
|
||||||
curl -fsSL "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip")
|
msg_ok "Backed up data"
|
||||||
$STD unzip v${RELEASE}.zip
|
|
||||||
mv tianji-${RELEASE} /opt/tianji
|
fetch_and_deploy_gh_release "tianji" "msgbyte/tianji"
|
||||||
cd tianji
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
cd /opt/tianji
|
||||||
export NODE_OPTIONS="--max_old_space_size=4096"
|
export NODE_OPTIONS="--max_old_space_size=4096"
|
||||||
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
|
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
|
||||||
$STD pnpm build:static
|
$STD pnpm build:static
|
||||||
@ -66,15 +59,17 @@ function update_script() {
|
|||||||
mv /opt/.env /opt/tianji/src/server/.env
|
mv /opt/.env /opt/tianji/src/server/.env
|
||||||
cd src/server
|
cd src/server
|
||||||
$STD pnpm db:migrate:apply
|
$STD pnpm db:migrate:apply
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
msg_ok "Updated ${APP}"
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
|
||||||
|
msg_info "Updating AppRise"
|
||||||
|
$STD uv pip install apprise cryptography --system
|
||||||
|
msg_ok "Updated AppRise"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start tianji
|
systemctl start tianji
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -R /opt/v${RELEASE}.zip
|
|
||||||
rm -rf /opt/tianji_bak
|
rm -rf /opt/tianji_bak
|
||||||
rm -rf /opt/tianji/src/client
|
rm -rf /opt/tianji/src/client
|
||||||
rm -rf /opt/tianji/website
|
rm -rf /opt/tianji/website
|
||||||
|
@ -21,9 +21,7 @@ $STD apt-get install -y \
|
|||||||
g++ \
|
g++ \
|
||||||
build-essential \
|
build-essential \
|
||||||
git \
|
git \
|
||||||
make \
|
ca-certificates
|
||||||
ca-certificates \
|
|
||||||
jq
|
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||||
@ -39,27 +37,25 @@ $STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
|
|||||||
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
|
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
|
||||||
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME OWNER TO $DB_USER;"
|
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME OWNER TO $DB_USER;"
|
||||||
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
|
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
|
||||||
echo "" >>~/tianji.creds
|
{
|
||||||
echo -e "Tianji Database User: $DB_USER" >>~/tianji.creds
|
echo ""
|
||||||
echo -e "Tianji Database Password: $DB_PASS" >>~/tianji.creds
|
echo "Database User: $DB_USER"
|
||||||
echo -e "Tianji Database Name: $DB_NAME" >>~/tianji.creds
|
echo "Database Password: $DB_PASS"
|
||||||
echo -e "Tianji Secret: $TIANJI_SECRET" >>~/tianji.creds
|
echo "Database Name: $DB_NAME"
|
||||||
|
echo "Tianji Secret: $TIANJI_SECRET"
|
||||||
|
} >>~/tianji.creds
|
||||||
msg_ok "Set up PostgreSQL"
|
msg_ok "Set up PostgreSQL"
|
||||||
|
|
||||||
msg_info "Installing Tianji (Extreme Patience)"
|
fetch_and_deploy_gh_release "tianji" "msgbyte/tianji"
|
||||||
cd /opt
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
msg_info "Setup Tianji"
|
||||||
curl -fsSL "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
cd /opt/tianji
|
||||||
$STD unzip v${RELEASE}.zip
|
|
||||||
mv tianji-${RELEASE} /opt/tianji
|
|
||||||
cd tianji
|
|
||||||
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
|
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
|
||||||
$STD pnpm build:static
|
$STD pnpm build:static
|
||||||
$STD pnpm install --filter @tianji/server... --config.dedupe-peer-dependents=false
|
$STD pnpm install --filter @tianji/server... --config.dedupe-peer-dependents=false
|
||||||
mkdir -p ./src/server/public
|
mkdir -p ./src/server/public
|
||||||
cp -r ./geo ./src/server/public
|
cp -r ./geo ./src/server/public
|
||||||
$STD pnpm build:server
|
$STD pnpm build:server
|
||||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
|
||||||
cat <<EOF >/opt/tianji/src/server/.env
|
cat <<EOF >/opt/tianji/src/server/.env
|
||||||
DATABASE_URL="postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME?schema=public"
|
DATABASE_URL="postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME?schema=public"
|
||||||
OPENAI_API_KEY=""
|
OPENAI_API_KEY=""
|
||||||
@ -67,7 +63,11 @@ JWT_SECRET="$TIANJI_SECRET"
|
|||||||
EOF
|
EOF
|
||||||
cd /opt/tianji/src/server
|
cd /opt/tianji/src/server
|
||||||
$STD pnpm db:migrate:apply
|
$STD pnpm db:migrate:apply
|
||||||
msg_ok "Installed Tianji"
|
msg_ok "Setup Tianji"
|
||||||
|
|
||||||
|
msg_info "Setup AppRise"
|
||||||
|
$STD uv pip install apprise cryptography --system
|
||||||
|
msg_ok "Setup AppRise"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/tianji.service
|
cat <<EOF >/etc/systemd/system/tianji.service
|
||||||
@ -93,7 +93,6 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -R /opt/v${RELEASE}.zip
|
|
||||||
rm -rf /opt/tianji/src/client
|
rm -rf /opt/tianji/src/client
|
||||||
rm -rf /opt/tianji/website
|
rm -rf /opt/tianji/website
|
||||||
rm -rf /opt/tianji/reporter
|
rm -rf /opt/tianji/reporter
|
||||||
|
Loading…
x
Reference in New Issue
Block a user