
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Soft Serve是一个轻量级自托管命令行Git服务器,旨在提供简单高效的私有Git仓库管理解决方案。它通过SSH提供交互式终端用户界面(TUI),支持多协议仓库克隆,并允许通过SSH命令直接管理仓库、用户权限和服务器配置。适用于个人开发者、小团队或需要独立Git服务的场景,无需依赖第三方平台即可搭建功能完善的私有Git服务器。
git push或SSH命令即时创建新仓库基础部署(docker run)
bash# 默认配置启动 docker run -d -p 23231:23231 -p 23232:23232 -p 9418:9418 --name soft-serve charmcli/soft-serve # 持久化数据存储 docker run -d -p 23231:23231 -p 23232:23232 -p 9418:9418 \ -v /path/to/soft-serve-data:/data \ -e SOFT_SERVE_DATA_PATH=/data \ --name soft-serve charmcli/soft-serve # 指定初始管理员密钥 docker run -d -p 23231:23231 -p 23232:23232 -p 9418:9418 \ -e SOFT_SERVE_INITIAL_ADMIN_KEYS="ssh-rsa AAAAB3NzaC1yc2... ssh-ed25519 AAAA..." \ --name soft-serve charmcli/soft-serve
docker-compose配置
yamlversion: '3' services: soft-serve: image: charmcli/soft-serve ports: - "23231:23231" # SSH端口 - "23232:23232" # HTTP端口 - "9418:9418" # Git协议端口 volumes: - ./soft-serve-data:/data # 持久化数据 environment: - SOFT_SERVE_NAME="My Git Server" # 服务器名称 - SOFT_SERVE_DATA_PATH=/data # 数据存储路径 - SOFT_SERVE_SSH_LISTEN_ADDR=:23231 # SSH监听地址 - SOFT_SERVE_HTTP_PUBLIC_URL=http://localhost:23232 # HTTP公共URL - SOFT_SERVE_INITIAL_ADMIN_KEYS="ssh-rsa AAAAB3NzaC1yc2..." # 管理员公钥 restart: unless-stopped
初始设置
首次启动时,Soft Serve会在数据目录创建仓库存储、SSH密钥和配置文件。核心配置项可通过环境变量或config.yaml(位于数据目录)调整,常用环境变量:
SOFT_SERVE_NAME:服务器名称(显示在TUI中)SOFT_SERVE_SSH_LISTEN_ADDR:SSH服务监听地址(默认:23231)SOFT_SERVE_HTTP_LISTEN_ADDR:HTTP服务监听地址(默认:23232)SOFT_SERVE_ANON_ACCESS:***用户访问级别(默认read-only,可选no-access/read-write/admin-access)SOFT_SERVE_ALLOW_KEYLESS:是否允许无密钥访问(默认true,影响HTTP/Git协议)管理员配置
通过SOFT_SERVE_INITIAL_ADMIN_KEYS环境变量设置初始管理员SSH公钥,多个密钥用空格分隔。管理员拥有服务器完全控制权,可管理所有用户和仓库。
访问TUI界面
通过SSH直接连接服务器即可打开交互式界面:
bashssh <服务器IP> -p 23231
连接指定仓库:
bashssh <服务器IP> -p 23231 -t <仓库名>
克隆仓库
支持多种协议克隆:
bash# SSH协议 git clone ssh://<服务器IP>:23231/<仓库名> # HTTP协议 git clone http://<服务器IP>:23232/<仓库名> # Git协议 git clone git://<服务器IP>:9418/<仓库名>
SSH配置简化
在~/.ssh/config中添加配置简化访问:
confHost soft-serve HostName <服务器IP> Port 23231 IdentityFile ~/.ssh/id_ed25519 # 用于认证的私钥
之后可使用简化命令:
bashssh soft-serve # 访问TUI git clone ssh://soft-serve/<仓库名> # 克隆仓库
创建仓库
bash# 基本创建 ssh soft-serve repo create <仓库名> # 创建带描述和项目名称的仓库 ssh soft-serve repo create <仓库名> -d "项目描述" -n "项目名称" # 创建私有仓库 ssh soft-serve repo create <仓库名> -p
查看和操作仓库内容
bash# 查看仓库文件树 ssh soft-serve repo tree <仓库名> <路径> # 查看文件内容(带语法高亮和行号) ssh soft-serve repo blob <仓库名> <文件路径> -c -l # 获取仓库信息 ssh soft-serve repo info <仓库名>
修改和删除仓库
bash# 重命名仓库 ssh soft-serve repo rename <旧名称> <新名称> # 设置仓库为私有 ssh soft-serve repo private <仓库名> true # 删除仓库 ssh soft-serve repo delete <仓库名>
用户管理
bash# 创建用户 ssh soft-serve user create <用户名> # 添加用户SSH公钥 ssh soft-serve user add-pubkey <用户名> "ssh-ed25519 AAAA..."
仓库协作权限
bash# 添加协作者(读写权限) ssh soft-serve repo collab add <仓库名> <用户名> # 移除协作者 ssh soft-serve repo collab remove <仓库名> <用户名> # 列出协作者 ssh soft-serve repo collab list <仓库名>
Soft Serve支持Git服务器端钩子,全局钩子位于数据目录的hooks文件夹,仓库特定钩子位于仓库的hooks目录。例如创建全局update钩子:
bash# 在数据目录创建钩子文件 cat > /path/to/data/hooks/update << 'EOF' #!/bin/sh refname="$1" oldrev="$2" newrev="$3" echo "推送事件:$refname $oldrev $newrev" EOF chmod +x /path/to/data/hooks/update
SOFT_SERVE_DATA_PATH)通过Docker卷持久化,避免容器重建导致数据丢失anon-access和allow-keyless设置时需谨慎,避免未授权访问私有数据您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务