修复 debian apt 命令,支持 qinglong 命令

This commit is contained in:
whyour 2023-07-23 22:13:55 +08:00
parent e96fac92d4
commit fadca68d5f
5 changed files with 145 additions and 4 deletions

View File

@ -58,6 +58,11 @@ jobs:
pnpm install --frozen-lockfile
pnpm build:front
pnpm build:back
- name: publich npm package
run: |
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc
npm publish
- name: copy to static repo
env:
@ -160,7 +165,6 @@ jobs:
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

20
.npmignore Normal file
View File

@ -0,0 +1,20 @@
.github/
.vscode/
.history/
back/
cli/
data/
src/
static/**/*.js.map
static/**/*.gz
.editorconfig
.gitignore
.prettierignore
.prettierrc
.umirc.ts
nodemon.json
pnpm-lock.yaml
tsconfig.back.json
tsconfig.json
typings.d.ts
.env

View File

@ -1,6 +1,6 @@
FROM node:20-slim AS nodebuilder
FROM python:3.11-slim AS builder
FROM python:3.11-slim-bullseye AS builder
COPY package.json .npmrc pnpm-lock.yaml /tmp/build/
COPY --from=nodebuilder /usr/local/bin/node /usr/local/bin/
COPY --from=nodebuilder /usr/local/lib/node_modules/. /usr/local/lib/node_modules/
@ -12,7 +12,7 @@ RUN set -x && \
cd /tmp/build && \
pnpm install --prod
FROM python:3.11-slim
FROM python:3.11-slim-bullseye
ARG QL_MAINTAINER="whyour"
LABEL maintainer="${QL_MAINTAINER}"
@ -36,6 +36,9 @@ RUN set -x && \
apt install --no-install-recommends -y git \
curl \
wget \
tzdata \
perl \
openssl \
nginx \
jq \
procps \

View File

@ -1,5 +1,16 @@
{
"private": true,
"name": "@whyour/qinglong",
"version": "0.7.6",
"description": "Timed task management platform supporting Python3, JavaScript, Shell, Typescript",
"repository": {
"type": "git",
"url": "https://github.com/whyour/qinglong.git"
},
"author": "whyour",
"license": "Apache License 2.0",
"bugs": {
"url": "https://github.com/whyour/qinglong/issues"
},
"scripts": {
"start": "concurrently -n w: npm:start:*",
"start:back": "nodemon",
@ -25,6 +36,11 @@
"prettier --parser=typescript --write"
]
},
"bin": {
"ql": "shell/update.sh",
"task": "shell/task.sh",
"qinglong": "shell/start.sh"
},
"pnpm": {
"peerDependencyRules": {
"ignoreMissing": [

98
shell/start.sh Normal file
View File

@ -0,0 +1,98 @@
#!/usr/bin/env bash
# 前置依赖 nodejs、npm
set -e
set -x
if [[ ! $QL_DIR ]]; then
npm_dir=$(npm root -g)
pnpm_dir=$(pnpm root -g)
if [[ -d "$npm_dir/@whyour/qinglong" ]]; then
QL_DIR="$npm_dir/@whyour/qinglong"
elif [[ -d "$pnpm_dir/@whyour/qinglong" ]]; then
QL_DIR="$pnpm_dir/@whyour/qinglong"
else
echo -e "未找到 qinglong 模块,请先执行 npm i -g @whyour/qinglong 安装"
fi
if [[ $QL_DIR ]]; then
echo -e "请先设置 export QL_DIR=$QL_DIR,环境变量,并添加到系统环境变量,然后再次执行命令 qinglong 启动服务"
fi
exit 1
fi
if [[ ! $QL_DATA_DIR ]]; then
echo -e "请先设置数据存储目录 export QL_DATA_DIR 环境变量,目录必须以斜杠开头的绝对路径,并添加到系统环境变量"
exit 1
fi
# 安装依赖
os_name=$(source /etc/os-release && echo "$ID")
if [[ $os_name == 'alpine' ]]; then
apk update
apk add -f bash \
coreutils \
git \
curl \
wget \
tzdata \
perl \
openssl \
jq \
nginx \
openssh \
procps \
netcat-openbsd
elif [[ $os_name == 'debian' ]] || [[ $os_name == 'ubuntu' ]]; then
apt update
apt install -y git curl wget tzdata perl openssl jq nginx procps netcat
elif [[ $os_name == 'centos' ]]; then
yum update
yum install -y epel-release git curl wget tzdata perl openssl jq nginx procps netcat
else
echo -e "暂不支持此系统部署 $os_name"
exit 1
fi
npm install -g pnpm@8.3.1
cd && pnpm config set registry https://registry.npmmirror.com
pnpm add -g pm2 tsx
cd ${QL_DIR}
cp -f .env.example .env
chmod 777 ${QL_DIR}/shell/*.sh
. ${QL_DIR}/shell/share.sh
make_dir /etc/nginx/conf.d
make_dir /run/nginx
init_nginx
fix_config
pm2 l &>/dev/null
patch_version
if [[ $PipMirror ]]; then
pip3 config set global.index-url $PipMirror
fi
current_npm_registry=$(cd && pnpm config get registry)
is_equal_registry=$(echo $current_npm_registry | grep "${NpmMirror}")
if [[ "$is_equal_registry" == "" ]]; then
cd && pnpm config set registry $NpmMirror
pnpm install -g
fi
update_depend
reload_pm2
nginx -s reload 2>/dev/null || nginx -c /etc/nginx/nginx.conf
if [[ $AutoStartBot == true ]]; then
nohup ql -l bot >$dir_log/bot.log 2>&1 &
fi
if [[ $EnableExtraShell == true ]]; then
nohup ql -l extra >$dir_log/extra.log 2>&1 &
fi