feat: add Kilo Code app

This commit is contained in:
okxlin
2026-07-19 17:32:54 +08:00
parent db7e2667ca
commit c343f34005
15 changed files with 408 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
PANEL_APP_PORT_HTTP=4096
KILO_SERVER_USERNAME=kilo
KILO_SERVER_PASSWORD=replace-with-a-strong-password
APP_DATA_DIR=./data
APP_WORKSPACE_DIR=./workspace
TZ=Asia/Shanghai
CONTAINER_NAME=kilocode-compose-check
+102
View File
@@ -0,0 +1,102 @@
additionalProperties:
formFields:
- default: 4096
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Server Port
labelZh: 服务端口
label:
en: Server Port
zh: 服务端口
zh-Hant: 服務連接埠
ja: サーバーポート
ko: 서버 포트
ru: Порт сервера
ms: Port Pelayan
pt-br: Porta do Servidor
required: true
rule: paramPort
type: number
- default: kilo
edit: true
envKey: KILO_SERVER_USERNAME
labelEn: Server Username
labelZh: 服务用户名
label:
en: Server Username
zh: 服务用户名
zh-Hant: 服務使用者名稱
ja: サーバーユーザー名
ko: 서버 사용자 이름
ru: Имя пользователя сервера
ms: Nama Pengguna Pelayan
pt-br: Nome de Usuário do Servidor
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: KILO_SERVER_PASSWORD
labelEn: Server Password
labelZh: 服务密码
label:
en: Server Password
zh: 服务密码
zh-Hant: 服務密碼
ja: サーバーパスワード
ko: 서버 비밀번호
ru: Пароль сервера
ms: Kata Laluan Pelayan
pt-br: Senha do Servidor
random: true
required: true
rule: paramComplexity
type: password
- default: ./data
edit: true
envKey: APP_DATA_DIR
labelEn: Kilo Data Directory
labelZh: Kilo 数据目录
label:
en: Kilo Data Directory
zh: Kilo 数据目录
zh-Hant: Kilo 資料目錄
ja: Kilo データディレクトリ
ko: Kilo 데이터 디렉터리
ru: Каталог данных Kilo
ms: Direktori Data Kilo
pt-br: Diretório de Dados do Kilo
required: true
type: text
- default: ./workspace
edit: true
envKey: APP_WORKSPACE_DIR
labelEn: Workspace Directory
labelZh: 工作区目录
label:
en: Workspace Directory
zh: 工作区目录
zh-Hant: 工作區目錄
ja: ワークスペースディレクトリ
ko: 작업 공간 디렉터리
ru: Каталог рабочей области
ms: Direktori Ruang Kerja
pt-br: Diretório do Espaço de Trabalho
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TZ
labelEn: Timezone
labelZh: 时区
label:
en: Timezone
zh: 时区
zh-Hant: 時區
ja: タイムゾーン
ko: 시간대
ru: Часовой пояс
ms: Zon Waktu
pt-br: Fuso Horário
required: true
type: text
+40
View File
@@ -0,0 +1,40 @@
services:
kilocode:
image: "ghcr.io/kilo-org/kilocode:7.4.11"
container_name: ${CONTAINER_NAME}
restart: unless-stopped
working_dir: /workspace
command:
- serve
- --hostname
- 0.0.0.0
- --port
- "4096"
ports:
- "${PANEL_APP_PORT_HTTP}:4096"
environment:
- HOME=/data
- KILO_SERVER_USERNAME=${KILO_SERVER_USERNAME}
- KILO_SERVER_PASSWORD=${KILO_SERVER_PASSWORD}
- TZ=${TZ}
volumes:
- "${APP_DATA_DIR}:/data"
- "${APP_WORKSPACE_DIR}:/workspace"
healthcheck:
test:
- CMD-SHELL
- >-
auth=$$(printf '%s:%s' "$$KILO_SERVER_USERNAME" "$$KILO_SERVER_PASSWORD" | base64 | tr -d '\n');
wget --header "Authorization: Basic $$auth" -qO- http://127.0.0.1:4096/global/health | grep -q '"healthy":true'
interval: 10s
timeout: 5s
retries: 12
start_period: 15s
labels:
createdBy: "Apps"
networks:
- 1panel-network
networks:
1panel-network:
external: true
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
set -e
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose down --volumes
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
set -e
+67
View File
@@ -0,0 +1,67 @@
# Kilo Code
## 产品介绍
Kilo Code 是一个开源 AI 编程代理。本应用部署其官方容器中的无界面服务器模式,供本地 Kilo CLI 通过认证连接,并在指定工作区中管理会话、分析代码和执行开发任务。
## 主要功能
- 运行 Kilo 官方 headless server,并通过 HTTP Basic Auth 保护远程连接。
- 持久化 Kilo 配置、认证信息、会话、数据库和用户指定的代码工作区。
- 支持固定版本与 `latest` 之间的 1Panel 原生升级。
- 不需要 Docker Socket、特权模式、主机网络或额外设备。
## 访问说明
当前官方容器未包含 Kilo Console 的静态资源,因此本应用不提供浏览器 Web UI。请在客户端安装 Kilo CLI,并连接已部署的服务器:
```bash
kilo attach http://<服务器地址>:<服务端口> \
--username <服务用户名> \
--password <服务密码> \
--dir /workspace
```
`--dir /workspace` 指向容器内的持久化工作区。模型提供商和 Kilo 账户配置可通过连接后的 CLI 完成,并保存在 Kilo 数据目录中。
## 配置项
| 变量 | 说明 | 默认值 |
| --- | --- | --- |
| `PANEL_APP_PORT_HTTP` | Kilo 服务端口 | `4096` |
| `KILO_SERVER_USERNAME` | HTTP Basic Auth 用户名 | `kilo` |
| `KILO_SERVER_PASSWORD` | HTTP Basic Auth 密码,安装时随机生成 | 随机值 |
| `APP_DATA_DIR` | 配置、认证信息、会话和数据库目录 | `./data` |
| `APP_WORKSPACE_DIR` | 允许 Kilo 读取和修改的代码工作区 | `./workspace` |
| `TZ` | 容器时区 | `Asia/Shanghai` |
## 数据与升级
- 升级前请备份 `APP_DATA_DIR` 和 `APP_WORKSPACE_DIR`。
- 固定版本和 `latest` 使用相同的数据布局,可通过 1Panel 原生升级。
- 默认相对目录 `./data` 和 `./workspace` 位于 1Panel 应用安装目录内,卸载应用时会一并删除;卸载前必须备份。若需独立保留,请在安装时改用应用安装目录之外的专用宿主机绝对路径,并自行管理其权限和备份。
## 安全提示
- 官方镜像中的 Kilo 进程以 root 身份运行。认证用户可以在挂载的工作区内执行命令并修改文件,因此只应挂载明确交给 Kilo 管理的代码目录。
- 请保留随机生成的强密码,不要将服务以无认证方式暴露到公网。
- 远程访问建议通过 1Panel 反向代理启用 HTTPS,并限制可信来源。
## Introduction
Kilo Code is an open-source AI coding agent. This package runs the official image in headless server mode so a local Kilo CLI can connect with authentication and work in the selected persistent workspace.
## Features
- Runs the official Kilo headless server behind HTTP Basic Auth.
- Persists Kilo configuration, authentication state, sessions, database files, and the selected code workspace.
- Supports native 1Panel upgrades between the fixed release and `latest`.
- Requires no Docker Socket, privileged mode, host networking, or device access.
Connect from a local Kilo CLI with `kilo attach`, using `/workspace` as the remote directory. Back up both configured bind directories before upgrades. The default relative `./data` and `./workspace` directories live inside the 1Panel app installation directory and are removed when the app is uninstalled; use dedicated absolute host paths outside that directory if the data must survive uninstall, and manage their permissions and backups yourself. The official image runs as root and authenticated agents can execute commands in the mounted workspace, so mount only intended source code and use TLS plus a strong password for remote access.
## 参考资料
- 项目:<https://github.com/Kilo-Org/kilocode>
- CLI 文档:<https://kilo.ai/docs/code-with-ai/platforms/cli>
- CLI 命令参考:<https://kilo.ai/docs/code-with-ai/platforms/cli-reference>
+31
View File
@@ -0,0 +1,31 @@
name: Kilo Code
tags:
- AI
title: 开源的 AI 编程代理与远程开发服务器
description: 开源的 AI 编程代理与远程开发服务器
additionalProperties:
key: kilocode
name: Kilo Code
tags:
- AI
type: tool
website: https://kilo.ai
document: https://kilo.ai/docs/code-with-ai/platforms/cli-reference
github: https://github.com/Kilo-Org/kilocode
shortDescZh: 开源的 AI 编程代理与远程开发服务器
shortDescEn: An open-source AI coding agent and remote development server
crossVersionUpdate: true
limit: 0
recommend: 0
architectures:
- amd64
- arm64
description:
en: An open-source AI coding agent and remote development server
zh: 开源的 AI 编程代理与远程开发服务器
zh-Hant: 開源的 AI 程式設計代理與遠端開發伺服器
ja: オープンソースの AI コーディングエージェント兼リモート開発サーバー
ko: 오픈 소스 AI 코딩 에이전트 및 원격 개발 서버
ru: Открытый ИИ-агент для программирования и сервер удалённой разработки
ms: Ejen pengekodan AI sumber terbuka dan pelayan pembangunan jauh
pt-br: Agente de programação com IA de código aberto e servidor de desenvolvimento remoto
+7
View File
@@ -0,0 +1,7 @@
PANEL_APP_PORT_HTTP=4096
KILO_SERVER_USERNAME=kilo
KILO_SERVER_PASSWORD=replace-with-a-strong-password
APP_DATA_DIR=./data
APP_WORKSPACE_DIR=./workspace
TZ=Asia/Shanghai
CONTAINER_NAME=kilocode-compose-check
+102
View File
@@ -0,0 +1,102 @@
additionalProperties:
formFields:
- default: 4096
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Server Port
labelZh: 服务端口
label:
en: Server Port
zh: 服务端口
zh-Hant: 服務連接埠
ja: サーバーポート
ko: 서버 포트
ru: Порт сервера
ms: Port Pelayan
pt-br: Porta do Servidor
required: true
rule: paramPort
type: number
- default: kilo
edit: true
envKey: KILO_SERVER_USERNAME
labelEn: Server Username
labelZh: 服务用户名
label:
en: Server Username
zh: 服务用户名
zh-Hant: 服務使用者名稱
ja: サーバーユーザー名
ko: 서버 사용자 이름
ru: Имя пользователя сервера
ms: Nama Pengguna Pelayan
pt-br: Nome de Usuário do Servidor
required: true
rule: paramCommon
type: text
- default: ""
edit: true
envKey: KILO_SERVER_PASSWORD
labelEn: Server Password
labelZh: 服务密码
label:
en: Server Password
zh: 服务密码
zh-Hant: 服務密碼
ja: サーバーパスワード
ko: 서버 비밀번호
ru: Пароль сервера
ms: Kata Laluan Pelayan
pt-br: Senha do Servidor
random: true
required: true
rule: paramComplexity
type: password
- default: ./data
edit: true
envKey: APP_DATA_DIR
labelEn: Kilo Data Directory
labelZh: Kilo 数据目录
label:
en: Kilo Data Directory
zh: Kilo 数据目录
zh-Hant: Kilo 資料目錄
ja: Kilo データディレクトリ
ko: Kilo 데이터 디렉터리
ru: Каталог данных Kilo
ms: Direktori Data Kilo
pt-br: Diretório de Dados do Kilo
required: true
type: text
- default: ./workspace
edit: true
envKey: APP_WORKSPACE_DIR
labelEn: Workspace Directory
labelZh: 工作区目录
label:
en: Workspace Directory
zh: 工作区目录
zh-Hant: 工作區目錄
ja: ワークスペースディレクトリ
ko: 작업 공간 디렉터리
ru: Каталог рабочей области
ms: Direktori Ruang Kerja
pt-br: Diretório do Espaço de Trabalho
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TZ
labelEn: Timezone
labelZh: 时区
label:
en: Timezone
zh: 时区
zh-Hant: 時區
ja: タイムゾーン
ko: 시간대
ru: Часовой пояс
ms: Zon Waktu
pt-br: Fuso Horário
required: true
type: text
+40
View File
@@ -0,0 +1,40 @@
services:
kilocode:
image: "ghcr.io/kilo-org/kilocode:latest"
container_name: ${CONTAINER_NAME}
restart: unless-stopped
working_dir: /workspace
command:
- serve
- --hostname
- 0.0.0.0
- --port
- "4096"
ports:
- "${PANEL_APP_PORT_HTTP}:4096"
environment:
- HOME=/data
- KILO_SERVER_USERNAME=${KILO_SERVER_USERNAME}
- KILO_SERVER_PASSWORD=${KILO_SERVER_PASSWORD}
- TZ=${TZ}
volumes:
- "${APP_DATA_DIR}:/data"
- "${APP_WORKSPACE_DIR}:/workspace"
healthcheck:
test:
- CMD-SHELL
- >-
auth=$$(printf '%s:%s' "$$KILO_SERVER_USERNAME" "$$KILO_SERVER_PASSWORD" | base64 | tr -d '\n');
wget --header "Authorization: Basic $$auth" -qO- http://127.0.0.1:4096/global/health | grep -q '"healthy":true'
interval: 10s
timeout: 5s
retries: 12
start_period: 15s
labels:
createdBy: "Apps"
networks:
- 1panel-network
networks:
1panel-network:
external: true
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
set -e
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose down --volumes
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
set -e
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB