具体的使用方法可参考 API 文档
sudo ./docker-build-sso.sh // 构建 SSO API Server 镜像
sudo ./docker-build-landevice.sh // 构建 LANDevice 镜像
sudo ./docker-build-checkbot.sh // 构建 Checkbot 镜像docker run --restart always -d -e REDIS_HOST=... \
-e MYSQL_HOST=... \
-e MYSQL_PASSWORD=... \
-e MYSQL_DB=... \
-e MYSQL_USER=... \
-e SERVER_HOST_NAME=sso.starstudio.org \
-p 8000:80 \
-v /home/www/StarSSO/conf:/etc/StarSSO \
-v /home/www/StarSSO/log:/var/log/StarSSO \
starsso:1.0.1docker run --restart always -d --network host \
-e REDIS_HOST=... \
-e MONITOR_INTERFACE=...\
-v /home/www/landevice/conf:/etc/LANDevice \
-v /home/www/landevice/log:/var/log/LANDevice \
landevice:1.0.1docker run --restart always -d -e REDIS_HOST=... \
-e MYSQL_HOST=... \
-e MYSQL_PASSWORD=... \
-e MYSQL_DB=... \
-e MYSQL_USER=... \
-v /home/www/CheckBot/conf:/etc/CheckBot \
-v /home/www/CheckBot/log:/var/log/CheckBot \
checkbot:1.0.1身份管理、认证服务器,支持单点登录,提供Restful API。
推荐使用 virtualenv 进行部署,在虚拟环境中安装依赖。
pip install -r requirements.txt在环境变量 API_CFG 指定配置文件位置。
export LAN_DEV_PROBER_CONFIG=<配置文件绝对路径>生产环境请使用 gunicorn 部署,以保证性能。
设备感知服务,主动感知局域网内在线设备,提供子网内设备信息列表(MAC、IP、设备名等信息),并产生设备活动事件(加入、移除、设备名更新、DHCP重分配等事件),供其他服务使用。所有信息经过 Redis 实现订阅/发布。
推荐使用 virtualenv 进行部署,在虚拟环境中安装依赖。
pip install -r requirements_landevice.txt在环境变量 LAN_DEV_PROBER_CONFIG 指定配置文件位置。
export LAN_DEV_PROBER_CONFIG=<配置文件绝对路径>python -m LANDevice会阻塞,生产环境建议使用supervisor。
人员统计服务,结合设备绑定信息,自动统计成员进出情况。
推荐使用 virtualenv 进行部署,在虚拟环境中安装依赖。
pip install -r requirements_checkbot.txt在环境变量 CHECK_BOT_CONFIG 指定配置文件位置。
export CHECK_BOT_CONFIG=<配置文件绝对路径>三个项目的配置都类似,可以共用一个配置文件
## Configure SSO API Server## LoggingACCESS_LOG='access.log'# 日志文件ERROR_LOG='error.log'DEBUG_LOG='debug.log'DEBUG=False# 调试模式# SecretSECRET_KEY_FILE='jwt.pri'# JWT 私钥SECRET_KEY_FILE_MODE=0o600# 私钥文件权限PUBLIC_KEY_FILE='jwt.pub'# JWT 公钥PUBLIC_KEY_MODE=0o666# 公钥文件权限SALT_FILE='starstudio.salt'# 密码散列盐SALT_FILE_MODE=0o600# 文件权限AUTH_TOKEN_EXPIRE_DEFAULT=86400# Auth 类型 Token 的有效时间 (秒)APP_TOKEN_EXPIRE_DEFAULT=86400# Application 类型 Token 的有效时间 (秒)# DatabaseMYSQL_DATABASE_HOST='localhost'# 数据库配置MYSQL_DATABASE_PORT=3306MYSQL_DATABASE_USER='root'MYSQL_DATABASE_PASSWORD=NoneMYSQL_DATABASE_DB='starstudio'MYSQL_DATABASE_CHARSET='utf8'# Access contaol # 权限控制ALLOW_REGISTER=True# 允许外部注册ALLOW_ANONYMOUS_GROUP_INFO=True# 允许匿名访问小组信息,以方便注册USER_INITIAL_ACCESS=frozenset([
'auth', 'read_self', 'read_internal', 'read_other', 'write_self', 'read_group'
])
APP_INITIAL_ACCESS=frozenset([
'auth', 'read_self'
])
# Web consoleSSO_WEB_REDIRECT_PREFIX='http://sso.local.com/'# 内部 SSO 管理面板登录的Redirect前缀## LAN Device discover service.# CheckBot service.#LAN_DEV_REDIS_HOST=''# RedisLAN_DEV_REDIS_PORT=''LAN_DEV_REDIS_PROBER_IDENT_PREFIX='LANDEV_DEFAULT'# Redis key前缀,用于区分应用LAN_DEV_LIVENESS_TRACK_INTERVAL=5# 进行设备存活测试的时间间隔LAN_DEV_LIVENESS_PROBE_TIMEOUT=5# 进行设备发现超时时间# 若设备在此时间内无响应,则判断# 设备不存在LAN_DEV_LIVENESS_PROBE_INTERVAL=30# 进行设备发现的时间间隔LAN_DEV_INTERFACE='wlp3s0'# 进行设备感知的接口名称