💐 Sync 2026-07-01 20:59:30

This commit is contained in:
github-actions[bot] committed 2026-07-01 20:59:30 +08:00
1 parent e7847915a3
commit 4747916ff1
13 files changed
+307 -11

No files matched your search

+56
View File
@@ -0,0 +1,56 @@
#
# Copyright (C) 2026 KaiPlus Contributors
#
# This is free software, licensed under the GNU General Public License v3.
#
include $(TOPDIR)/rules.mk
PKG_ARCH_kaiplus:=$(ARCH)
PKG_NAME:=kaiplus
PKG_VERSION:=1.0.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/kaiplus/
PKG_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=net
CATEGORY:=System
SUBMENU:=
TITLE:=KaiPlus
URL:=https://github.com/linkease/istore-packages
endef
define Package/$(PKG_NAME)/description
KaiPlus is a single-process AI workspace and session service.
endef
define Package/$(PKG_NAME)/conffiles
/etc/config/kaiplus
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/usr/share/kaiplus/www $(1)/usr/share/kaiplus/defaults $(1)/usr/share/kaiplus/helpers $(1)/etc/init.d $(1)/etc/config
$(INSTALL_BIN) $(PKG_BUILD_DIR)/kaiplus_bin.$(PKG_ARCH_kaiplus) $(1)/usr/sbin/kaiplus_bin
$(CP) $(PKG_BUILD_DIR)/www/* $(1)/usr/share/kaiplus/www/
$(CP) $(PKG_BUILD_DIR)/defaults/* $(1)/usr/share/kaiplus/defaults/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/helpers/kaiplus_workspace_tool.* $(1)/usr/share/kaiplus/helpers/
$(INSTALL_BIN) ./files/kaiplus.init $(1)/etc/init.d/kaiplus
$(INSTALL_CONF) ./files/kaiplus.config $(1)/etc/config/kaiplus
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
+5
View File
@@ -0,0 +1,5 @@
config kaiplus
option 'enabled' '0'
option 'data_dir' ''
option 'port' '8198'
option 'system_role' 'istoreos'
+74
View File
@@ -0,0 +1,74 @@
#!/bin/sh /etc/rc.common
START=93
USE_PROCD=1
get_config() {
config_get_bool enabled "$1" enabled 1
config_get data_dir "$1" data_dir ""
config_get port "$1" port "8198"
config_get system_role "$1" system_role "istoreos"
}
mkdir_p() {
[ -d "$1" ] || mkdir -p "$1"
}
start_service() {
config_load kaiplus
config_foreach get_config kaiplus
if [ "$enabled" != 1 ]; then
return 1
fi
if [ -z "$data_dir" ]; then
logger -t kaiplus "data_dir is empty; please set option data_dir in /etc/config/kaiplus"
return 1
fi
mkdir_p "$data_dir"
mkdir_p "$data_dir/workspace"
mkdir_p "$data_dir/cache"
mkdir_p "$data_dir/config"
mkdir_p "$data_dir/state"
helper_token_file="$data_dir/state/ssh-helper.token"
if [ ! -s "$helper_token_file" ]; then
umask 077
if [ -r /proc/sys/kernel/random/uuid ]; then
cat /proc/sys/kernel/random/uuid > "$helper_token_file"
else
{
date +%s
cat /proc/uptime 2>/dev/null
dd if=/dev/urandom bs=24 count=1 2>/dev/null || true
} | sha256sum | awk '{print $1}' > "$helper_token_file"
fi
fi
helper_token="$(cat "$helper_token_file")"
logger -t kaiplus "Starting KaiPlus service"
procd_open_instance kaiplus_bin
procd_set_param env \
KAIPLUS_HOME="$data_dir" \
KAIPLUS_SYSTEM_ROLE="$system_role" \
KAIPLUS_WORKSPACE_HELPER_DIR="/usr/share/kaiplus/helpers" \
KAIPLUS_WORKSPACE_TOOL_INSTALL_DIR="/tmp/kaiplus_workspace_tool" \
KAIPLUS_SSH_HELPER_TOKEN="$helper_token" \
REASONIX_CREDENTIALS_STORE="file"
procd_set_param command /usr/sbin/kaiplus_bin kaiplus-web
procd_append_param command --addr "0.0.0.0:$port"
procd_append_param command --data-dir "$data_dir"
procd_append_param command --static-dir /usr/share/kaiplus/www
procd_append_param command --defaults-dir /usr/share/kaiplus/defaults
procd_append_param command --system-role "$system_role"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
logger -t kaiplus "KaiPlus service started"
}
service_triggers() {
procd_add_reload_trigger "kaiplus"
}