Ubuntu 22.04 安装 Traggo 0.8.3 指南
在 Ubuntu 22.04 裸机服务器上从零安装 Traggo 0.8.3:官方二进制在线/离线两方案、配置文件、systemd 托管与验证,全部命令实测回显。
Ubuntu 22.04 安装 Traggo 0.8.3 指南
目标:在 Ubuntu 22.04 裸机服务器上从零完成 Traggo 0.8.3 的安装、配置、systemd 托管与验证。本文全部命令与回显均来自真实环境实测(Traggo 为 Go 单二进制 + SQLite 形态,无需运行时依赖)。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(
PRETTY_NAME="Ubuntu 22.04.5 LTS") - 架构:x86_64(amd64;官方另提供 arm64、armv7、windows amd64 包)
- 软件版本:Traggo v0.8.3(2026-03-01 发布,commit
6321119c3c2d55f04e2e4967f6492aabd6067b76) - 安装路径:
/opt/traggo(程序)、/etc/traggo/server.ini(配置)、/var/lib/traggo(数据) - 运行账号:
traggo(系统账号);监听端口:3030 - 数据库:SQLite(
/var/lib/traggo/traggo.db)
二、前置条件
Traggo 是静态编译的 Go 单二进制,不需要 JDK/PHP/Node 等任何运行时。仅需准备下载与校验工具:
apt-get update -qq
apt-get install -y wget curl sqlite3 ca-certificates
验证工具版本(实测回显):
wget --version | head -1
# GNU Wget 1.21.2 built on linux-gnu.
sqlite3 --version
# 3.37.2 2022-01-06 13:25:41 872ba256cbf61d9290b571c0e6d82a20c224ca3ad82971edc46b29818d5dalt1
💡 说明:
sqlite3命令行不是 Traggo 的运行依赖(Traggo 内嵌 SQLite 驱动),装它是为了运维时直接查库验证数据落盘。
三、版本选型说明
Traggo 官方 Release(GitHub traggo/server)为每个版本提供 4 个资产(v0.8.3 实查):
| 资产 | 适用 |
|---|---|
traggo_0.8.3_linux_amd64.tar.gz | 本文环境(x86_64 服务器) |
traggo_0.8.3_linux_arm64.tar.gz | ARM64 服务器/树莓派 64 位 |
traggo_0.8.3_linux_armv7.tar.gz | 32 位 ARM |
traggo_0.8.3_windows_amd64.zip | Windows |
⚠️ Traggo 没有 apt/yum 仓库,也没有
--version子命令;版本号只能从启动日志或 GraphQLversion查询读取。选择版本时直接到 Releases 页取最新 tag 即可,本文实测 v0.8.3。
四、方案 A:官方预编译二进制在线安装(推荐)
官方推荐方式就是下载预编译 tarball,本节为完整 0→1 过程。
4.1 下载安装包
cd /tmp
wget https://github.com/traggo/server/releases/download/v0.8.3/traggo_0.8.3_linux_amd64.tar.gz
⚠️ 网络说明(实测记录):本次实测时官方源
github.com直连超时不可用,已改用代理通道完成下载,真实回显如下;若你的服务器可直连官方源,直接执行上面的命令即可。
2026-10-25 00:56:03 URL:https://release-assets.githubusercontent.com/... -> "/tmp/traggo_0.8.3_linux_amd64.tar.gz" [1]
校验文件大小与 SHA256(实测):
ls -la /tmp/traggo_0.8.3_linux_amd64.tar.gz
# -rw-r--r-- 1 root root 7014851 Mar 1 2026 /tmp/traggo_0.8.3_linux_amd64.tar.gz
sha256sum /tmp/traggo_0.8.3_linux_amd64.tar.gz
# c14012c5d4975c23e8214770bba02a106de7fa8fcf1d10c7a127ebec30536639 /tmp/traggo_0.8.3_linux_amd64.tar.gz
4.2 创建用户与目录
useradd -r -s /usr/sbin/nologin traggo
mkdir -p /opt/traggo /etc/traggo /var/lib/traggo
说明:traggo 为系统账号(不可登录);/opt/traggo 放程序,/etc/traggo 放配置,/var/lib/traggo 放 SQLite 数据。
4.3 解压安装
tar xzf /tmp/traggo_0.8.3_linux_amd64.tar.gz -C /opt/traggo
ls -la /opt/traggo
实测回显:
total 17528
drwxr-xr-x 2 root root 4096 Oct 25 00:56 .
drwxr-xr-x 1 root root 4096 Oct 25 00:56 ..
-rw-r--r-- 1 1001 1001 598 Mar 1 2026 .env.sample
-rw-r--r-- 1 1001 1001 35149 Mar 1 2026 LICENSE
-rw-r--r-- 1 1001 1001 2735 Mar 1 2026 README.md
-rwxr-xr-x 1 root root 17893864 Mar 1 2026 traggo
包内仅 4 个文件:可执行文件 traggo(约 17MB)、配置样例 .env.sample、LICENSE、README。修正属主:
chown -R traggo:traggo /opt/traggo /var/lib/traggo
4.4 编写配置文件
创建 /etc/traggo/server.ini(格式为 KEY=VALUE,与 .env 相同):
cat > /etc/traggo/server.ini <<'EOF'
TRAGGO_PORT=3030
TRAGGO_DEFAULT_USER_NAME=admin
TRAGGO_DEFAULT_USER_PASS=q1w2e3r4
TRAGGO_PASS_STRENGTH=10
TRAGGO_LOG_LEVEL=info
TRAGGO_DATABASE_DIALECT=sqlite3
TRAGGO_DATABASE_CONNECTION=/var/lib/traggo/traggo.db
EOF
chmod 640 /etc/traggo/server.ini
chown root:traggo /etc/traggo/server.ini
逐项说明:
| 配置项 | 本文取值 | 含义 |
|---|---|---|
TRAGGO_PORT | 3030 | HTTP 监听端口 |
TRAGGO_DEFAULT_USER_NAME | admin | 首次启动(库中无任何用户时)创建的默认用户名 |
TRAGGO_DEFAULT_USER_PASS | q1w2e3r4 | 首次启动默认用户的密码(官方默认 admin/admin,务必修改) |
TRAGGO_PASS_STRENGTH | 10 | bcrypt 密码强度,越大越安全越慢 |
TRAGGO_LOG_LEVEL | info | 日志级别:debug/info/warn/error/fatal/panic |
TRAGGO_DATABASE_DIALECT | sqlite3 | 数据库方言,官方仅声明 sqlite3 |
TRAGGO_DATABASE_CONNECTION | /var/lib/traggo/traggo.db | SQLite 数据库文件绝对路径 |
⚠️
TRAGGO_DEFAULT_USER_*只在首次启动建库时生效;库里已有用户后修改这两项不会影响已存在的账号。
4.5 systemd 托管
创建 /etc/systemd/system/traggo.service:
[Unit]
Description=Traggo - tag-based time tracking server
After=network.target
[Service]
Type=simple
User=traggo
Group=traggo
WorkingDirectory=/opt/traggo
ExecStart=/opt/traggo/traggo
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
加载、启用并启动(每行一个单元操作):
systemctl daemon-reload
systemctl enable traggo
systemctl start traggo
验证服务状态(实测回显):
systemctl is-active traggo
# active
systemctl status traggo --no-pager | head -12
● traggo.service - Traggo - tag-based time tracking server
Loaded: loaded (/etc/systemd/system/traggo.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2026-10-25 00:58:48 UTC; 2s ago
Main PID: 2685 (traggo)
Tasks: 7 (limit: 3612)
Memory: 3.9M
CPU: 54ms
CGroup: /system.slice/.../traggo.service
└─2685 /opt/traggo/traggo
Oct 25 00:58:48 host systemd[1]: Started Traggo - tag-based time tracking server.
Oct 25 00:58:48 host traggo[2685]: 2026-10-25T00:58:48Z INF Traggo buildDate=2026-03-01T10:30:56Z buildMode=prod commit=6321119c3c2d55f04e2e4967f6492aabd6067b76 version=0.8.3
常驻内存仅约 3.9MB,非常轻量。
4.6 验证运行
端口监听(若无 ss 命令先 apt-get install -y iproute2):
ss -ltnp | grep 3030
# LISTEN 0 4096 *:3030 *:* users:(("traggo",pid=2685,fd=6))
HTTP 探活:
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:3030/
# 200
curl -sI http://localhost:3030/ | head -3
# HTTP/1.1 200 OK
# Content-Type: text/html
# Date: Sun, 25 Oct 2026 00:58:56 GMT
数据库落盘验证:
ls -la /var/lib/traggo/
# -rw-r--r-- 1 traggo traggo 86016 Oct 25 00:58 traggo.db
sqlite3 /var/lib/traggo/traggo.db ".tables"
# dashboard_entries devices user_settings
# dashboard_ranges tag_definitions users
# dashboard_tag_filters time_span_tags
# dashboards time_spans
浏览器访问 http://<服务器IP>:3030,用 admin / q1w2e3r4 登录即可使用。
五、方案 B:离线包安装(断网/内网环境)
适用于目标服务器完全隔离、无法访问外网的场景。思路:在可联网机器下载 tarball,拷贝到目标机后按方案 A 安装。
5.1 在可联网机器下载并校验
与 4.1 相同,下载 traggo_0.8.3_linux_amd64.tar.gz 并记录 SHA256 c14012c5d4975c23e8214770bba02a106de7fa8fcf1d10c7a127ebec30536639。
5.2 拷贝到目标服务器
scp /tmp/traggo_0.8.3_linux_amd64.tar.gz root@<目标服务器>:/tmp/
5.3 目标机校验后安装
sha256sum /tmp/traggo_0.8.3_linux_amd64.tar.gz
# c14012c5d4975c23e8214770bba02a106de7fa8fcf1d10c7a127ebec30536639 /tmp/traggo_0.8.3_linux_amd64.tar.gz
哈希一致后,依次执行 4.2(用户与目录)→ 4.3(解压)→ 4.4(配置)→ 4.5(systemd)→ 4.6(验证),步骤与回显同方案 A,不再重复。
六、方案对比与选择建议
| 维度 | 方案 A 在线安装 | 方案 B 离线安装 |
|---|---|---|
| 版本 | 0.8.3 | 0.8.3 |
| 是否需要联网 | 需要(或可经代理) | 目标机不需要 |
| 安装方式 | wget 官方 Release + tar 解压 | 拷贝 tarball + tar 解压 |
| systemd 服务名 | traggo | traggo |
| 监听端口 | 3030 | 3030 |
| 优点 | 步骤最少 | 适配内网隔离环境 |
| 缺点 | 依赖外网可达 | 多一次人工拷贝与校验 |
建议:能联网(含经代理)一律选方案 A;完全断网选方案 B,且务必核对 SHA256。容器化部署请直接参考本专栏《Traggo 0.8.3 Docker Compose 部署指南》。
七、配置说明
配置来源与优先级(首个出现的值生效,已实测验证):环境变量 > .env.local(二进制同目录)> .env(二进制同目录)> $HOME/.config/traggo/server.ini > /etc/traggo/server.ini。本文采用 /etc/traggo/server.ini 全局配置。全部配置项的逐项详解(含默认值、实测优先级验证、非法值报错)见本专栏《Traggo 0.8.3 配置参数详解》。
升级方法:备份 /var/lib/traggo/traggo.db → 停服务 → 用新版 tarball 覆盖 /opt/traggo/traggo 二进制 → 启动即可(Traggo 启动时自动执行数据库迁移)。降级同理覆盖回旧二进制,但 0.x 阶段不保证高版本库能被旧版本读取,升级前务必备份。
八、常见问题
Q1:执行 traggo --help 或 traggo --version 为什么不打印帮助,反而把服务起起来了?
A:Traggo 二进制没有任何 CLI 子命令/参数解析,无论传什么参数都会直接启动服务并前台阻塞。实测:
$ /opt/traggo/traggo --version
INF Traggo buildDate=2026-03-01T10:30:56Z buildMode=prod commit=6321119... version=0.8.3
INF Creating default user.
INF Start listening port=3030
查看版本请看启动日志第一行的 version=,或调用 GraphQL version 查询。若不小心在前台起了一个实例,Ctrl+C 终止即可;注意它会按当前工作目录创建 data/traggo.db,误起后记得清理该目录。
Q2:修改了 TRAGGO_DEFAULT_USER_PASS 重启后密码没变?
A:默认用户只在库里没有任何用户时创建一次。库已存在用户后该配置不再生效;改密码请在 Web UI 中操作或用 API updateUser。
Q3:配置文件改了不生效?
A:按优先级检查是否存在更高优先级的来源——尤其是环境变量(systemd 单元里的 Environment= 也算)和二进制同目录的 .env.local/.env。把 TRAGGO_LOG_LEVEL 调成 debug 可在启动日志看到 Loading file ... 行,确认实际加载了哪些文件。
Q4:忘记 admin 密码怎么办?
A:没有找回机制。可在停服后用 sqlite3 删除用户再启动重建默认用户:sqlite3 /var/lib/traggo/traggo.db "DELETE FROM users;",然后启动服务即可按 TRAGGO_DEFAULT_USER_* 重建(注意这会删掉所有用户及其数据关联,操作前备份)。
九、卸载与清理
systemctl stop traggo
systemctl disable traggo
rm /etc/systemd/system/traggo.service
systemctl daemon-reload
rm -rf /opt/traggo /etc/traggo /var/lib/traggo
userdel traggo
如需保留数据备份,删除前先把 /var/lib/traggo/traggo.db 复制到安全位置。
十、参考链接
- 官方安装文档:https://traggo.net/install/ (查询日期 2026-10-25)
- 官方配置文档:https://traggo.net/config/ (查询日期 2026-10-25)
- GitHub Releases(v0.8.3):https://github.com/traggo/server/releases/tag/v0.8.3 (查询日期 2026-10-25)
- 本专栏:《Traggo 介绍与选型指南》