diff --git a/install/tianji-install.sh b/install/tianji-install.sh index d7d73c17..4deea1ba 100644 --- a/install/tianji-install.sh +++ b/install/tianji-install.sh @@ -15,7 +15,7 @@ setting_up_container network_check update_os -msg_info "Installing Dependencies (Patience)" +msg_info "Installing Dependencies" $STD apt-get install -y \ postgresql \ build-essential \ @@ -28,34 +28,17 @@ $STD apt-get install -y \ mc msg_ok "Installed Dependencies" -msg_info "Setting up Node.js Repository" +msg_info "Installing Node.js, pnpm & pm2" 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_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list $STD apt-get update -msg_ok "Set up Repositories" - -msg_info "Installing Node.js, pnpm & pm2" $STD apt-get install -y nodejs $STD npm install -g pnpm@9.7.1 $STD npm install -g pm2 msg_ok "Installed Node.js, pnpm & pm2" - -msg_info "Setup Tianji (Patience)" -cd /opt -RELEASE=$(curl -s https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -wget -q "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" -unzip -q v${RELEASE}.zip -mv tianji-${RELEASE} /opt/tianji -cd tianji -export NODE_OPTIONS=--max_old_space_size=4096 -$STD pnpm install -$STD pnpm build -echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" -msg_ok "Initial Setup complete" - -msg_info "Setting up Database" +msg_info "Setting up PostgreSQL" DB_NAME=tianji_db DB_USER=tianji DB_PASS="$(openssl rand -base64 18 | cut -c1-13)" @@ -70,33 +53,37 @@ echo -e "Tianji Database User: $DB_USER" >>~/tianji.creds echo -e "Tianji Database Password: $DB_PASS" >>~/tianji.creds echo -e "Tianji Database Name: $DB_NAME" >>~/tianji.creds echo -e "Tianji Secret: $TIANJI_SECRET" >>~/tianji.creds -msg_ok "Set up PostgreSQL database" +msg_ok "Set up PostgreSQL" -msg_info "Setting up Tianji Env" +msg_info "Installing Tianji (Extreme Patience)" +cd /opt +RELEASE=$(curl -s https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +wget -q "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" +unzip -q v${RELEASE}.zip +mv tianji-${RELEASE} /opt/tianji +cd tianji +export NODE_OPTIONS=--max_old_space_size=4096 +$STD pnpm install +$STD pnpm build +echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" cat </opt/tianji/src/server/.env -DATABASE_URL="postgresql://$DB_USER:$DB_PASS@127.0.0.1:5432/$DB_NAME?schema=public" +DATABASE_URL="postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME?schema=public" JWT_SECRET="$TIANJI_SECRET" EOF -msg_ok ".env successfully set up" - -msg_info "Initialize Application" cd /opt/tianji $STD npm install pm2 -g $STD pm2 install pm2-logrotate cd src/server $STD pnpm db:migrate:apply -msg_ok "Application Initialized" - -msg_info "Activate PM2 Service" $STD pm2 start /opt/tianji/src/server/dist/src/server/main.js --name tianji $STD pm2 save -msg_ok "Service activated" +msg_ok "Installed Tianji" motd_ssh customize msg_info "Cleaning up" rm -R /opt/v${RELEASE}.zip -$STD apt-get autoremove -y -$STD apt-get autoclean -y +$STD apt-get -y autoremove +$STD apt-get -y autoclean msg_ok "Cleaned"