sugarcraft/candy-serve
最新稳定版本:v0.2.0
Composer 安装命令:
composer create-project sugarcraft/candy-serve
包简介
PHP port of charmbracelet/soft-serve — self-hostable Git server over SSH, Git daemon, and HTTP. Supports user management via SSH public keys, repo access control (public/private), collaborators, on-demand repo creation, Git LFS, and an SSH-accessible TUI for browsing repos/files/commits.
README 文档
README
CandyServe
PHP port of charmbracelet/soft-serve — the mighty, self-hostable Git server for the command line.
Overview
CandyServe is a self-hostable Git server you run on a VPS or machine. Users authenticate via SSH public keys and can:
- Browse repos, files, and commits via a terminal TUI over SSH
- Clone repos over SSH (
git clone ssh://user@host/repo), HTTP, or Git protocol - Push to create repos on demand
- Collaborate via per-repo access control with SSH public keys
- Use Git LFS for large file storage
Architecture
candy-serve/
├── bin/soft-serve Entry point (serve command)
├── src/
│ ├── Server.php Config (SSH/HTTP/Git daemon listen addrs)
│ ├── Config.php YAML config loader
│ ├── Repo.php Bare Git repo (init, access, metadata)
│ ├── User.php SSH public key auth + user model
│ ├── AccessControl.php Permissions (admin/read/write)
│ ├── SSH/
│ │ ├── SSHServer.php libssh2-based SSH server
│ │ ├── Auth.php Public key authentication
│ │ └── Commands.php git-upload-pack / git-receive-pack
│ ├── Git/
│ │ ├── Protocol.php Smart HTTP Git protocol handler
│ │ ├── UploadPack.php git-upload-pack (clone/fetch)
│ │ └── ReceivePack.php git-receive-pack (push)
│ └── LFS/
│ └── LFSHandler.php Git LFS batch API
├── cmd/
│ └── serve.php Serve command implementation
└── tests/
Install
composer install
Configuration
Create config.yaml in your data directory:
name: "My Git Server" ssh: listen_addr: ":23231" public_url: "ssh://localhost:23231" key_path: "ssh/soft_serve_host" idle_timeout: 120 git: listen_addr: ":9418" http: listen_addr: ":23232" public_url: "http://localhost:23232" db: driver: "sqlite" data_source: "candy-serve.db" lfs: enabled: true
Run
# Set admin SSH key (your public key) export CANDY_SERVE_INITIAL_ADMIN_KEYS="ssh-ed25519 AAAA... user@host" # Start the server CANDY_SERVE_DATA_PATH=/var/lib/candy-serve composer serve
SSH Access
# Connect to TUI ssh -p 23231 user@your-server # Clone a repo git clone ssh://user@your-server:23231/repo-name # Browse repo tree ssh -p 23231 user@your-server repo tree repo-name # View a file with syntax highlighting ssh -p 23231 user@your-server repo blob repo-name path/to/file.php -c -l
Repo Permissions
- Public — anyone can read, only collaborators can push
- Private — only collaborators can read or push
- Collaborators — added by admin via SSH public key
License
sugarcraft/candy-serve 适用场景与选型建议
sugarcraft/candy-serve 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 05 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「git」 「ssh」 「self-hosted」 「LFS」 「sugarcraft」 「git-server」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sugarcraft/candy-serve 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sugarcraft/candy-serve 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sugarcraft/candy-serve 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Easily manage git hooks in your composer config
Self-hosted social media management software.
MediaWiki extension that allows embedding external content, specified by URL, into your wiki pages
Nagios plugin to verify a git repository.
A flexible FTP, SSL-FTP, and SSH-based SFTP client for PHP. This lib provides helpers that are easy to use to manage the remote files.
Altax is an extensible deployment tool for PHP.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 43
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-07