OpenSource-Hub
T

TimeTagger

1.7k stars·办公提效·已提供 SHA-256 校验码,下载后可自行核对文件完整性

一款开源、Web 化的时间追踪工具,主打直观时间线、标签化管理、报表导出和自托管部署。

智能下载

前往项目主页

该项目暂未提供安装包,请直接访问源代码仓库

自己搭的时间追踪器,标签化、报表全、还能搞番茄钟。

核心功能

  • 交互式时间线,拖拽即可记录或调整时间块
  • 用标签代替项目,简洁轻快
  • 生成 PDF / CSV 报表,支持每日/周/月目标
  • 内置番茄钟(实验性)
  • 多设备同步,响应式界面

避坑指南

  • 多用户模式下密码需要使用 BCrypt 哈希,可直接用官网生成工具 https://timetagger.app/cred;反向代理认证需配置信任 IP 和用户头,否则可能被绕过;实验性番茄钟功能可能不稳定。

适用场景

  • 自由职业者追踪不同客户/任务用时
  • 个人管理日常学习、运动、家务时间
  • 小型团队内部轻量时间记录(需配置多用户认证)

详细介绍

TimeTagger 是一款轻量的开源时间追踪工具,专为个人和自由职业者设计。它以 Web 应用形式运行(可在本地或服务器上部署),提供直观的时间线界面,方便记录时间。它放弃复杂的项目概念,改用标签化分类。支持设置每日/每周/每月目标、生成 PDF/CSV 报表,还集成了实验性的番茄钟功能。多设备同步,单用户和多用户模式都支持,认证可通过密码或反向代理。后端基于 Python 异步框架(uvicorn + asgineer),前端使用 Python 编译为 JavaScript 的 PScript,速度快,部署简单(pip 或 Docker)。

常见问题与排障 (2)

故障排除
在自托管 TimeTagger 时,如何移除 /timetagger URL 前缀?

使用类似Caddy的反向代理将根请求重定向到/timetagger/app并代理到TimeTagger容器。示例Caddyfile:'timetagger.example.com { redir / /timetagger/app/; reverse_proxy localhost:8081 }'。或者,创建基于__main__.py的自定义主脚本来修改路径,或使用即将推出的PR #577功能,参数为'--path_prefix=/ --app-redirect=true'(一旦合并后)。

来源 Issue #549
故障排除
如何在使用带有Unix socket绑定的反向代理运行Timetagger时,修复“Runtime error because there is no client scope”错误?

当 Timetagger 绑定到 Unix 套接字(TIMETAGGER_BIND=unix:...)且启用代理身份验证时,会出现此错误,因为 ASGI 的 request.scope 可能不包含 'client' 键。作为临时解决方案,请将 /timetagger/__main__.py 复制到其他位置,然后注释掉或修改第 157 行附近的信任检查代码块。例如,将:

client = request.scope["client"][0]
if client not in TRUSTED_PROXIES:
    return 403, {}, "forbidden: the proxy is not trusted"

替换为:

if "client" in request.scope:
    client = request.scope["client"][0]
    if client not in TRUSTED_PROXIES:
        return 403, {}, "forbidden: the proxy is not trusted"

然后使用修改后的文件作为入口点启动 Timetagger。这样可在客户端 IP 可用时保留部分信任检查。如果您的环境完全可信,也可以直接注释掉整个代码块。目前官方尚未提供补丁(截至 Timetagger 25.06.1)。请关注该问题以获取更新。

来源 Issue #570

标签

time-trackingself-hostedproductivitypythonweb-app

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

步骤1:在终端执行 pip install -U timetagger

4

步骤2:执行 python -m timetagger 启动服务

5

步骤3:浏览器打开 http://localhost:8080 即可使用

安装指引
  1. 步骤1:在终端执行 pip install -U timetagger
  2. 步骤2:执行 python -m timetagger 启动服务
  3. 步骤3:浏览器打开 http://localhost:8080 即可使用
文件完整性

暂未获取到校验码

该项目暂未在 GitHub Release 页面提供 SHA-256 校验码

SHA256 校验码

暂无校验码

建议从 GitHub Releases 页面直接下载,并自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

执行 pip uninstall timetagger 即可卸载。若使用 Docker 部署,则删除容器和镜像,并清理数据卷(默认挂载目录)。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议GPL-3.0
最后更新2026-06-26 14:35:23
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

2 FAQs

相似推荐