Kimai 部署指南:开源工时记录系统,自建项目计费平台
Kimai 部署指南:开源工时记录系统,自建项目计费平台
Kimai 是一个开源的工时追踪系统,支持按项目、客户、活动分类记录时间,自动生成发票,非常适合自由职业者、小型设计/开发工作室、需要向客户计费的团队。SaaS 版本同类工具(如 Toggl、Harvest)每人每月都要收费,自建 Kimai 完全免费,功能一点不少。
适用场景
- 自由职业者记录各客户的工时,月底生成发票
- 设计/开发团队统计每个项目的工时成本
- 公司内部工时合规记录
- 多人团队的工时汇总报表
服务器配置
| 规格 | 推荐 |
|---|---|
| CPU | 1 核 |
| 内存 | 512MB |
| 硬盘 | 10GB |
非常轻量,可以和其他服务共用一台机器。我把 Kimai 和 Monica、Actual Budget 等工具放在同一台 雨云服务器 rainyun+com 入门款机型上,总内存用量不到 1GB。注册填优惠码 2026off 领 5 折优惠券,比 Toggl Business 版便宜 99%。
Docker Compose 部署
mkdir -p /opt/kimai
cat > /opt/kimai/docker-compose.yml << 'EOF'
version: "3.8"
services:
sqldb:
image: mysql:8.0
container_name: kimai_db
volumes:
- mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=kimai
- MYSQL_USER=kimai
- MYSQL_PASSWORD=数据库强密码
- MYSQL_ROOT_PASSWORD=Root强密码
command: --default-storage-engine innodb
healthcheck:
test: ["CMD-SHELL", "mysqladmin -u kimai -p数据库强密码 ping"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
kimai:
image: kimai/kimai2:apache
container_name: kimai
ports:
- "8001:8001"
environment:
- ADMINMAIL=admin@你的域名.com
- ADMINPASS=管理员强密码
- DATABASE_URL=mysql://kimai:数据库强密码@sqldb/kimai?charset=utf8mb4&serverVersion=8.0.32
- TRUSTED_HOSTS=kimai.你的域名.com,localhost
- MAILER_URL=smtp://邮件账号:邮件密码@smtp.你的邮件服务商.com:587?encryption=tls
- MAILER_FROM=kimai@你的域名.com
volumes:
- kimai-data:/opt/kimai/var/data
- kimai-public:/opt/kimai/public/avatars
depends_on:
sqldb:
condition: service_healthy
restart: unless-stopped
volumes:
mysql:
kimai-data:
kimai-public:
EOF
cd /opt/kimai
docker compose up -d
等待约 1 分钟初始化完成:
docker compose logs -f kimai
# 看到 apache2 is ready 后再访问
配置 HTTPS(Caddy)
sudo tee -a /etc/caddy/Caddyfile << 'EOF'
kimai.你的域名.com {
reverse_proxy localhost:8001
}
EOF
sudo systemctl reload caddy
初始设置
访问 https://kimai.你的域名.com,用 admin@你的域名.com 和管理员密码登录。
基础配置顺序
- 创建客户(Customers)
- 创建项目(Projects)并关联客户
- 创建活动类型(Activities):如「开发」「设计」「会议」「测试」
- 邀请团队成员(Users)
核心使用流程
开始计时
首页 → 开始计时
选择:项目 → 活动 → 描述(可选)
→ 开始
计时器在后台运行,可以随时暂停或停止。
手动添加工时
工时单 → 新建工时单
填写:开始时间、结束时间、项目、活动
查看工时统计
报表 → 工时统计
筛选条件:日期范围、客户、项目、员工
导出格式:Excel / CSV / PDF
发票生成
Kimai 内置发票模板,可以直接生成发票 PDF:
发票 → 创建发票
- 选择客户
- 设置账单日期和截止日期
- 选择要纳入发票的工时单
- 设置单价(按小时或固定价格)
→ 预览 → 导出 PDF
自定义发票模板(HTML/Twig 格式):
管理 → 发票模板 → 新建模板
团队功能
用户角色
| 角色 | 权限 |
|---|---|
| Super Admin | 全部权限 |
| Admin | 管理系统设置 |
| Teamlead | 管理团队成员的工时 |
| User | 只能管理自己的工时 |
审批流程
管理员可以审批员工的工时记录,确认后不可修改:
工时单 → 审批 → 批量审批
移动端访问
Kimai 的 Web 界面支持响应式布局,手机浏览器访问效果很好,随时可以开始/停止计时。
也可以使用第三方 Kimai 移动 App(iOS/Android),连接到你的服务器地址。
插件扩展
Kimai 有丰富的免费插件:
# 在容器内安装插件
docker exec -it kimai bash
cd /opt/kimai
# 常用插件
composer require kimai/kimai-plugins:^2.0
bin/console kimai:plugin:install
常用插件:
- Translation:更多语言支持
- ExpenseBundle:记录项目支出
- MetaFieldsBundle:自定义字段
- CustomCSSBundle:自定义样式
数据备份
cat > /opt/backup_kimai.sh << 'EOF'
#!/bin/bash
docker exec kimai_db mysqldump -u kimai -p数据库强密码 kimai > /backup/kimai-$(date +%Y%m%d).sql
find /backup -name "kimai-*.sql" -mtime +30 -delete
EOF
chmod +x /opt/backup_kimai.sh
echo "0 2 * * * /opt/backup_kimai.sh" | crontab -
更新
cd /opt/kimai
docker compose pull
docker compose up -d
Kimai 对自由职业者和小型工作室来说是非常实用的工具。把工时记录和发票生成结合在一起,月底对账和开票效率大大提高。部署在雨云服务器上,所有客户数据、工时记录都在自己手里,不用担心第三方 SaaS 服务的数据安全问题。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)