English | 简体中文
AO.space Platform 为个人设备提供透明通信通道服务和互联网访问的安全防护,并且可以进行私有部署。与其他解决方案中的平台不同,个人账号的认证和鉴权只由运行在个人设备的服务端管理,AO.space 平台无法管理和解析个人的任何数据,实现用户的个人数据完全由用户掌控在个人设备上。
AO.space Platform 的职责是为个人设备建立透明的通信信道。包含基础服务(Platform Base Service)、转发代理服务(Plarform Proxy Service)、中继转发服务器(Network Transit Server)。
- 基础服务(Platform Base Service):为 AO.space 设备提供注册服务,以及协调和管理平台网络资源(域名,Network Server通信信道等)。
- 转发代理服务(Plarform Proxy):为 AO.space 用户域名流量提供高可用转发和横向扩容的支持。
- 中继转发服务器(Network Transit Server)提供通过中继转发的方式穿透 NAT 访问设备的网络支持服务。将来自 Clients 的流量转发至 AO.space 设备。
注意: 完整的平台部署指南,请参阅 AOPlatform社区部署指南 。
Base Service 是 AO.space Platform 管理面的实现,主要提供以下功能:
- 认证 AO.space 设备身份
- 提供 AO.space 设备、用户、客户端注册功能
- 协调和管理平台网络资源(域名,Network Transit Server通信信道等)
- AO.space 平台切换
注意: 项目使用了 Quarkus,它是一个 Red Hat 公司开源的云原生 Java 框架。如果您想了解有关Quarkus的更多信息,请访问其网站:QUARKUS 。
所有应用程序配置都可以通过配置文件 “application.yml“ 进行设置,有关如何配置它们的详细信息,请参阅 配置参考指南。以下是在容器启动期间可以更改的重要环境变量。
- QUARKUS_DATASOURCE_DB_KIND:用于设置数据库类型。默认设置:
mysql
- QUARKUS_DATASOURCE_USERNAME:用于设置数据库的用户名。
- QUARKUS_DATASOURCE_PASSWORD:用于设置数据库的密码。
- QUARKUS_DATASOURCE_JDBC_URL:用于设置数据库的 jdbc url。默认设置:
jdbc:mysql://127.0.0.1:3306/community
- QUARKUS_REDIS_HOSTS:用于设置 redis 的连接url。默认设置:
redis://localhost:6379
- QUARKUS_REDIS_PASSWORD:用于设置 redis 的密码。
- APP_REGISTRY_SUBDOMAIN:用于设置 AO.space 设备的“根域名”,也是 AO.space 用户域名的一部分。您需要在 DNS 和 Nignx 上配置根域名,请参阅 AOPlatform社区部署指南
有关配置名称和环境变量名称之间的命名转换规则,请参阅 转换规则。以下是来自 “application.yml” 的上述变量的所有默认值:
quarkus:
datasource:
db-kind: mysql
username: root
password: 123456
jdbc:
url: jdbc:mysql://127.0.0.1:3306/community?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=GMT%2B8
redis:
hosts: redis://localhost:6379
password: 123456
app:
registry:
subdomain: XXXX # AO.space 设备的根域名
本工程存在多个模块,模块间存在依赖关系。在次提醒在 Maven 多模块项目中,每个子模块都可以独立构建,也可以通过父项目进行统一构建。如果要构建整个项目,只需要在父项目的根目录下执行 mvn clean install
命令即可。Maven 会自动按照依赖关系进行构建,先构建依赖的子模块,再构建依赖它们的子模块。本工程下也可执行如下命令:
./mvnw clean install
./mvnw package
cd /eulixplatform-registry
docker build --pull -f src/main/docker/Dockerfile.jvm -t platform-base-jvm-community:latest .
docker run -itd --name platform-base -p 8080:8080 -u root -e APP_REGISTRY_SUBDOMAIN=" AO.space 设备的根域名" platform-base-jvm-community:latest
您可以在开发模式下运行应用程序,该模式支持实时编码,使用:
./mvnw compile quarkus:dev
注意: Quarkus现在附带一个开发UI,该UI仅在开发模式下可用:
http://localhost:8080/q/dev/
应用程序可以使用以下方式打包:
./mvnw package
它会在 “target/quarkus-app/” 目录中生成 “quarkus-run.jar” 文件。 请注意,它不是一个 über-jar ,因为依赖项被复制到“target/quarkus-app/lib/”目录中。 如果要构建 über-jar ,请执行以下命令:
./mvnw package -Dquarkus.package.type=uber-jar
该应用程序现在可以使用如下命令运行:
java -jar target/quarkus-app/quarkus-run.jar
OpenAPI 描述符和 Swagger UI 前端来测试 REST 端点,访问地址:http://localhost:8080/platform/q/swagger-ui/
有关OpenAPI扩展的更多详细信息,请参阅 使用OpenAPI和Swagger UI
- 提供局域网 IP 直连域名解析服务
- 转发代理服务(Platform Proxy Service)
- 平台侧基础服务的 Java 语言 SDK
- 平台侧基础服务的 golang 语言 SDK
- 基于 Mysql、Redis 等常用中间件的分布式锁
我们非常欢迎对本项目进行贡献。以下是一些指导原则和建议,希望能够帮助您参与到项目中来。
最后,感谢您对本项目的贡献。我们欢迎各种形式的贡献,包括但不限于代码贡献、问题报告、功能请求、文档编写等。我们相信在您的帮助下,本项目会变得更加完善和强大。