1
0
forked from x/ContextOS
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-09-12 08:09:42 +08:00
parent c208af0857
commit b30cae31dc
17 changed files with 142 additions and 103 deletions

View File

@ -11,20 +11,20 @@ ish_miss_prepare_project
ish_miss_prepare_contexts
ish_miss_prepare_intshell
ish_miss_prepare_learning
ish_miss_prepare_volcanos
ish_miss_prepare_learning
ish_miss_prepare_toolkits
ish_miss_prepare_icebergs
ish_miss_prepare_release
ish_miss_prepare icons
# ish_miss_prepare go-git
# ish_miss_prepare go-qrcode
# ish_miss_prepare websocket
# ish_miss_prepare wubi-dict
# ish_miss_prepare word-dict
# ish_miss_prepare webview
ish_miss_prepare matrix
ish_miss_prepare go-git
ish_miss_prepare go-qrcode
ish_miss_prepare websocket
ish_miss_prepare webview
ish_miss_prepare wubi-dict
ish_miss_prepare word-dict
ish_miss_prepare icons
ish_miss_make
[ -z "$*" ] || ish_miss_serve "$@"

View File

@ -0,0 +1,13 @@
title "dream"
spark `dream 命令,工作空间管理。`
chapter "界面"
spark demo dream
chapter "参数"
chapter "操作"
chapter "监听事件"
chapter "配置"

View File

@ -1,42 +1,40 @@
navmenu `
基础模块 base/
aaa aaa/
user user.shy
cli cli/
daemon daemon.shy
system system.shy
ctx ctx/
command command.shy
config config.shy
cli cli/
system system.shy
daemon daemon.shy
web web/
serve serve.shy
space space.shy
aaa aaa/
user user.shy
lex lex/
yac yac/
ssh ssh/
gdb gdb/
nfs nfs/
cat cat.shy
dir dir.shy
tcp tcp/
host host.shy
nfs nfs/
dir dir.shy
cat cat.shy
mdb mdb/
log log/
功能模块 core/
web web/
space space.shy
dream dream.shy
serve serve.shy
space space.shy
核心模块 core/
location usr/icebergs/core/chat/location.shy
code code/
compile compile.shy
publish publish.shy
xterm usr/icebergs/core/code/xterm.shy
plan usr/icebergs/core/team/plan.shy
wiki wiki/
word word.shy
chat chat/
team team/
mall mall/
其它模块 misc/
tmux tmux/
session session.shy
buffer buffer.shy
chrome.chrome usr/icebergs/misc/chrome/chrome.shy
git.git usr/icebergs/misc/git/git.shy
git.search usr/icebergs/misc/git/search.shy
java.java usr/icebergs/misc/java/java.shy
java.spring usr/icebergs/misc/java/spring.shy
node.node usr/icebergs/misc/node/node.shy
node.npm usr/icebergs/misc/node/npm.shy
node.vue usr/icebergs/misc/node/vue.shy
tmux.tmux usr/icebergs/misc/tmux/tmux.shy
`

View File

@ -1,48 +1,42 @@
title "快速下载"
chapter "下载程序"
spark `Contexts 使用 Golang 开发,支持交叉编译,所以在各种操作系统上都只需要一个 bin 文件,直接下载执行即可。`
spark `为了方便下载并快速启动,可以使用如下命令。
spark `
为了方便下载并快速启动,可以使用如下命令。
自动选择下载命令 curl 或 wget
自动识别出操作系统与处理器类型,然后下载所需的 bin 文件,并自动启动服务进程。
点击下面的命令,即可直接复制,然后打开命令行终端,执行一下即可。`
点击下面的命令,即可直接复制,然后打开命令行终端,执行一下即可。
`
web.code.publish binary
spark `在 Windows 系统上,可以下载 <a href="https://git-scm.com/download">Git-Bash</a>,在 Git-Bash 的命令行中下载。`
chapter "使用方式"
spark `下载成功后,会自动启动服务进程,并会启动一个可交互的 shell。
spark `
下载成功后,会自动启动服务进程,并会启动一个可交互的 shell。
既可以在命令行中,通过命令的方式,使用 Contexts 提供的所有软件工具,
也可以在浏览器中,通过网页的方式,使用所有的软件工具。`
也可以在浏览器中,通过网页的方式,使用所有的软件工具。
`
spark `在启动的 shell 中执行命令,输入命令 <kdb>exit<kdb>,并输入回车键,即可退出服务进程。`
spark `也可以通过信号控制进程,<kbd>Ctrl+C</kbd> 重启进程,<kbd>Ctrl+\\</kdb> 退出进程。`
spark `再次启动服务进程,输入命令 ./bin/ice.bin 即可。`
section "目录结构"
spark `
下载成功后Contexts 会以当前目录为工作空间,相关的数据与文件也只会保存在当前目录。所以下载之前,最好先创建一个目录 contexts。
`
spark `下载成功后Contexts 会以当前目录为工作空间,相关的数据与文件也只会保存在当前目录。所以下载之前,最好先创建一个目录 contexts。`
order `
./bin/ice.bin 程序文件
./var/conf/ 配置目录
./var/data/ 数据目录
./var/log/ 日志目录
`
spark `
其中 ./bin/ice.bin 就是下载的程序文件,直接运行即可使用。其它的文件,都是在程序运行时生成的文件。
`
spark `其中 ./bin/ice.bin 就是下载的程序文件,直接运行即可使用。其它的文件,都是在程序运行时生成的文件。`
section "终端命令"
spark `
contexts 可以创建任意多个工作空间,为了保证每个工作空间的完整性与独立性,每个工作空间下都会保存运行所需的所有文件。
所以并不需要将 ice.bin 文件放到全局的 PATH 中,在当前工作空间的目录中,完成所有操作。
`
spark `
Contexts 也支持在命令行终端中执行一次性命令。
`
spark `Contexts 也支持在命令行终端中执行一次性命令。`
spark `查看网卡信息`
shell `
./bin/ice.bin tcp.host
`
shell `./bin/ice.bin tcp.host`
spark `执行本机系统命令pwd 查看当前路径。`
shell `
./bin/ice.bin cli.system pwd
`
shell `./bin/ice.bin cli.system pwd`

View File

@ -0,0 +1,18 @@
title "应用市场"
spark `对于操作系统来说,进程与文件就是最基本的元素。`
spark `对于工具系统来说,空间与源码就是最基本的元素。`
spark `
就像程序文件可以用来启动进程,项目源码可以直接启动 Contexts 的工作空间,工作空间的所有配置与数据也会保存到项目源码中。
所以代码平台直接可以成为应用市场,项目源码可以一键启动工作空间。
`
chapter "代码平台"
spark `
Contexts 提供了完整的前后端框架与工具,可以快速开发出新的项目与模块。
基于 Contexts 框架开发的项目,都可以直接用来启动 Contexts 的空间。
这些项目可以存放到任意的平台上,在启动工作空间时,指定代码地址即可。
`
spark `
为了方便用户使用Contexts 提供了代码平台 <a>https://repos.shylinux.com/explore/repos</a>。
也可以通过命令工具 web.code.git.search 来访问。在项目列表中,点启动按钮,可以直接下载代码并启动工作空间。
`
spark demo web.code.git.search args repos

View File

@ -0,0 +1,6 @@
title "共享链接"
spark `在 Contexts 的工具系统中,所有的工作空间与命令工具,都可以一键共享,就可以实现多设备协同,或是多人协同使用。`
chapter "共享工具"
chapter "共享群组"
chapter "共享空间"

View File

@ -1,11 +1,15 @@
title "工作空间"
spark `Contexts 下载并启动后,会以当前运行目录为工作空间,加载启动脚本和保存数据与文件。
spark `
Contexts 下载并启动后,会以当前运行目录为工作空间,加载启动脚本和保存数据与文件。
Contexts 不推荐使用全局的资源或家目录的文件,为了减少全局依赖与资源冲突。从而可以在一台机器上启动任意多个空间。
Contexts 推荐使用空间来管理项目与任务。`
spark `Contexts 每个空间都是一个独立的目录,与独立的守护进程。
每个空间既可以使用相同的 Contexts也可以使用不同的 Contexts即不同的工具集合。因为每个项目内容可能是不一样的使用的工具也可能是不一样的。`
Contexts 推荐使用空间来管理项目与任务。
`
spark `
Contexts 每个空间都是一个独立的目录,与独立的守护进程。
每个空间既可以使用相同的 Contexts也可以使用不同的 Contexts即不同的工具集合。因为每个项目内容可能是不一样的使用的工具也可能是不一样的。
`
chapter "创建空间"
chapter "空间管理"
section "启动服务"
spark `首先,启动 Contexts 服务。并打开后台管理系统。<a>http://localhost:9020/chat/portal/</a>`
shell `
@ -14,13 +18,8 @@ open http://localhost:9020
`
section "打开工具"
spark `如果导航栏未定制,在左边导航栏中打开运维群 -> 应用,然后在右边工作区中,找到 dream即空间管理的工具。`
spark `<a>http://localhost:9020/chat/portal/?river=operate&storm=web&index=web.dream</a>`
iframe "http://localhost:9020/chat/portal/?river=operate&storm=web&index=web.dream"
spark `或在搜索框中,直接搜索 dream 即可打开空间管理的工具。`
spark `<a>http://localhost:9020?_search=dream</a>`
iframe "http://localhost:9020?_search=dream"
spark `或是直接打开命令网页,<a>http://localhost:9020/chat/cmd/web.dream</a>`
spark `打开管理系统后,点击标题栏中的 "空间",打开空间管理工具,`
spark `或是直接通过地址打开空间管理工具 <a>http://localhost:9020/chat/cmd/dream</a>`
spark demo dream
section "创建空间"
@ -28,11 +27,13 @@ spark `点击工具栏中的创建按钮,即可打开创建对话框。`
spark `空间创建有 name、repos、binary、template 四个参数,其中 name 是必选参数指定空间名创建空间时Contexts 会默认给空间名加一个时间前缀。`
order `
repos 指定 git 仓库地址Contexts 将此仓库下载到本地,然后把此目录当成工作空间。
binary 指定 bin 文件Contexts 会自动下载并使用这个 bin 文件,来启动守护进程。
binary 指定 bin 文件Contexts 会自动下载并使用这个 bin 文件,来直接启动守护进程。
template 指定模板目录,空间创建时,会从模板目录中复制所需要的文件。
`
spark `空间创建成功后,会在 ./usr/local/work 目录下创建一个空间的目录。并启动一个守护进程。
守护进程会自动连接服务进程,从而使用服务进程提供的网页,来访问此空间。`
spark `
空间创建成功后,会在 ./usr/local/work 目录下创建一个空间的目录。并启动一个守护进程。
守护进程会自动连接服务进程,从而使用服务进程提供的网页,来访问此空间。
`
section "使用空间"
spark `空间创建成功后,会自动打开空间首页。之后也可以在空间工具中,随时打开任意空间的首页。`
@ -45,13 +46,18 @@ spark `Contexts 中的空间,除有独立的目录与进程,用来进行资
spark `虽然工作空间,默认没有分配端口,没有启动任何服务,但是可以通过服务进程作反向代理,将工作空间内的工具、文件、资源对外发布。`
section "服务源"
spark `Contexts 的工作空间启动后,可以通过服务进程中的空间管理工具来操作。
也可以在单独网页中使用。例如 redis-story 项目的首页地址是 <a>http://localhost:9020/chat/pod/20230511-redis-story</a>`
spark `
Contexts 的工作空间启动后,可以通过服务进程中的空间管理工具来操作。
也可以在单独网页中使用。例如 redis-story 项目的首页地址是 <a>http://localhost:9020/chat/pod/20230511-redis-story</a>
`
iframe "http://localhost:9020/chat/pod/20230511-redis-story"
spark `每个工作空间都可以灵活的配置自己的首页。Contexts 中的所有工具,都有自己的网页界面,都可以作为空间的首页来使用。
例如 redis-story 项目,就选择 web.code.macos.desktop 命令作为自己的首页,这样打开 redis-story 空间,就是一个电脑桌面,完全用图标和窗口来使用所有工具。`
spark `
每个工作空间都可以灵活的配置自己的首页。Contexts 中的所有工具,都有自己的网页界面,都可以作为空间的首页来使用。
例如 redis-story 项目,就选择 web.code.macos.desktop 命令作为自己的首页,这样打开 redis-story 空间,就是一个电脑桌面,完全用图标和窗口来使用所有工具。
`
spark `因为 Contexts 的工作空间,就是一个工作目录加一个守护进程,资源占有非常少,比虚拟机或是容器占有更少的资源。
spark `
因为 Contexts 的工作空间,就是一个工作目录加一个守护进程,资源占有非常少,比虚拟机或是容器占有更少的资源。
Contexts 的工作空间,为项目管理与服务部署,提供了一个更加轻量、更加完备的解决方案。
`
spark `每个工作空间下的所有软件工具也可以单独使用。如下地址pod 和 cmd 分别指定空间名与命令名。`
@ -62,16 +68,22 @@ section "镜像源"
spark `Contexts 使用 Golang 开发所以具备了交叉编译的功能。Contexts 封装了一个编译工具 web.code.compile可以方便的将本空间的代码编译成指定系统与架构的程序并将相关资源一起打包。`
spark `<a>http://localhost:9020/chat/cmd/compile</a>`
spark `编译后的程序文件会放到空间目录的 ./usr/publish/ 目录下,通过服务进程作了一个代理,就可以在其它机器,直接下载这个空间的程序文件,并起动任意多个完全相同的空间。`
spark `这种使用方式,其实就是最快速的 devops
spark `
这种使用方式,其实就是最快速的 devops
原始空间就是开发环境,在其它机器起动的空间就是测试环境或生产环境,
从开发环境到生产环境,之间所有环节完全打通,甚至可以做到,从开发到上线,只需要一秒钟。并且开发环境与生产环境,完全同时在线,可以实现更快速的闭环互动,全面加速整个研发流程。`
spark `如果直接用 wget 或 curl 命令,直接访问工作空间的地址,服务进程检测到请求头 UserAgent 判断出是命令行中的请求。则会直接返回空间的程序文件。
因为 bin 文件中,打包了完整的资源文件,所以这样就可以在另一台设备上,快速部署出一个完全一样的工作空间。这个命令只是简单的下载程序文件,在实际使用时,会从空间中复制一个功能更完整的下载命令。`
从开发环境到生产环境,之间所有环节完全打通,甚至可以做到,从开发到上线,只需要一秒钟。并且开发环境与生产环境,完全同时在线,可以实现更快速的闭环互动,全面加速整个研发流程。
`
spark `
如果直接用 wget 或 curl 命令,直接访问工作空间的地址,服务进程检测到请求头 UserAgent 判断出是命令行中的请求。则会直接返回空间的程序文件。
因为 bin 文件中,打包了完整的资源文件,所以这样就可以在另一台设备上,快速部署出一个完全一样的工作空间。这个命令只是简单的下载程序文件,在实际使用时,会从空间中复制一个功能更完整的下载命令。
`
shell `wget http://localhost:9020/chat/pod/20230511-redis-story`
section "代码源"
spark `每个工作空间,都可以绑定一个代码库,在空间目录下的所有文件,都可以被提交到代码库里,包括代码、配置、数据等。
不同机器的上工作空间就可以通过代码库,来同步代码与数据,并且记录每次变更的信息。同一台机器上的不同空间,当然也可以共用一个代码库。`
spark `
每个工作空间,都可以绑定一个代码库,在空间目录下的所有文件,都可以被提交到代码库里,包括代码、配置、数据等。
不同机器的上工作空间就可以通过代码库,来同步代码与数据,并且记录每次变更的信息。同一台机器上的不同空间,当然也可以共用一个代码库。
`
spark `每个空间的地址,可以直接当成代码地址来使用。服务节点,会自动去查询工作空间的仓库地址,做一个内部重定向。`
shell `git clone http://localhost:9020/chat/pod/20230511-redis-story`

View File

@ -23,7 +23,8 @@ navmenu `
"应用桌面" desktop.shy
"高级特性" feature/
"创建空间" space.shy
"应用市场" repos.shy
"工作空间" space.shy
"组建集群" cluster.shy
"共享链接" share.shy
"认证授权" auth.shy

View File

@ -0,0 +1 @@
title "共享链接"

View File

@ -1,9 +1,8 @@
body.black {
--body-fg-color:cyan;
--box-border:darkcyan solid 1px;
--legend-bg-color:#061c3c9e;
--input-bg-color:transparent;
--box-border: darkcyan solid 1px;
/* --panel-output-bg-color: var(--body-bg-color); */
}
body.black fieldset.panel.auto { background-color:var(--plugin-bg-color); color:var(--plugin-fg-color); }
body.black fieldset.panel.auto>div.output { background-color:var(--plugin-bg-color); color:var(--plugin-fg-color); }

View File

@ -1,5 +1,5 @@
body.blue {
--box-border:#9c9cb070 solid 1px;
--legend-bg-color:var(--ui-blue-10);
--input-bg-color:var(--ui-geekblue-10);
--box-border:#9c9cb070 solid 1px;
}

View File

@ -1,22 +1,21 @@
body.light {
--body-bg-color:#4a566e;
--body-fg-color:black;
--legend-bg-color:aliceblue;
--input-bg-color:white;
--body-bg-color:#4a566e; --body-fg-color:black;
--box-border:lightgray solid 1px;
--box-shadow:gray 2px 2px 8px;
--hover-fg-color:var(--input-fg-color);
--legend-bg-color:aliceblue;
--input-bg-color:white;
--panel-output-bg-color: var(--body-bg-color);
--panel-output-fg-color:#d0d3da;
--panel-input-bg-color:#6b7488;
--panel-input-fg-color:white;
--panel-hover-fg-color:white;
--hover-fg-color:var(--input-fg-color);
--code-fg-color:white;
--code-comment:green; --code-keyword:darkblue; --code-package:blue;
--code-datatype:cornflowerblue; --code-function:darkcyan;
--code-constant:gray; --code-string:brown; --code-object:purple;
}
body.light fieldset.panel:not(.main) input { background-color:var(--panel-input-bg-color); color:var(--panel-input-fg-color); }
body.light fieldset.panel:not(.main) input::placeholder { background-color:var(--panel-input-bg-color); color:var(--panel-fg-color); }
body.light fieldset.panel:not(.main) { --hover-fg-color:white; }
body.light fieldset.panel:not(.main):not(.auto) input { background-color:var(--panel-input-bg-color); color:var(--panel-input-fg-color); }
body.light fieldset.panel:not(.main):not(.auto) input::placeholder { background-color:var(--panel-input-bg-color); color:var(--panel-fg-color); }
body.light fieldset.panel:not(.main):not(.auto) { --hover-fg-color:white; }

View File

@ -1,7 +1,6 @@
body.red {
--box-border:#9c9cb070 solid 1px;
--legend-bg-color:var(--ui-volcano-9);
--input-bg-color:var(--ui-red-10);
/* --box-border:red solid 1px; */
--box-border:#9c9cb070 solid 1px;
}

View File

@ -1,5 +1,5 @@
body.silver {
--box-border: gray solid 1px;
--legend-bg-color:#2d323e;
--input-bg-color:#202430;
--box-border: gray solid 1px;
}

View File

@ -1,15 +1,14 @@
body.white {
--body-fg-color:black;
--legend-bg-color:#ffffffc2;
--input-bg-color:transparent;
--box-border:lightgray solid 1px;
--box-shadow:gray 2px 2px 8px;
--hover-fg-color:var(--input-fg-color);
--legend-bg-color:#ffffffc2;
--input-bg-color:transparent;
--panel-output-fg-color:lavender;
/* --panel-output-bg-color: var(--plugin-bg-color); */
--panel-input-bg-color:var(--input-bg-color);
--panel-input-fg-color:lavender;
--panel-hover-fg-color:white;
--hover-fg-color:var(--input-fg-color);
--code-fg-color:white;
--code-comment:green; --code-keyword:darkblue; --code-package:blue;

View File

@ -1,2 +1,2 @@
mkdir contexts; cd contexts
ctx_dev={{.Option "domain"}}{{.Option "ctx_env"}} temp=$(mktemp); if curl -h &>/dev/null; then curl -o $temp -fsSL $ctx_dev; else wget -O $temp -q $ctx_dev; fi; source $temp binary
export ctx_dev={{.Option "domain"}}{{.Option "ctx_env"}} temp=$(mktemp); if curl -h &>/dev/null; then curl -o $temp -fsSL $ctx_dev; else wget -O $temp -q $ctx_dev; fi; source $temp binary