910 Words 4 min

はじめに

シンプルで使いやすいオープンソースのタイムトラッキングツール「TimeTagger」。
実際に利用してみたいと思い、自宅ラボ環境にセルフホストの TimeTagger を Rocky Linux にインストールし、 systemd を使ってバックグラウンドのサービスとして自動起動させるようにしたため、手順をステップバイステップで解説します。 TimeTagger の公式のインストール手順では Docker を利用する前提になっていますが、 今回はわざと Docker を利用せずにインストールしています。

 

この記事を読んで欲しい人

  • セルフホストの TimeTagger を利用したいと思っている人
  • セルフホストの TimeTagger の利用にDockerを利用したくない人

 

導入手順

  1. pip インストール

    dnf -y install python3-pip
    

     

  2. TimeTagger インストール

    pip install -U timetagger
    

     

  3. ファイアウォール設定 TCP 8080 ポートへの恒久的なアクセス許可とファイアウォールの設定を再読み込みし、追加したルールを即座に反映

    firewall-cmd --add-port=8080/tcp --permanent
    firewall-cmd --reload
    

     

  4. systemd サービス化設定 (自動起動対応) サーバー再起動時、バックグラウンドで常に TimeTagger を動作させるために TimeTagger 用の systemd ユニットファイル作成

    vi /etc/systemd/system/timetagger.service
    

    systemd ユニットファイルに記載する認証情報のパスワードの生成はこちらの公式サイトをご利用ください。

    [Unit]
    Description=TimeTagger Service (Root)
    After=network.target
    
    [Service]
    # rootで実行
    User=root
    Group=root
    
    # 作業ディレクトリ (データベースは /root/_timetagger/ に保存)
    WorkingDirectory=/root
    
    # 環境変数で認証情報を設定
    # 書式: ユーザー名:ハッシュ値
    Environment="TIMETAGGER_CREDENTIALS=test:$2a$08$eUfismuVQsRbhTNM.V57MOtRauaTwvWPfaH6ZkvNSHhTNbmnARj6u"
    
    # 起動コマンド
    ExecStart=/usr/bin/python3 -m timetagger --bind 0.0.0.0:8080
    
    # ログ設定
    StandardOutput=journal
    StandardError=journal
    
    # プロセス停止時の自動再起動設定
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    :wq!
    

     

  5. サービス自動起動設定

    systemctl enable timetagger.service
    

    OS起動時に自動で TimeTagger が起動されるようになります。
    “Created symlink …“と表示されていれば成功です。

    Created symlink '/etc/systemd/system/multi-user.target.wants/timetagger.service' → '/etc/systemd/system/timetagger.service'.
    

     

  6. サービス起動と確認

    systemctl start timetagger.service
    systemctl status timetagger.service
    

    “Active: active (running)“と表示され、ログに"Server is starting up"と記録されていれば無事に起動完了です。

    ● timetagger.service
        Loaded: loaded (/etc/systemd/system/timetagger.service; enabled; preset: disabled)
        Active: active (running) since Sun 2026-03-15 14:45:57 UTC; 2s ago
    Invocation: 5dfc8b839fa441c0a5764d2b16ac0c15
    Main PID: 47486 (python3)
        Tasks: 1 (limit: 22999)
        Memory: 66.1M (peak: 66.1M)
            CPU: 1.416s
        CGroup: /system.slice/timetagger.service
                mq47486 /usr/bin/python3 -m timetagger --bind 0.0.0.0:8080
    ...
     5月 16 13:42:06 lab-rock-241.lab.internal python3[1052]: [INFO 2026-05-16 13:42:06] Server is starting up
    

     

おわりに

今回はあえて Docker を利用せず、セルフホストで TimeTagger のインストールから systemd を用いたサービス化までを行いました。
これでいつでも安定してタイムトラッキングが利用できる環境が整いました。
TimeTagger の利用を検討されている方はぜひ、ぜひ参考にしていただければと思います。

 

環境

  • Rocky Linux 10.1
  • TimeTagger 26.1.3