快速开始
三种部署方式任选其一,最快 1 分钟看到第一个扫描结果。全部离线运行,不注册、不联网激活
方式一:单 JAR 直跑(推荐首试)
只需要 JRE 17+。首次启动自动初始化 data/ work/ logs/ 三个目录,内嵌 H2 建表
1. 启动
java -jar jargus.jar
启动完成后浏览器打开 http://localhost:8080。
2. 登录默认账号
| 账号 | 密码 | 角色 |
|---|---|---|
| admin | 123456 | 管理员(全部功能) |
| view | 123456 | 只读(查看报告) |
登录后立即修改密码。生产环境还必须覆盖 JWT 密钥与 AES 密钥(下一步),内置的是占位值。
3. 生产参数覆盖
# 换端口 java -jar jargus.jar --server.port=9090 # 生产必须:覆盖 JWT 签名密钥与配置加密密钥(16 字符) java -jar jargus.jar \ --app.jwt-secret=<新JWT密钥> \ --app.crypto-key=<新AES密钥>
4. 升级(一键更新)
系统信息页检测到新版本时,版本卡片右侧会出现 「一键更新」 按钮。点击后:自动从 Gitee(失败兜底 GitHub)下载最新 jargus.jar、校验版本、备份当前 jar 为 jargus.jar.bak、脱离进程替换并原命令重启,页面稍后自动刷新——全程无需手动下载改名。
仅支持 java -jar 的 Linux / macOS 部署;IDE 内调试、Windows 或 JAR 目录不可写时按钮会明确报错、不做任何改动。需要临时关闭可设置 --app.update.enabled=false;附加自定义启动参数用 --app.update.extra-args="--server.port=9090"。
方式二:Docker 部署(推荐生产)
镜像内置 Noto CJK / 文泉驿中文字体、非 root 运行、HEALTHCHECK、优雅停机
1. Docker Compose 一键起
# 在仓库根目录(先按 .env.example 复制出 .env,改好密钥) docker compose up -d --build
2. 或者手动构建镜像
# 标准构建;国内网络用 docker-build-cn.sh ./scripts/docker-build.sh 2.0.7 ./scripts/docker-build-cn.sh 2.0.7 docker run -d --name jargus \ -p 8080:8080 \ -v jargus-data:/app/data -v jargus-work:/app/work \ -v jargus-logs:/app/logs -v jargus-lib:/app/lib \ -e APP_JWT_SECRET=<新JWT密钥> \ -e APP_CRYPTO_KEY=<新AES密钥,16字符> \ --restart unless-stopped \ jargus:2.0.7
3. 健康检查
curl http://localhost:8080/actuator/health # → {"status":"UP"}
四个持久化卷别省:/app/data(元数据库)、/app/work(扫描工作区与报告)、/app/logs(日志)、/app/lib(上传的自定义 JDBC 驱动)。
方式三:源码构建
环境要求:JDK 17+ 与 Maven 3.9+(Docker 方式要求 Docker 20.10+ / Compose v2)
打包运行
git clone https://gitee.com/super_rgh/jargus.git # 或 github.com/vfaner/jargus
cd jargus
mvn package -DskipTests
java -jar target/jargus.jar
注意源码构建产物名不带版本号(jargus.jar),与 Releases 资产名不同。
开发模式热跑
mvn spring-boot:run
前端是 Thymeleaf SSR + 原生 JS,改页面模板不需要 npm / Node 构建链。
环境变量与持久化
所有配置都支持环境变量 / 启动参数 / .env 三种注入方式
| 变量 | 默认值 | 说明 |
|---|---|---|
| SPRING_PROFILES_ACTIVE | prod | 运行 profile |
| APP_AUTH_ENABLED | true | 是否开启登录认证(关掉仅建议内网演示) |
| APP_JWT_SECRET | 内置占位值 | 生产必须修改:JWT 签名密钥 |
| APP_JWT_EXPIRE_HOURS | 24 | 登录态有效小时数 |
| APP_CRYPTO_KEY | 内置占位值 | 生产必须修改:敏感配置 AES 加密密钥(16 字符) |
| APP_TRUSTED_PROXIES | 127.0.0.1,::1 | 受信代理地址(IP / CIDR),统一认证网关头模式需加入网关出口地址 |
| APP_SSO_RESET_LOCAL_LOGIN | false | 破窗开关:置 true 启动一次即恢复本地登录,修好 SSO 配置后去掉 |
| APP_WORK_DIR | /app/work | 扫描工作区(解压、克隆、报告产物) |
| APP_DRIVER_DIR | /app/lib/custom | 页面上传的自定义 JDBC 驱动存放目录 |
| DATASOURCE_URL | 容器内 H2 文件库 | 元数据库连接串,切外接库时覆盖 |
| TZ | Asia/Shanghai | 容器时区 |
部署完成后 · 5 步跑通第一个评审
从登录到 CI 阻断,完整闭环大约 10 分钟
① 登录并修改默认密码
admin / 123456 登录后,先在「系统设置」里改掉 admin 与 view 的密码,并按上文覆盖 JWT / AES 密钥。
② 发起第一个扫描任务
「新建扫描」页上传项目 ZIP、直接粘贴代码,或填 Git 仓库地址克隆(私有仓库支持凭据);系统自动检测 JDK / 构建工具 / 框架。可顺手勾选「邮件通知」,扫描完成自动推送报告(需先在「邮件管理」配置发件邮箱与收件人)。
③ 查看评分与问题清单
扫描完成后进入结果页:评分环、五级问题统计、按质量域分类汇总;点进单条问题看代码上下文与修复建议。
④ 按团队口味调规则与门禁
「检查器配置」启停检查器、「评审规则」调默认等级、「质量门禁」改通过线与扣分权重 —— 保存即时生效,无需重启。
⑤ 接入 CI/CD(可选)
「CI/CD 集成」页创建 Webhook 触发器与访问令牌,流水线推送代码即自动扫描,commit status 回写 + MR/PR 评论,门禁不过可阻断合并:
curl -X POST "http://<host>:8080/webhook/<触发器ID>" \ -H "X-CI-Token: <CI 访问令牌>"