快速开始
欢迎使用 lz-stash!这是一个 Go 语言学习项目,通过实际的账本管理和终端 UI 示例来探索现代化 CLI 开发技术。
🎯 项目概述
lz-stash 是一个个人学习和技术实践项目,以实际的业务场景作为载体探索技术实现:
🏢 核心功能模块
- 📊 个人账本管理实践 - 基于 gRPC 的简单财务记录工具,用于学习 API 设计和数据库操作
- 🎨 终端 UI 实验 - 基于 Bubble Tea 的交互界面组件,探索现代终端应用开发
🛠️ 技术栈
| 组件 | 技术 | 版本 | 用途 |
|---|---|---|---|
| CLI 框架 | Cobra | v1.9.1 | 命令行接口构建 |
| 配置管理 | Viper | v1.20.1 | 配置文件和环境变量 |
| 终端 UI | Bubble Tea | v1.3.5 | 现代化终端界面 |
| 数据库 | GORM + MySQL | v1.30.0 | ORM 和数据持久化 |
📦 安装指南
系统要求
- Go 1.24.3 或更高版本
- 操作系统: Linux, macOS (暂不支持 Windows)
- 内存: 最少 512MB RAM(推荐 1GB+)
安装方式
bash
git clone https://github.com/FixIterate/lz-stash
cd lz-stash
go mod tidy
go build -o lzt main.go
./lzt --versionbash
go install github.com/FixIterate/lz-stash
lzt --versionbash
# 下载对应系统的版本
wget https://github.com/FixIterate/lz-stash/releases/latest/download/lzt-linux-amd64.tar.gz
tar -xzf lzt-*.tar.gz
sudo mv lzt /usr/local/bin/⚙️ 配置设置
创建配置文件 ~/.lz-stash.yaml:
yaml
# 数据库配置(账本管理需要)
db:
user: "your_username"
pwd: "your_password"
host: "127.0.0.1"
port: 3306
name: "your_database"
write_timeout: 600
read_timeout: 600
# 服务配置(可选)
server:
host: "0.0.0.0"
port: 8080
# Magento API 配置(可选)
mage:
api_host: "https://your-magento-site.com"
jwt: "your_jwt_token"安全提示
请确保配置文件权限设置为 600,避免敏感信息泄露:
bash
chmod 600 ~/.lz-stash.yaml🚀 快速体验
1. 终端 UI 示例(无需配置)
bash
# 基础进度条演示
lzt example bubble package-manager
# 高级交互界面
lzt example tea package-manager
# 并发任务处理演示
export COLORTERM=truecolor
lzt example tea worker2. 账本管理功能
bash
# 1. 初始化账本管理系统
lzt ledger init
# 2. 启动 gRPC 服务
lzt ledger server --port 8080
# 3. 运行终端 UI 示例
lzt example tea worker3. 命令组合工作流
✅ 验证安装
bash
# 基础功能测试
lzt --version
lzt --help
# 终端 UI 测试(无需额外配置)
lzt example tea worker🔧 故障排除
常见问题
1. 找不到命令
bash
which lzt
echo $PATH2. 权限错误
bash
chmod +x lzt3. Go 版本过低
bash
go version # 需要 Go 1.24.3+📚 下一步
选择适合你的学习路径:
- 终端 UI 开发 → Bubble 组件文档
- 财务管理系统 → Ledger 模块文档
- 架构设计理念 → 架构设计文档
学习建议
建议从 lzt example tea worker 命令开始,它展示了项目的核心架构模式和最佳实践。
💡 主要使用场景
💻 技术学习实践
- 现代化命令行工具架构参考
- Bubble Tea 终端 UI 组件开发
- Go 并发编程模式学习
- gRPC API 设计和实现
🗃️ 个人工具集合
- 日常账本记录和管理
- 数据处理和批量操作工具
- 终端交互界面组件实验
💡 学习提示: 这是一个个人学习项目,旨在通过实际代码探索和学习 Go 语言的现代化开发技术。虽然代码质量力求达到工业标准,但主要目的是学习和实践。