开源制品管理工具Hadess,一键安装及快速入门教程

Hadess是一款国产开源免费的制品管理工具,包含制品库管理、制品搜索、制品扫描等模块,支持常见的制品类型如Maven、npm、Go、Docker、Helm、Generic、pypi、Composer、Nuget等,产品功能完善、界面简洁、开源免费,本文将介绍如何快速安装配置Hadess,及简明的入门指南

1、安装

支持 Linux、docker、Windows、Mac 等操作系统

1.1 Linux安装

本文以ubuntu安装

  • 下载

点击ubuntu下载,可通过安装下载也可在网页命令在线安装

wget -O tiklab-hadess-1.2.2.deb https://install.tiklab.net/app/install/hadess/V1.2.2/tiklab-hadess-1.2.2.deb

  • 安装

上传之后执行以下命令安装,默认安装在opt 目录下

dpkg -i tiklab-hadess-1.2.2.deb #ubantu安装命令

  • 启动

安装之后会在opt目录下出现一个名字为 tiklab-hadess的文件夹,在tiklab-hadess下的bin文件夹下,执行./hadess start命令,启动项目

./hadess start

1.2 Docker安装

  • 下载

点击Docker下载,可通过安装下载也可以在网页命令在线安装

wget -O tiklab-hadess-1.2.2.tar.gz https://install.tiklab.net/app/install/hadess/V1.2.2/tiklab-hadess-1.2.2.tar.gz

  • 安装

安装包名字为tiklab-hadess-1.2.2.tar.gz,下载完成执行以下命令加载镜像

docker load -i tiklab-hadess-1.2.2.tar.gz

  • 启动

加载完成后,执行以下命令镜像启动

docker run -itd -p 9700:9700 tiklab-hadess:1.2.2

1.3 Windows 安装

  • 下载:Hadess-下载
  • 安装:双击执行文件 -> 选择安装位置 -> 点击安装
  • 启动:安装完成后点击左面Hadess图标即可启动

1.4 Mac安装

  • 下载:Hadess-下载
  • 安装:双击可执行文件 -> 将tiklab-hadess-1.2.2.app拉入应用程序中即可
  • 启动:安装完成后点击启动太Hadess图标即可启动

2、登入

  • 启动完成后,浏览中访问 http://ip:9700, 就可以打开Hadess界面, 默认登录帐号密码为admin/123456
  • 同时支持LDAP、企业微信、钉钉登录方式,具体配置见:配置详细

登录页

Hadess首页

支持登入方式:

支持类型登入方式
账号登入默认登入方式
企业微信登录企业微信用户扫描登录
钉钉登录钉钉用户扫描登录
Ldap登录Ldap用户登录

3、配置

进入项目config文件夹下,编辑application.yaml 即可自定义配置

3.1 自定义端口

修改文件中的server.port的值为自己想要配置的端口,重新启动即可

3.2 自定义数据库配置

  • 使用的数据库为postgresql,Hadess同时支持使用外部数据库以及内嵌数据库。默认使用内嵌数据库
  • 外部数据库:用户自己定义链接数据库的地址,用户名,密码等。
  • 内嵌数据库:使用系统内置的数据库

(1)使用外部数据库

注意:使用外部数据库的时候,需要将内嵌数据库postgresql.embbed.enable后面的数据修改为false

属性说明:

字段说明
jdbc.url数据库地址,修改为自己的外部数据库地址
jdbc.username数据库用户名,修改外部数据库用户名
jdbc.password数据库密码,修改外部数据库密码

(2)使用内嵌数据库

默认使用的是内嵌数据库

属性说明:

字段描述
postgresql.embbed.enable是否使用内嵌数据库,true(使用)、false(不使用)。如果配置false,需要把jdbc下的数据库连接信息更改为自己的数据库地址、用户、密码
postgresql.embbed.database内嵌数据库名字。如果需要修改内嵌数据库名字,同时也要修改jdbc.url后面的数据库名字
postgresql.db.port内嵌数据库的端口。如果需要更改,同时也要修改jdbc.url后面的数据库端口
postgresql.db.username内嵌数据库用户名。如果需要更改,同时也要修改jdbc.username值

postgresql.db.password

内嵌数据库密码。如果需要更改,同时也要修改jdbc.password值
postgresql.db.address内嵌数据库存储地址。注意:如果更改该目录,该路径目录必须为空目录,否则会导致数据库无法启动

3.3 自定义数据存储目录

DATA_HOME为数据文件存放地址。

# 数据存放地址

属性说明:

属性
dcs.server.portdcs启动端口,必须与dcs.client.url 的端口号保持一致

4、快速入门

4.1 制品搜索

  • 查询制品

支持制品类型如:Generic、Npm、Docker、Maven、Helm、Go、pypi、composer、nuget、Conan、Rpm。

  • 制品信息

  • 制品类型

4.2 制品库管理

  • 创建本地库:点击新建制品库选择新建本地库添加信息,点击确认

  • 创建远程库:点击右上角新建远程库,输入对应内容即可

  • 创建组合库:点击右上角新建组合库输入对应内容点击确定即可

  • 修改本地库:修改仓库名字和描述

  • 修改远程库:修改远程库代理地址至少要有一个,代理地址只有一个的时候不能被删除

  • 修改组合库

1.修改仓库名字、关联的制品库

2.左边的是未关联的制品库,右边是已关联的和待确认关联的制品库。要将未关联的制品库关联,先鼠标点击需要关联的制品库,再点击中间向右图标,将该制品库放入右边待确认

3.移除关联制品库,鼠标点击需要移除的制品库,再点击向左图标,将该制品库放入左边。最后点击确定修改

  • 查询制品库:通过条件查询制品库(所有库、本地库、远程库、组合库)通过制品库名称关键字查询制品库

4.2.1 本地库制品上传

即可在maven制品库库制品界面点击右上角上传制品,只有本地local库可以上传界面上传适用于第三方只有 jar 包或者压缩文件,不适用于自己有pom.xml文件。

4.2.2 制品推送与拉取

  • 推送

1. 本地已经配置,跳过凭证配置

2. 进入制品库界面点击右上角操作指引选择maven进入操作指引界面,替换对应的文本。将其添加至 settings.xml 文件中。

实例:

1. 点击推送table替换文本后,复制下列配置到项目的 pom.xml 文件当中

2. 执行 mvn deploy 命令

  • 拉取

1. 操作指引界面拉取,替换文本,复制配置到 settings.xml 当中

2. 在项目pom.xml中配置依赖包(dependencies 标签)

3.执行mvn install 拉取制品

其他制品类型拉取或推送同理,支持类型:Generic、Npm、Docker、Maven、Helm、Go、pypi、composer、nuget、Conan、rpm。

  • 删除制品库

进入制品库,点击仓库设置找到仓库删除点击删除即可。

本 PPT 介绍了制药厂房中供配电系统的总体概念设计要点,内容包括: 洁净厂房的特点及其对供配电系统的特殊要求; 供配电设计的一般原则依据的国家/行业标准; 从上级电网到工厂变电所、终端配电的总体结构模块化设计思路; 供配电范围:动力配电、照明、通讯、接地、防雷消防等; 动力配电中电压等级、接地系统形式(如 TN-S)、负荷等级可靠性、UPS 配置等; 照明的电源方式、光源选择、安装方式、应急备用照明要求; 通讯系统、监控系统在生产管理消防中的作用; 接地等电位连接、防雷等级防雷措施; 消防设施及其专用供电(消防泵、排烟风机、消防控制室、应急照明等); 常见高压柜、动力柜、照明箱等配电设备案例及部分设计图纸示意; 公司已完成的典型项目案例。 1. 工程背景总体框架 所属领域:制药厂房工程的公用工程系统,其中本 PPT 聚焦于供配电系统。 放在整个公用工程中的位置:给排水、纯化水/注射用水、气体热力、暖通空调、自动化控制等系统并列。 2. Part 01 供配电概述 2.1 洁净厂房的特点 空间密闭,结构复杂、走向曲折; 单相设备、仪器种类多,工艺设备昂贵、精密; 装修材料工艺材料种类多,对尘埃、静电等更敏感。 这些特点决定了:供配电系统要安全可靠、减少积尘、便于清洁和维护。 2.2 供配电总则 供配电设计应满足: 可靠、经济、适用; 保障人身财产安全; 便于安装维护; 采用技术先进的设备方案。 2.3 设计依据规范 引用了大量俄语标准(ГОСТ、СНиП、SanPiN 等)以及国家、行业和地方规范,作为设计的法规基础文件,包括: 电气设备、接线、接地、电气安全; 建筑物电气装置、照明标准; 卫生安全相关规范等。 3. Part 02 供配电总览 从电源系统整体结构进行总览: 上级:地方电网; 工厂变电所(10kV 配电装置、变压
非常好的问题! 是的,**`chat` 是一个古老、脆弱且调试困难的工具**,虽然它被 `pppd` 广泛使用,但确实有很多现代替代方案可以更可靠地完成串口 AT 命令交互任务。 --- ## ✅ 结论先行:推荐替代工具 | 工具 | 优点 | 是否可直接用于 pppd | 推荐场景 | |------|------|---------------------|----------| | 🔧 **`atinout`** | 轻量、精准、支持超时、输出 JSON 友好 | ❌ 不能直接替代 chat(但可用于预检) | ✅ 替代 minicom 自动化测试 | | 🐍 **Python + `pyserial`** | 完全控制、易调试、支持流控/DCD/DTR | ✅ 可封装为拨号脚本 | ✅ 最佳替代方案 | | 💡 **`socat`** | 强大双向管道、支持 stty 设置 | ⚠️ 配合其他工具使用 | 串口调试和转发 | | 🛠 **`expect` / `tclsh`** | 类似 chat,但语法更强 | ✅ 可作为 connect script | 中等复杂度自动化 | | 🚀 **自定义 C 程序或 shell 脚本** | 性能高、定制性强 | ✅ 可集成进 pppd | 生产环境专用模块 | --- ## 1. ✅ 推荐首选:`atinout` —— 专为 AT 命令设计的小工具 ### 特点: - 单命令发送并等待响应 - 支持超时设置 - 输出干净(适合脚本解析) - 比 `chat` 更可靠 ### 安装(Debian/Ubuntu): ```bash sudo apt install atinout ``` 或从源码编译:https://github.com/hadess/atinout ### 使用示例: ```bash # 发送 AT 命令,等待 OK,超时 5 秒 echo "AT" | atinout - /dev/ttyS9 - # 检查返回值 if [ $? -eq 0 ]; then echo "Module responded OK" else echo "Failed to get response" fi ``` ### 批量测试脚本: ```bash #!/bin/bash DEV=/dev/ttyS9 test_at() { local cmd="$1" local expect="$2" echo "Testing: $cmd" response=$(echo "$cmd" | atinout - $DEV -) if echo "$response" | grep -q "$expect"; then echo "✅ PASS" else echo "❌ FAIL: got $response" fi } test_at "AT" "OK" test_at "AT+CSQ" "OK" test_at "AT+CREG?" "+CREG:" ``` > 🎯 用途:在 `pppd` 启动前先用 `atinout` 验证模块是否就绪。 --- ## 2. ✅ 最佳实践:用 Python + `pyserial` 完全替代 `chat` ### 安装依赖: ```bash pip3 install pyserial ``` ### 示例代码:自动拨号准备脚本 ```python # check_modem.py import serial import time import sys def main(): port = '/dev/ttyS9' baudrate = 115200 try: # 打开串口,关键参数 cts=False, rts=False, dsrdtr=True? ser = serial.Serial( port=port, baudrate=baudrate, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=5, # read timeout xonxoff=False, # disable software flow control rtscts=False, # disable hardware flow control dsrdtr=True, # 关键!模拟 DTR/DSR 行为 ) time.sleep(1) # 等待模块启动 def send_at(cmd, expected="OK", retries=3): for i in range(retries): print(f"Sending: {cmd}") ser.write((cmd + "\r\n").encode()) time.sleep(0.5) response = "" while True: line = ser.readline().decode('ascii', errors='ignore').strip() if not line: break response += line + "\n" if expected in line: print(f"Received: {line}") return True print(f"No '{expected}' in response: {response}") return False # 开始执行初始化流程 if not send_at("AT", "OK"): print("❌ Module not responding") sys.exit(1) if not send_at("ATE0V1", "OK"): print("❌ Failed to set echo off") sys.exit(1) if not send_at("AT+CPIN?", "READY"): print("❌ SIM card error") sys.exit(1) if not send_at("AT+CSQ", "OK"): print("❌ Signal quality check failed") sys.exit(1) if not send_at("AT+CGDCONT=1,\"IP\",\"CTNET\"", "OK"): print("❌ APN setup failed") sys.exit(1) print("✅ Modem is ready for PPP dialing") ser.close() sys.exit(0) except Exception as e: print(f"❌ Serial error: {e}") sys.exit(1) if __name__ == "__main__": main() ``` ### 在 pppd 中调用(间接方式) 你可以写一个 wrapper 脚本: ```bash # /etc/chatscripts/at606-precheck #!/bin/sh python3 /usr/local/bin/check_modem.py if [ $? -eq 0 ]; then exec /usr/sbin/chat -v -f /etc/chatscripts/at606-pap-real else exit 1 fi ``` 然后修改 `peers/at606-provider`: ```text connect "/etc/chatscripts/at606-precheck" ``` 👉 实现“先检测模块状态 → 再拨号”的健壮逻辑。 --- ## 3. ✅ 辅助工具:`socat` —— 强大的串口桥接器 ### 示例:将 `/dev/ttyS9` 映射到本地 TCP 端口供调试 ```bash socat tcp-listen:9000,reuseaddr,fork file:/dev/ttyS9,b115200,raw,echo=0,clocal=1,crtscts=0 ``` 然后用 `telnet` 测试: ```bash telnet localhost 9000 > AT < OK ``` 非常方便远程调试。 --- ## 4. ✅ 高级替代:用 `expect` 编写更强大的 chat 脚本 ```tcl # /usr/local/bin/chat-modem.exp #!/usr/bin/expect -f set dev [lindex $argv 0] spawn stty -F $dev 115200 cs8 clocal -crtscts spawn /bin/sh stty raw -echo set timeout 30 send "\r" sleep 1 expect { "AT" { send "\r" } timeout { } } send "AT\r" expect { "OK" { } timeout { exit 1 } } send "AT+CGDCONT=1,\"IP\",\"CTNET\"\r" expect "OK" send "ATD*99#\r" expect "CONNECT" exit 0 ``` 然后在 `ppp` 配置中: ```text connect "/usr/bin/expect /usr/local/bin/chat-modem.exp /dev/ttyS9" ``` 比原生 `chat` 更灵活。 --- ## ✅ 总结:你应该怎么做? | 目标 | 推荐方案 | |------|-----------| | 快速验证模块是否在线 | ✅ `atinout` | | 替代 `chat` 实现完整拨号前准备 | ✅ Python + `pyserial` | | 调试串口通信过程 | ✅ `socat` + `telnet` | | 替代 `chat` 实现复杂交互逻辑 | ✅ `expect` 脚本 | | 生产环境全自动管理 | ✅ Python 封装 + systemd service | --- ## 💡 建议架构升级(推荐) 不要依赖 `chat` 完成所有工作,改为: ``` [Python 模块健康检查] → [启动 pppd] → [pppd 使用简化 chat 拨号] ``` 这样即使 `chat` 很弱,也能保证只有在模块准备好之后才尝试拨号。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值