nodebbs 0.0.8 → 0.1.0

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.
@@ -1,19 +1,6 @@
1
- # 低内存环境 Docker Compose 覆盖配置
2
- # 适用于 1C1G 或 1C2G 的低配服务器
3
- # 使用方式: docker compose -f docker-compose.yml -f docker-compose.lowmem.yml up -d
4
-
5
1
  services:
6
2
  # PostgreSQL 数据库 - 低内存优化
7
3
  postgres:
8
- restart: always
9
- ports: [] # 不暴露端口到主机,只在内部网络访问
10
- environment:
11
- POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
12
- healthcheck:
13
- interval: 30s
14
- timeout: 10s
15
- retries: 5
16
- start_period: 40s
17
4
  deploy:
18
5
  resources:
19
6
  limits:
@@ -23,14 +10,13 @@ services:
23
10
  cpus: '0.1'
24
11
  memory: 128M
25
12
  logging:
26
- driver: "json-file"
27
13
  options:
28
14
  max-size: "5m"
29
15
  max-file: "2"
30
16
 
31
17
  # Redis 缓存 - 低内存优化
32
18
  redis:
33
- restart: always
19
+ # 降低内存限制
34
20
  command: >
35
21
  redis-server
36
22
  --requirepass ${REDIS_PASSWORD}
@@ -40,12 +26,6 @@ services:
40
26
  --maxmemory-policy allkeys-lru
41
27
  --save 900 1
42
28
  --save 300 10
43
- ports: [] # 不暴露端口到主机
44
- healthcheck:
45
- interval: 30s
46
- timeout: 10s
47
- retries: 5
48
- start_period: 20s
49
29
  deploy:
50
30
  resources:
51
31
  limits:
@@ -55,23 +35,15 @@ services:
55
35
  cpus: '0.1'
56
36
  memory: 64M
57
37
  logging:
58
- driver: "json-file"
59
38
  options:
60
39
  max-size: "5m"
61
40
  max-file: "2"
62
41
 
63
42
  # API 服务 - 低内存优化
64
43
  api:
65
- restart: always
66
44
  environment:
67
- USER_CACHE_TTL: ${USER_CACHE_TTL:-300}
68
- JWT_SECRET: ${JWT_SECRET}
69
- CORS_ORIGIN: ${CORS_ORIGIN}
70
- APP_URL: ${APP_URL}
71
- # Node.js 内存限制
45
+ # 降低 Node.js 内存限制
72
46
  NODE_OPTIONS: "--max-old-space-size=384"
73
- volumes:
74
- - api_uploads:/app/apps/api/uploads
75
47
  healthcheck:
76
48
  start_period: 90s # 低内存环境启动更慢
77
49
  interval: 60s
@@ -84,22 +56,13 @@ services:
84
56
  cpus: '0.2'
85
57
  memory: 256M
86
58
  logging:
87
- driver: "json-file"
88
59
  options:
89
60
  max-size: "10m"
90
- max-file: "3"
91
61
 
92
62
  # Web 前端服务 - 低内存优化
93
63
  web:
94
- restart: always
95
- build:
96
- args:
97
- NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL}
98
- NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL}
99
64
  environment:
100
- NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL}
101
- NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL}
102
- # Node.js 内存限制
65
+ # 降低 Node.js 内存限制
103
66
  NODE_OPTIONS: "--max-old-space-size=384"
104
67
  healthcheck:
105
68
  start_period: 90s # 低内存环境启动更慢
@@ -113,14 +76,5 @@ services:
113
76
  cpus: '0.2'
114
77
  memory: 256M
115
78
  logging:
116
- driver: "json-file"
117
79
  options:
118
80
  max-size: "10m"
119
- max-file: "3"
120
-
121
- # 网络配置
122
- networks:
123
- nodebbs-network:
124
- ipam:
125
- config:
126
- - subnet: 172.28.0.0/16
@@ -3,22 +3,37 @@ services:
3
3
  postgres:
4
4
  image: postgres:16-alpine
5
5
  container_name: nodebbs-postgres
6
- restart: unless-stopped
6
+ restart: always
7
7
  environment:
8
8
  POSTGRES_USER: postgres
9
- POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres_password}
9
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
10
10
  POSTGRES_DB: ${POSTGRES_DB:-nodebbs}
11
- TZ: Asia/Shanghai
11
+ TZ: ${TZ:-Asia/Shanghai}
12
12
  volumes:
13
13
  - postgres_data:/var/lib/postgresql/data
14
- - ${INIT_DB_PATH:-./scripts/init-db.sql}:/docker-entrypoint-initdb.d/init.sql:ro
15
- ports:
16
- - "${POSTGRES_PORT:-5432}:5432"
14
+ # 生产环境默认不暴露数据库端口到主机,只在 Docker 网络内部访问
15
+ # 如果需要外部访问 (如开发调试),可以将下面两行取消注释
16
+ # ports:
17
+ # - "${POSTGRES_PORT:-5432}:5432"
17
18
  healthcheck:
18
19
  test: ["CMD-SHELL", "pg_isready -U postgres"]
19
- interval: 10s
20
- timeout: 5s
20
+ interval: 30s
21
+ timeout: 10s
21
22
  retries: 5
23
+ start_period: 40s
24
+ deploy:
25
+ resources:
26
+ limits:
27
+ cpus: '1'
28
+ memory: 512M
29
+ reservations:
30
+ cpus: '0.25'
31
+ memory: 256M
32
+ logging:
33
+ driver: "json-file"
34
+ options:
35
+ max-size: "10m"
36
+ max-file: "3"
22
37
  networks:
23
38
  - nodebbs-network
24
39
 
@@ -26,45 +41,62 @@ services:
26
41
  redis:
27
42
  image: redis:7-alpine
28
43
  container_name: nodebbs-redis
29
- restart: unless-stopped
30
- command: redis-server --requirepass ${REDIS_PASSWORD:-redis_password} --appendonly yes
31
- environment:
32
- TZ: Asia/Shanghai
44
+ restart: always
45
+ command: >
46
+ redis-server
47
+ --requirepass ${REDIS_PASSWORD}
48
+ --appendonly yes
49
+ --appendfsync everysec
50
+ --maxmemory 256mb
51
+ --maxmemory-policy allkeys-lru
33
52
  volumes:
34
53
  - redis_data:/data
35
- ports:
36
- - "${REDIS_PORT:-6379}:6379"
54
+ # 生产环境默认不暴露 Redis 端口到主机
55
+ # ports:
56
+ # - "${REDIS_PORT:-6379}:6379"
37
57
  healthcheck:
38
58
  test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
39
- interval: 10s
40
- timeout: 5s
59
+ interval: 30s
60
+ timeout: 10s
41
61
  retries: 5
62
+ start_period: 20s
63
+ deploy:
64
+ resources:
65
+ limits:
66
+ cpus: '0.5'
67
+ memory: 256M
68
+ reservations:
69
+ cpus: '0.1'
70
+ memory: 128M
71
+ logging:
72
+ driver: "json-file"
73
+ options:
74
+ max-size: "10m"
75
+ max-file: "3"
42
76
  networks:
43
77
  - nodebbs-network
44
78
 
45
79
  # API 服务
46
80
  api:
47
- build:
48
- context: . # 从 monorepo 根目录构建(turbo prune 需要完整的 workspace)
49
- dockerfile: apps/api/Dockerfile
81
+ image: ${API_IMAGE:-ghcr.io/aiprojecthub/nodebbs-api:latest}
50
82
  container_name: nodebbs-api
51
- restart: unless-stopped
83
+ restart: always
52
84
  environment:
53
85
  NODE_ENV: production
54
86
  APP_NAME: ${APP_NAME:-nodebbs}
55
87
  HOST: 0.0.0.0
56
88
  PORT: 7100
57
- DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD:-postgres_password}@postgres:5432/${POSTGRES_DB:-nodebbs}
58
- REDIS_URL: redis://default:${REDIS_PASSWORD:-redis_password}@redis:6379/0
59
- USER_CACHE_TTL: ${USER_CACHE_TTL:-120}
60
- JWT_SECRET: ${JWT_SECRET:-change-this-to-a-secure-random-string-in-production}
89
+ DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-nodebbs}
90
+ REDIS_URL: redis://default:${REDIS_PASSWORD}@redis:6379/0
91
+ USER_CACHE_TTL: ${USER_CACHE_TTL:-300}
92
+ JWT_SECRET: ${JWT_SECRET}
61
93
  JWT_ACCESS_TOKEN_EXPIRES_IN: ${JWT_ACCESS_TOKEN_EXPIRES_IN:-1y}
62
94
  CORS_ORIGIN: ${CORS_ORIGIN:-*}
63
95
  APP_URL: ${APP_URL:-http://localhost:3100}
64
- TZ: Asia/Shanghai
96
+ TZ: ${TZ:-Asia/Shanghai}
97
+ NODE_OPTIONS: "--max-old-space-size=512"
65
98
  volumes:
66
99
  - api_uploads:/app/apps/api/uploads
67
- - ./apps/api/src:/app/apps/api/src:ro
68
100
  ports:
69
101
  - "${API_PORT:-7100}:7100"
70
102
  depends_on:
@@ -78,26 +110,35 @@ services:
78
110
  timeout: 10s
79
111
  retries: 3
80
112
  start_period: 40s
113
+ deploy:
114
+ resources:
115
+ limits:
116
+ cpus: '1'
117
+ memory: 768M
118
+ reservations:
119
+ cpus: '0.3'
120
+ memory: 384M
121
+ logging:
122
+ driver: "json-file"
123
+ options:
124
+ max-size: "20m"
125
+ max-file: "5"
81
126
  networks:
82
127
  - nodebbs-network
83
128
 
84
129
  # Web 前端服务
85
130
  web:
86
- build:
87
- context: . # 从 monorepo 根目录构建(turbo prune 需要完整的 workspace)
88
- dockerfile: apps/web/Dockerfile
89
- args:
90
- NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:7100}
91
- NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3100}
131
+ image: ${WEB_IMAGE:-ghcr.io/aiprojecthub/nodebbs-web:latest}
92
132
  container_name: nodebbs-web
93
- restart: unless-stopped
133
+ restart: always
94
134
  environment:
95
135
  NODE_ENV: production
96
136
  APP_NAME: ${APP_NAME:-nodebbs}
97
137
  PORT: 3100
98
138
  NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:7100}
99
139
  NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3100}
100
- TZ: Asia/Shanghai
140
+ TZ: ${TZ:-Asia/Shanghai}
141
+ NODE_OPTIONS: "--max-old-space-size=512"
101
142
  ports:
102
143
  - "${WEB_PORT:-3100}:3100"
103
144
  depends_on:
@@ -109,6 +150,19 @@ services:
109
150
  timeout: 10s
110
151
  retries: 3
111
152
  start_period: 40s
153
+ deploy:
154
+ resources:
155
+ limits:
156
+ cpus: '1'
157
+ memory: 768M
158
+ reservations:
159
+ cpus: '0.3'
160
+ memory: 384M
161
+ logging:
162
+ driver: "json-file"
163
+ options:
164
+ max-size: "20m"
165
+ max-file: "5"
112
166
  networks:
113
167
  - nodebbs-network
114
168
 
@@ -125,3 +179,6 @@ volumes:
125
179
  networks:
126
180
  nodebbs-network:
127
181
  driver: bridge
182
+ ipam:
183
+ config:
184
+ - subnet: 172.28.0.0/16
@@ -1,13 +1,27 @@
1
1
  # ========================================
2
- # NodeBBS Docker Compose 环境变量配置
2
+ # NodeBBS 部署环境变量配置示例
3
3
  # ========================================
4
4
 
5
- # 应用名称
5
+ # ========================================
6
+ # 基础配置
7
+ # ========================================
8
+ # 应用名称(用于 Docker 容器前缀)
6
9
  APP_NAME=nodebbs
7
10
 
11
+ # 部署环境 (prod, dev)
12
+ NODE_ENV=production
13
+
14
+ # 镜像配置
15
+ # 默认为 GitHub Container Registry
16
+ # 注意:使用 `nodebbs start` 时,可以选择版本 tag 覆盖此处的默认 latest tag
17
+ # 如果需要固定特定版本 (如 v1.0),请修改以下配置或在部署时输入对应的 tag
18
+ API_IMAGE=ghcr.io/aiprojecthub/nodebbs-api:latest
19
+ WEB_IMAGE=ghcr.io/aiprojecthub/nodebbs-web:latest
20
+
8
21
  # ========================================
9
22
  # 数据库配置
10
23
  # ========================================
24
+ # 务必修改为强密码!
11
25
  POSTGRES_PASSWORD=your_secure_postgres_password_here
12
26
  POSTGRES_DB=nodebbs
13
27
  POSTGRES_PORT=5432
@@ -15,6 +29,7 @@ POSTGRES_PORT=5432
15
29
  # ========================================
16
30
  # Redis 配置
17
31
  # ========================================
32
+ # 务必修改为强密码!
18
33
  REDIS_PASSWORD=your_secure_redis_password_here
19
34
  REDIS_PORT=6379
20
35
 
@@ -24,8 +39,8 @@ REDIS_PORT=6379
24
39
  API_PORT=7100
25
40
 
26
41
  # 用户缓存 TTL(秒)
27
- # 开发环境: 30-60, 生产环境: 120-300
28
- USER_CACHE_TTL=120
42
+ # 生产环境建议: 120-300
43
+ USER_CACHE_TTL=300
29
44
 
30
45
  # JWT 配置
31
46
  # 使用 `openssl rand -base64 32` 生成安全的密钥
@@ -37,6 +52,7 @@ JWT_ACCESS_TOKEN_EXPIRES_IN=1y
37
52
  CORS_ORIGIN=*
38
53
 
39
54
  # 应用 URL(OAuth 回调使用)
55
+ # 生产环境请修改为公网域名
40
56
  APP_URL=http://localhost:3100
41
57
 
42
58
  # ========================================
@@ -45,17 +61,16 @@ APP_URL=http://localhost:3100
45
61
  WEB_PORT=3100
46
62
 
47
63
  # API 地址(公网访问地址)
48
- # 使用 docker 部署必须指定 IP 或域名(避免SSR跨容器通信问题)
49
- # 开发环境: http://192.168.0.100:7100
50
- # 生产环境: https://api.yourdomain.com
51
- NEXT_PUBLIC_API_URL=http://192.168.0.100:7100
64
+ # 生产环境请修改为公网域名,例如: https://api.yourdomain.com
65
+ # 或者是 Nginx 反向代理后的地址,例如: https://yourdomain.com/api
66
+ NEXT_PUBLIC_API_URL=http://localhost:7100
52
67
 
53
68
  # 应用 URL(公网访问地址)
54
- # 开发环境: http://localhost:3100
55
- # 生产环境: https://yourdomain.com
69
+ # 生产环境请修改为公网域名,例如: https://yourdomain.com
56
70
  NEXT_PUBLIC_APP_URL=http://localhost:3100
57
71
 
58
72
  # ========================================
59
- # 时区配置
73
+ # 其他配置
60
74
  # ========================================
75
+ # 时区
61
76
  TZ=Asia/Shanghai
@@ -1,8 +1,55 @@
1
+ /**
2
+ * 获取 Docker Compose 文件路径配置
3
+ *
4
+ * 自动检测当前目录是否存在 `docker-compose.yml`。
5
+ * - 如果存在,则优先使用项目根目录的配置。
6
+ * - 如果不存在,则使用 CLI 内置的模板文件。
7
+ *
8
+ * @param env - 运行环境 ('production' | 'lowmem')
9
+ * @returns 对象包含文件路径数组和是否使用内置模板的标志
10
+ */
1
11
  export declare function getComposeFiles(env: string): Promise<{
2
12
  files: string[];
3
13
  isBuiltIn: boolean;
4
14
  }>;
15
+ /**
16
+ * 检查 Docker 环境是否可用
17
+ *
18
+ * 验证 `docker` 和 `docker compose` 命令是否已安装并能正常响应。
19
+ * 如果检查失败,会抛出错误并提示用户安装。
20
+ */
5
21
  export declare function checkDocker(): Promise<void>;
22
+ /**
23
+ * 执行 Docker Compose 管理命令 (Lifecycle Commands)
24
+ *
25
+ * 用于执行如 `up`, `down`, `logs`, `build` 等管理整个服务堆栈的命令。
26
+ * 如果使用的是内置模板,会自动注入必要的环境变量(如数据库初始化脚本路径)。
27
+ *
28
+ * @param files - Docker Compose 文件路径数组
29
+ * @param args - 传递给 docker compose 的参数列表 (e.g. `['up', '-d']`)
30
+ * @param isBuiltIn - 是否使用内置模板 (决定是否注入额外环境变量)
31
+ */
6
32
  export declare function runCompose(files: string[], args: string[], isBuiltIn?: boolean): Promise<void>;
33
+ /**
34
+ * 在容器内执行命令 (Exec)
35
+ *
36
+ * 相当于执行 `docker compose exec [service] [command]`。
37
+ * 用于在正在运行的容器中运行脚本或命令(例如数据库迁移、种子数据填充)。
38
+ *
39
+ * @param files - Docker Compose 文件路径数组
40
+ * @param service - 目标服务名称 (e.g. 'api', 'postgres')
41
+ * @param command - 要执行的命令数组 (e.g. `['npm', 'run', 'seed']`)
42
+ * @param isBuiltIn - 是否使用内置模板
43
+ */
7
44
  export declare function execCompose(files: string[], service: string, command: string[], isBuiltIn?: boolean): Promise<void>;
45
+ /**
46
+ * 等待服务健康检查通过
47
+ *
48
+ * 轮询关键服务 (PostgreSQL, Redis, API) 直到它们准备就绪或超时。
49
+ * - PostgreSQL: 使用 `pg_isready` 检查
50
+ * - Redis & API: 使用简单的延时等待 (后续可优化为端口/API探测)
51
+ *
52
+ * @param files - Docker Compose 文件路径数组
53
+ * @param isBuiltIn - 是否使用内置模板
54
+ */
8
55
  export declare function waitForHealth(files: string[], isBuiltIn?: boolean): Promise<void>;
@@ -5,6 +5,16 @@ import { exists } from 'node:fs';
5
5
  import { promisify } from 'node:util';
6
6
  import { getTemplateDir, getTemplatePath } from './template.js';
7
7
  const fileExists = promisify(exists);
8
+ /**
9
+ * 获取 Docker Compose 文件路径配置
10
+ *
11
+ * 自动检测当前目录是否存在 `docker-compose.yml`。
12
+ * - 如果存在,则优先使用项目根目录的配置。
13
+ * - 如果不存在,则使用 CLI 内置的模板文件。
14
+ *
15
+ * @param env - 运行环境 ('production' | 'lowmem')
16
+ * @returns 对象包含文件路径数组和是否使用内置模板的标志
17
+ */
8
18
  export async function getComposeFiles(env) {
9
19
  const workDir = process.cwd();
10
20
  let isBuiltIn = false;
@@ -19,13 +29,19 @@ export async function getComposeFiles(env) {
19
29
  }
20
30
  const files = [baseFile];
21
31
  if (env === 'production') {
22
- files.push(path.join(templateDir, 'docker-compose.prod.yml'));
32
+ // Production now uses the default file (merged config)
23
33
  }
24
34
  else if (env === 'lowmem') {
25
35
  files.push(path.join(templateDir, 'docker-compose.lowmem.yml'));
26
36
  }
27
37
  return { files, isBuiltIn };
28
38
  }
39
+ /**
40
+ * 检查 Docker 环境是否可用
41
+ *
42
+ * 验证 `docker` 和 `docker compose` 命令是否已安装并能正常响应。
43
+ * 如果检查失败,会抛出错误并提示用户安装。
44
+ */
29
45
  export async function checkDocker() {
30
46
  logger.info('正在检查 Docker 环境...');
31
47
  try {
@@ -38,26 +54,61 @@ export async function checkDocker() {
38
54
  throw error;
39
55
  }
40
56
  }
57
+ /**
58
+ * 执行 Docker Compose 管理命令 (Lifecycle Commands)
59
+ *
60
+ * 用于执行如 `up`, `down`, `logs`, `build` 等管理整个服务堆栈的命令。
61
+ * 如果使用的是内置模板,会自动注入必要的环境变量(如数据库初始化脚本路径)。
62
+ *
63
+ * @param files - Docker Compose 文件路径数组
64
+ * @param args - 传递给 docker compose 的参数列表 (e.g. `['up', '-d']`)
65
+ * @param isBuiltIn - 是否使用内置模板 (决定是否注入额外环境变量)
66
+ */
41
67
  export async function runCompose(files, args, isBuiltIn = false) {
42
68
  const composeArgs = files.flatMap(f => ['-f', f]);
43
69
  if (isBuiltIn) {
44
70
  composeArgs.push('--project-directory', process.cwd());
45
- // 将 INIT_DB_PATH 设置为内置 sql 文件
46
- const templateDir = path.dirname(files[0]);
47
- process.env.INIT_DB_PATH = path.join(templateDir, 'init-db.sql');
48
71
  }
49
72
  composeArgs.push(...args);
50
73
  // 使用 stdio: 'inherit' 实时显示输出
51
- await execa('docker', ['compose', ...composeArgs], { stdio: 'inherit' });
74
+ // 设置 COMPOSE_LOG_LEVEL=ERROR 抑制变量未设置的警告
75
+ await execa('docker', ['compose', ...composeArgs], {
76
+ stdio: 'inherit',
77
+ env: { ...process.env, COMPOSE_LOG_LEVEL: 'ERROR' }
78
+ });
52
79
  }
80
+ /**
81
+ * 在容器内执行命令 (Exec)
82
+ *
83
+ * 相当于执行 `docker compose exec [service] [command]`。
84
+ * 用于在正在运行的容器中运行脚本或命令(例如数据库迁移、种子数据填充)。
85
+ *
86
+ * @param files - Docker Compose 文件路径数组
87
+ * @param service - 目标服务名称 (e.g. 'api', 'postgres')
88
+ * @param command - 要执行的命令数组 (e.g. `['npm', 'run', 'seed']`)
89
+ * @param isBuiltIn - 是否使用内置模板
90
+ */
53
91
  export async function execCompose(files, service, command, isBuiltIn = false) {
54
92
  const composeArgs = files.flatMap(f => ['-f', f]);
55
93
  if (isBuiltIn) {
56
94
  composeArgs.push('--project-directory', process.cwd());
57
95
  }
58
96
  composeArgs.push('exec', service, ...command);
59
- await execa('docker', ['compose', ...composeArgs], { stdio: 'inherit' });
97
+ await execa('docker', ['compose', ...composeArgs], {
98
+ stdio: 'inherit',
99
+ env: { ...process.env, COMPOSE_LOG_LEVEL: 'ERROR' }
100
+ });
60
101
  }
102
+ /**
103
+ * 等待服务健康检查通过
104
+ *
105
+ * 轮询关键服务 (PostgreSQL, Redis, API) 直到它们准备就绪或超时。
106
+ * - PostgreSQL: 使用 `pg_isready` 检查
107
+ * - Redis & API: 使用简单的延时等待 (后续可优化为端口/API探测)
108
+ *
109
+ * @param files - Docker Compose 文件路径数组
110
+ * @param isBuiltIn - 是否使用内置模板
111
+ */
61
112
  export async function waitForHealth(files, isBuiltIn = false) {
62
113
  logger.info('正在等待服务就绪...');
63
114
  // 等待 Postgres
@@ -1,2 +1,2 @@
1
1
  export declare function initEnv(): Promise<void>;
2
- export declare function checkEnv(envType: 'production' | 'lowmem' | 'basic'): Promise<void>;
2
+ export declare function checkEnv(envType: 'production' | 'lowmem'): Promise<void>;