mira-app-server 1.0.8 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.dockerignore CHANGED
@@ -1,16 +1,91 @@
1
- node_modules
2
- npm-debug.log
3
- test
4
- plugins
5
- dist
6
- tools
7
- data
8
- *.tar
9
- *.ts
10
- !dist
11
- .idea
12
- .vscode
13
- .git
14
- .gitignore
15
- *.db
16
- *.md
1
+ # Node modules 和包管理器文件
2
+ node_modules
3
+ npm-debug.log*
4
+ yarn-debug.log*
5
+ yarn-error.log*
6
+ .npm
7
+ .yarn-integrity
8
+
9
+ # 构建输出(会在容器内重新构建)
10
+ dist
11
+ build
12
+
13
+ # Docker 相关文件
14
+ Dockerfile*
15
+ .dockerignore
16
+ docker-build*.sh
17
+ docker-build*.bat
18
+ *.tar
19
+
20
+ # 测试相关
21
+ test
22
+ coverage
23
+ .nyc_output
24
+
25
+ # 开发工具配置
26
+ .vscode
27
+ .idea
28
+ *.swp
29
+ *.swo
30
+ *~
31
+
32
+ # Git相关
33
+ .git
34
+ .gitignore
35
+ .gitattributes
36
+
37
+ # 环境配置
38
+ .env
39
+ .env.local
40
+ .env.*.local
41
+
42
+ # 日志文件
43
+ logs
44
+ *.log
45
+
46
+ # 临时文件
47
+ .tmp
48
+ .temp
49
+ temp
50
+ *.tmp
51
+
52
+ # OS生成的文件
53
+ .DS_Store
54
+ Thumbs.db
55
+
56
+ # 文档
57
+ README.md
58
+ *.md
59
+
60
+ # 其他不需要的文件
61
+ *.bat
62
+ *.ps1
63
+ .DS_Store?
64
+ ._*
65
+ .Spotlight-V100
66
+ .Trashes
67
+ ehthumbs.db
68
+ Thumbs.db
69
+
70
+ # Docker相关
71
+ Dockerfile*
72
+ docker-compose*
73
+ .dockerignore
74
+ *.tar
75
+
76
+ # 数据库文件
77
+ *.db
78
+ *.sqlite
79
+
80
+ # 文档
81
+ *.md
82
+ README*
83
+
84
+ # 脚本文件
85
+ *.bat
86
+ *.sh
87
+
88
+ # 其他项目目录(如果不需要)
89
+ tools
90
+ data
91
+ plugins
package/Dockerfile CHANGED
@@ -1,38 +1,75 @@
1
1
  # 使用Node.js官方镜像作为基础
2
2
  FROM node:20-alpine
3
3
 
4
- # 安装构建依赖(用于编译native modules如sqlite3)
4
+ # 安装构建依赖和 FFmpeg(用于编译native modules如sqlite3)
5
5
  RUN apk add --no-cache \
6
6
  python3 \
7
7
  py3-setuptools \
8
8
  make \
9
9
  g++ \
10
10
  sqlite \
11
- sqlite-dev
11
+ sqlite-dev \
12
+ ffmpeg \
13
+ ffmpeg-dev
12
14
 
13
15
  # 创建工作目录
14
16
  WORKDIR /app
15
17
 
16
- # 复制package.json和package-lock.json
17
- COPY package*.json ./
18
+ # 首先复制根目录的 package.json 和相关配置文件
19
+ COPY packages/package*.json ./packages/
20
+ COPY packages/mira-server/package*.json ./packages/mira-server/
21
+ COPY packages/mira-core/package*.json ./packages/mira-core/
22
+ COPY packages/mira-storage-sqlite/package*.json ./packages/mira-storage-sqlite/
18
23
 
19
- # 复制项目文件(需要在npm install之前复制,因为prepublish脚本会运行build)
20
- COPY . .
24
+ # 复制 tsconfig 和其他配置文件
25
+ COPY tsconfig.json ./
26
+ COPY packages/mira-server/tsconfig.json ./packages/mira-server/
27
+ COPY packages/mira-core/tsconfig.json ./packages/mira-core/
28
+ COPY packages/mira-storage-sqlite/tsconfig.json ./packages/mira-storage-sqlite/
29
+
30
+ # 复制源代码
31
+ COPY packages/mira-core/src ./packages/mira-core/src
32
+ COPY packages/mira-server/src ./packages/mira-server/src
33
+ COPY packages/mira-storage-sqlite/src ./packages/mira-storage-sqlite/src
34
+
35
+ # 复制插件目录(如果存在)
36
+ COPY plugins ./plugins
21
37
 
22
38
  # 设置环境变量修复distutils问题并安装依赖
23
39
  ENV SETUPTOOLS_USE_DISTUTILS=stdlib
40
+ ENV FFMPEG_PATH=/usr/bin/ffmpeg
41
+ ENV FFPROBE_PATH=/usr/bin/ffprobe
24
42
 
25
43
  # 清理现有的node_modules和package-lock.json(如果存在)
26
- RUN rm -rf node_modules package-lock.json
44
+ RUN rm -rf packages/*/node_modules packages/*/package-lock.json
45
+
46
+ # 先安装根目录的依赖
47
+ WORKDIR /app/packages
48
+ RUN npm install
27
49
 
28
- # 先安装依赖
50
+ # 安装并构建 mira-core
51
+ WORKDIR /app/packages/mira-core
29
52
  RUN npm install
53
+ RUN npm run build
30
54
 
31
- # 构建项目
55
+ # 安装并构建 mira-storage-sqlite
56
+ WORKDIR /app/packages/mira-storage-sqlite
57
+ RUN npm install
32
58
  RUN npm run build
33
59
 
34
- # 清理构建依赖以减小镜像大小
35
- RUN apk del python3 make g++
60
+ # 安装并构建 mira-server
61
+ WORKDIR /app/packages/mira-server
62
+ RUN npm install
63
+ RUN npm run build
64
+
65
+ # 验证 FFmpeg 安装
66
+ RUN ffmpeg -version && ffprobe -version
67
+
68
+ # 清理构建依赖以减小镜像大小(保留 ffmpeg)
69
+ RUN apk del python3 make g++ ffmpeg-dev
70
+
71
+ # 设置工作目录为 mira-server
72
+ WORKDIR /app/packages/mira-server
36
73
 
37
74
  # 暴露端口
38
75
  EXPOSE 3000
@@ -0,0 +1,80 @@
1
+ # 多阶段构建的改进版Dockerfile
2
+ FROM node:20-alpine as builder
3
+
4
+ # 安装构建依赖
5
+ RUN apk add --no-cache \
6
+ python3 \
7
+ py3-setuptools \
8
+ make \
9
+ g++
10
+
11
+ # 设置工作目录
12
+ WORKDIR /app
13
+
14
+ # 复制根目录的依赖文件
15
+ COPY package*.json ./
16
+ COPY packages/package.json ./packages/
17
+ COPY packages/mira-core/package*.json ./packages/mira-core/
18
+ COPY packages/mira-server/package*.json ./packages/mira-server/
19
+ COPY packages/mira-storage-sqlite/package*.json ./packages/mira-storage-sqlite/
20
+
21
+ # 复制依赖切换脚本
22
+ COPY dependency-*.json ./
23
+ COPY switch-dependencies.js ./
24
+
25
+ # 复制源代码
26
+ COPY packages/mira-core/src ./packages/mira-core/src
27
+ COPY packages/mira-core/tsconfig.json ./packages/mira-core/
28
+ COPY packages/mira-server/src ./packages/mira-server/src
29
+ COPY packages/mira-server/tsconfig.json ./packages/mira-server/
30
+ COPY packages/mira-storage-sqlite/src ./packages/mira-storage-sqlite/src
31
+ COPY packages/mira-storage-sqlite/tsconfig.json ./packages/mira-storage-sqlite/
32
+ COPY tsconfig.json ./
33
+
34
+ # 安装所有依赖并构建
35
+ RUN cd packages && npm install
36
+ RUN cd packages && npm run build:core
37
+ RUN cd packages && npm run build:storage
38
+ RUN cd packages && npm run build:server
39
+
40
+ # 生产阶段
41
+ FROM node:20-alpine
42
+
43
+ # 安装运行时依赖
44
+ RUN apk add --no-cache \
45
+ sqlite \
46
+ ffmpeg
47
+
48
+ # 设置环境变量
49
+ ENV SETUPTOOLS_USE_DISTUTILS=stdlib
50
+ ENV FFMPEG_PATH=/usr/bin/ffmpeg
51
+ ENV FFPROBE_PATH=/usr/bin/ffprobe
52
+
53
+ # 创建应用用户
54
+ RUN addgroup -g 1001 -S nodejs
55
+ RUN adduser -S nodejs -u 1001
56
+
57
+ # 设置工作目录
58
+ WORKDIR /app
59
+
60
+ # 复制构建产物和运行时需要的文件
61
+ COPY --from=builder --chown=nodejs:nodejs /app/packages/mira-server/dist ./dist
62
+ COPY --from=builder --chown=nodejs:nodejs /app/packages/mira-server/package.json ./package.json
63
+ COPY --from=builder --chown=nodejs:nodejs /app/packages/mira-server/node_modules ./node_modules
64
+
65
+ # 验证 FFmpeg 安装
66
+ RUN ffmpeg -version
67
+
68
+ # 切换到非root用户
69
+ USER nodejs
70
+
71
+ # 暴露端口
72
+ EXPOSE 3000
73
+ EXPOSE 8081
74
+
75
+ # 健康检查
76
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
77
+ CMD node -e "require('http').get('http://localhost:3000/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) }).on('error', () => process.exit(1))"
78
+
79
+ # 启动命令
80
+ CMD ["node", "dist/index.js"]
package/docker-build.sh CHANGED
@@ -1,37 +1,37 @@
1
- #!/bin/bash
2
-
3
- # Docker 构建脚本
4
- # 该脚本将处理插件依赖并构建 Docker 镜像
5
-
6
- echo "开始构建 Docker 镜像..."
7
-
8
- # 清理之前的构建
9
- echo "清理之前的构建..."
10
- docker rmi mira_server:latest 2>/dev/null || true
11
-
12
- # 构建 Docker 镜像
13
- echo "构建 Docker 镜像..."
14
- docker build -t mira_server:latest .
15
-
16
- if [ $? -eq 0 ]; then
17
- echo "Docker 镜像构建成功!"
18
- echo "保存 Docker 镜像到 mira_server.tar..."
19
- docker save -o mira_server.tar mira_server:latest
20
- echo "Docker 镜像已保存到 mira_server.tar"
21
- read -p "是否启动 Docker 容器?(y/n): " start_container
22
- if [[ "$start_container" =~ ^[Yy]$ ]]; then
23
- echo "启动 Docker 容器..."
24
- docker run -d \
25
- -p 3000:3000 \
26
- -p 8081:8081 \
27
- -v /volume1/文件共享:/library \
28
- --restart=always \
29
- --name mira_server \
30
- mira_server
31
- else
32
- echo "已跳过启动 Docker 容器。"
33
- fi
34
- else
35
- echo "Docker 镜像构建失败!"
36
- exit 1
37
- fi
1
+ #!/bin/bash
2
+
3
+ # Docker 构建脚本
4
+ # 该脚本将处理插件依赖并构建 Docker 镜像
5
+
6
+ echo "开始构建 Docker 镜像..."
7
+
8
+ # 清理之前的构建
9
+ echo "清理之前的构建..."
10
+ docker rmi mira_server:latest 2>/dev/null || true
11
+
12
+ # 构建 Docker 镜像
13
+ echo "构建 Docker 镜像..."
14
+ docker build -t mira_server:latest .
15
+
16
+ if [ $? -eq 0 ]; then
17
+ echo "Docker 镜像构建成功!"
18
+ echo "保存 Docker 镜像到 mira_server.tar..."
19
+ docker save -o mira_server.tar mira_server:latest
20
+ echo "Docker 镜像已保存到 mira_server.tar"
21
+ read -p "是否启动 Docker 容器?(y/n): " start_container
22
+ if [[ "$start_container" =~ ^[Yy]$ ]]; then
23
+ echo "启动 Docker 容器..."
24
+ docker run -d \
25
+ -p 3000:3000 \
26
+ -p 8081:8081 \
27
+ -v /volume1/文件共享:/library \
28
+ --restart=always \
29
+ --name mira_server \
30
+ mira_server
31
+ else
32
+ echo "已跳过启动 Docker 容器。"
33
+ fi
34
+ else
35
+ echo "Docker 镜像构建失败!"
36
+ exit 1
37
+ fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mira-app-server",
3
- "version": "1.0.8",
3
+ "version": "1.0.12",
4
4
  "description": "Mira Server - standalone server application using mira-core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,6 +30,6 @@
30
30
  "typescript": "^5.3.3"
31
31
  },
32
32
  "dependencies": {
33
- "mira-app-core": "^1.0.8"
33
+ "mira-app-core": "file://Users/Zhuanz/mira_typescript/packages/mira-core/"
34
34
  }
35
35
  }