jetlinks-community Documentation

JetLinks 基于Java,Spring Boot ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的企业级物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接...

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy jetlinks-community on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name jetlinks-community -p 8848:8848 --restart always registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-community:2.11.0-SNAPSHOT
Configured Services & Ports
⚙️ redis
image: redis:6
⚙️ postgres
image: timescale/timescaledb:latest-pg16
⚙️ jetlinks
image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-community:2.11.0-SNAPSHOT
🔌 Ports: 8848:8848, 1883-1890:1883-1890, 8800-8810:8800-8810, 5060-5061:5060-5061
docker-compose.yml
yaml (docker-compose.yml)
version: '3'
services:
    redis:
        image: redis:6
        container_name: jetlinks-ce-redis
        #    ports:
        #      - "6379:6379" # 仅供jetlinks-ce访问
        volumes:
            - "./data/redis:/data"
        command: redis-server --appendonly yes --requirepass "JetLinks@redis"
        environment:
            - TZ=Asia/Shanghai
        healthcheck:
            test: [ "CMD", "redis-cli", "-h", "localhost", "-p", "6379", "-a", "JetLinks@redis", "ping" ]
            interval: 10s
            timeout: 5s
            retries: 3
    postgres:
        image: timescale/timescaledb:latest-pg16
        container_name: jetlinks-ce-postgres
        #        ports:
        #            - "5432:5432"  # 仅供jetlinks-ce访问
        volumes:
            - "./data/postgres:/var/lib/postgresql/data"
        environment:
            POSTGRES_PASSWORD: JetLinks@postgres
            POSTGRES_DB: jetlinks
            POSTGRES_HOST_AUTH_METHOD: trust
            TZ: Asia/Shanghai
        healthcheck:
            test: [ "CMD", "pg_isready", "-U", "postgres" ]
            interval: 10s
            timeout: 5s
            retries: 5
    jetlinks:
        image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-community:2.11.0-SNAPSHOT
        container_name: jetlinks-ce
        ports:
            - "8848:8848" # 平台访问端口
            - "1883-1890:1883-1890" # 预留
            - "8800-8810:8800-8810" # 预留
            - "5060-5061:5060-5061" # 预留
        volumes:
            - "./data/jetlinks:/application/data"
        environment:
            - "JAVA_OPTS=-Duser.language=zh"
            - "TZ=Asia/Shanghai"
            - "EXTERNAL_HOST=local-host.cn" # 对外提供访问的域名或者ip地址
            - "EXTERNAL_PORT=8848" # 对外提供访问的端口,修改了端口映射同时也需要修改这里.
            - "ADMIN_USER_PASSWORD=JetLinks.C0mmVn1ty" # admin用户的初始密码
            - "spring.r2dbc.url=r2dbc:postgresql://postgres:5432/jetlinks" #数据库连接地址
            - "spring.r2dbc.username=postgres"
            - "spring.r2dbc.password=JetLinks@postgres"
            - "spring.data.redis.host=redis"
            - "spring.data.redis.port=6379"
            - "file.manager.storage-base-path=/application/data/files"
            - "spring.data.redis.password=JetLinks@redis"
            - "logging.level.io.r2dbc=warn"
            - "logging.level.org.springframework.data=warn"
            - "logging.level.org.springframework=warn"
            - "logging.level.org.jetlinks=warn"
            - "logging.level.org.hswebframework=warn"
            - "logging.level.org.springframework.data.r2dbc.connectionfactory=warn"
            - "network.resources[0]=0.0.0.0:8800-8810/tcp"
            - "network.resources[1]=0.0.0.0:1883-1890"
            - "hsweb.cors.enable=true"
            - "hsweb.cors.configs[0].path=/**"
            - "hsweb.cors.configs[0].allowed-credentials=true"
            - "hsweb.cors.configs[0].allowed-headers=*"
            - "hsweb.cors.configs[0].allowed-origins=*"
            - "hsweb.cors.configs[0].allowed-methods[0]=GET"
            - "hsweb.cors.configs[0].allowed-methods[1]=POST"
            - "hsweb.cors.configs[0].allowed-methods[2]=PUT"
            - "hsweb.cors.configs[0].allowed-methods[3]=PATCH"
            - "hsweb.cors.configs[0].allowed-methods[4]=DELETE"
            - "hsweb.cors.configs[0].allowed-methods[5]=OPTIONS"
        links:
            - redis:redis
            - postgres:postgres
        depends_on:
            postgres:
                condition: service_healthy
            redis:
                condition: service_healthy
#    ui:  # 如果通过访问内嵌的前端存在问题,可以使用这个镜像
#        image: registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-vue:2.11.0
#        ports:
#            - "9000:9000"
#        environment:
#            API_BASE_PATH: "http://jetlinks:8848/"
#            TZ: Asia/Shanghai

File: README.md





-572077464-brightgreen)
-554591908-brightgreen)
-780133058-brightgreen)
-324606263-brightgreen)
-2021514-brightgreen)

JetLinks 2.1x 基于Java 17,Spring Boot 3.x,WebFlux,Netty,Vert.x,Reactor等开发,
是一个开箱即用,可二次开发的企业级物联网基础平台。平台实现了物联网相关的众多基础功能,
能帮助你快速建立物联网相关业务系统。

核心特性

开放源代码

全部源代码开放,可自由拓展功能,不再受制于人.前后端分离,接口全开放。

部署简单

最小化运行仅需要java 17,redis,timescaledb即可,无需部署大量中间件。

统一设备接入,海量设备管理

TCP/UDP/MQTT/HTTP、TLS/DTLS、不同厂商、不同设备、不同报文、统一接入,统一管理。

规则引擎

灵活的规则模型配置,支持多种规则模型以及自定义规则模型. 设备告警,场景联动,均由统一的规则引擎管理。

数据权限控制

灵活的非侵入数据权限控制。可实现菜单、按钮、数据三维维度的数据权限控制。可控制单条数据的操作权限。

技术栈

  1. Spring Boot 3.4.x
  2. Spring WebFlux 响应式Web支持
  3. R2DBC 响应式关系型数据库驱动
  4. Project Reactor 响应式编程框架
  5. Netty,Vert.x 高性能网络编程框架
  6. hsweb framework 4 业务功能基础框架
  7. ElasticSearch 全文检索,日志,时序数据存储 (可选)
  8. TDengine 设备时序数据存储(可选)
  9. Redis 缓存数据
  10. TimescaleDB 时序数据存储(可选)
  11. PostgreSQL 业务功能数据管理

架构

设备接入流程

模块

bash
--jetlinks-community
------|----docker
------|------|----dev-env       # 启动开发环境
------|------|----run-all       # 启动全部,通过http://localhost:8848 访问系统.
------|----jetlinks-components  # 公共组件模块
------|-------|----common-component # 通用组件.
------|-------|----configuration-component # 通用配置.
------|-------|----dashboard-component # 仪表盘.
------|-------|----datasource-component # 数据源.
------|-------|----elasticsearch-component # elasticsearch集成.
------|-------|----gateway-component # 网关组件,消息网关,设备接入.
------|-------|----io-component # IO 组件,Excel导入导出等.
------|-------|----logging-component # 日志组件
------|-------|----network-component # 网络组件,MQTT,TCP,CoAP,UDP等
------|-------|----notify-component # 通知组件,短信,右键等通知
------|-------|----protocol-component # 协议组件
------|-------|----relation-component # 关系组件
------|-------|----rule-engine-component # 规则引擎
------|-------|----script-component # 脚本组件
------|-------|----timeseries-component # 时序数据组件
------|-------|----tdengine-component # TDengine集成
------|-------|----things-component # 物组件
------|----jetlinks-manager     # 业务管理模块
------|-------|----authentication-manager   # 用户,权限管理
------|-------|----device-manager   # 设备管理
------|-------|----logging-manager   # 日志管理
------|-------|----network-manager   # 网络组件管理
------|-------|----notify-manager   # 通知管理
------|-------|----visualization-manager   # 数据可视化管理
------|-------|----rule-engine-manager   # 规则引擎管理
------|----jetlinks-standalone  # 服务启动模块
------|----simulator            # 设备模拟器

服务支持

我们提供了各种服务方式帮助您深入了解物联网平台和代码,通过产品文档、技术交流群、付费教学等方式,你将获得如下服务:

服务项 服务内容 服务收费 服务方式
基础问题答疑 问题答疑 免费 技术交流群支持
系统部署 系统部署 免费 文档自助。源码部署 Docker部署
产品使用 教学产品各功能使用 免费 文档自助。产品文档
二次开发 教学平台源码开发过程、工具使用等; 免费 文档自助。开发文档
系统部署 在客户指定的网络和硬件环境中完成社区版服务部署;提供模拟设备接入到平台中,并能完成正常设备上线、数据上下行 299元 线上部署支持
技术支持 提供各类部署、功能使用中遇到的问题答疑 100元 半小时内 线上远程支持(2小时起收)
其他服务 企业版源码购买;定制化开发;定制化时长、功能服务等 面议 面议

**付费**服务支持或商务合作请联系

文档

产品文档
快速开始
开发文档


仪表盘组件

获取所有类型

/dashboard/defs

text
[
  {
      "id":"system",
      "name":"系统",
      "objects":[
        {
          "id":"memory",
          "name":"内存""
        },
        {
          "id":"cpu",
          "name":"CPU""
        }
      ]
  }
]

获取类型支持的指标和维度

/dashboard/类型/对象/指标

/dashboard/system/memory/measurements

text
[
    {
     "id":"max",
     "name":"最大值",
     "dimensions":[ //指标支持的维度
       {"id":"time-interval","name":"历史数据","params":{"properties":[ ... ]}},
       {"id":"real-time","name":"实时数据","params":{"properties":[ ... ]}}
     ]
    },
    {
     "id":"usage",
     "name":"已使用"
    }
]

POST /dashboard/system/memory/_batch

text
[
    {
       "measurement":"usage",
       "dimension":"time-interval",
       "params":{"interval":"1s"}
    },
    {
       "measurement":"max",
       "dimension":"time-interval",
       "params":{"interval":"1s"}
    }
]


{
 "usage":[
    {
       "time":"15:00",
       "value":1.2
    },
    {
       "time":"16:00",
       "value":1.3
    }
 ]
 ,
 "max":[
     {
        "time":"15:00",
        "value":2
     },
     {
        "time":"16:00",
        "value":2
     }
  ]
}

/dashboard/类型/对象/维度/指标?参数

GET /dashboard/device/property/temp/realTime?history=10

text
{
    "timestamp":1578914267417,
    "value":5.6
 }