mirror of
https://shylinux.com/x/icebergs
synced 2025-04-25 09:08:06 +08:00
Icebergs.go
icebergs是一个应用框架,通过模块化、集群化、自动化,快速搭建起完整的个人云计算平台。
- 使用icebergs可以将各种模块或项目集成到一起,快速开发出集中式的服务器。
- 使用icebergs可以将各种设备自由的组合在一起,快速搭建起分布式的服务器。
0. 搭建服务
0.1 一键部署
mkdir miss; cd miss && curl -s https://shylinux.com/publish/ice.sh | sh
脚本会根据当前系统类型,自动下载程序文件ice.bin,并自动启动服务。
0.2 使用方式
终端交互
启动后的进程,像bash一样是一个可交互的shell,可以执行各种模块命令或系统命令。
网页交互
默认还会启动一个web服务,访问地址 http://localhost:9020 ,就可以通过网页进行操作。
重启服务
在终端按Ctrl+C,就可以重新启动服务。
结束服务
在终端按Ctrl+\,就可以停止服务。
0.3 使用示例
1. 项目开发
icebergs是一个应用框架,如果官方模块无法满足使用需求,还可以搜集第三方模块,自行编译程序。
如果第三方模块也无法满足使用需求,还可以自己开发模块, icebergs提供了模板,可以一键创建新模块,快速添加自己的功能模块。
1.1 部署环境
开发环境,需要提前安装好git和golang
mkdir miss; cd miss && curl -s https://shylinux.com/publish/template.sh | sh
template.sh会自动创建出项目模板,并自动编译生成程序,然后启动服务。
为了方便以后创建项目与模块。 可以将辅助脚本template.sh下载,并添加到可执行目录中。
1.2 添加第三方模块
在src/main.go文件中,就可以import任意的第三方模块, 执行一下make命令,就会重新生成ice.bin。 重新启动服务,就可以使用第三方模块了。
1.3 开发模块
template.sh tutor hello
使用之前下载的template.sh,调用tutor命令,并指定模块名称hello,就可以一键创建模块了。
在src/main.go 中import新加的模块, 执行make命令,程序编译完成后, 重启服务,就可以使用新模块了。
1.4 开发框架
如果现有的框架,无法满足需求,还可以下载框架源码自行更改。
git clone https://github.com/shylinux/icebergs usr/icebergs
修改go.mod文件,引用本地框架。
replace github.com/shylinux/icebergs => ./usr/icebergs
1.5 开发接口
如果现有的接口,无法满足需求,还可以下载接口源码自行更改。
git clone https://github.com/shylinux/toolkits usr/toolkits
修改go.mod文件,引用本地框架。
replace github.com/shylinux/toolkits => ./usr/toolkits
2 原型设计 type.go
2.1 msg.Detail
2.2 msg.Option
2.3 msg.Append
2.4 msg.Result
2.5 msg.Travel
2.6 msg.Search
2.7 msg.Conf
2.8 msg.Cmd
2.9 msg.Cap
3 框架 base.go
3.1 注册模块 Register
3.2 创建资源 Begin
3.3 加载配置 _init
3.4 启动服务 Start
3.5 保存配置 _exit
3.6 释放资源 Close
4 基础模块 base/
4.1 模块中心 base/ctx
4.2 命令中心 base/cli
4.3 认证中心 base/aaa
4.4 网页中心 base/web
4.5 词法中心 base/lex
4.6 语法中心 base/yac
4.7 事件中心 base/gdb
4.8 日志中心 base/log
4.9 网络中心 base/tcp
4.10 文件中心 base/nfs
4.11 终端中心 base/ssh
4.12 数据中心 base/mdb
5 核心模块 core/
5.1 编程中心 core/code
5.2 文档中心 core/wiki
5.3 聊天中心 core/chat
5.4 团队中心 core/team
5.5 贸易中心 core/mall
Languages
Go
91.5%
JavaScript
8.2%
CSS
0.3%