Skip to content
OpenTickly

セルフホスト

Docker Compose で OpenTickly を自分のマシンで動かします。コマンド 1 つでアプリ、PostgreSQL、Redis が起動します。CasaOS、ZimaOS、Synology、fnOS などの NAS での手順も紹介します。

OpenTickly を自分で動かすのに必要なのは docker-compose.yml ファイル 1 つだけです。何もない状態から、実際に使えるところまでの手順を紹介します。

システム要件

  • Docker Engine 20.10+ と Docker Compose v2 が入った Linux、macOS、Windows のいずれかのマシン
  • メモリ約 1 GB、ディスク約 1 GB
  • 空いている TCP ポート 1 つ(デフォルトは 8080)

Docker がまだ入っていない場合は、先に公式のインストールガイドに沿ってインストールしてください。


サーバーのデプロイ

ステップ 1 — docker-compose.yml をダウンロード

新しいフォルダを作り、compose ファイルをダウンロードします。

mkdir -p opentickly && cd opentickly

wget -O docker-compose.yml \
  https://raw.githubusercontent.com/CorrectRoadH/OpenTickly/main/docker-compose.yml

起動するコンテナは 3 つです。

  • OpenTickly — Web UI + REST API(8080 で公開)
  • postgres — データベース(内部ネットワークのみ、外部には公開しない)
  • redis — キャッシュとバックグラウンド処理(内部ネットワークのみ、外部には公開しない)

ステップ 2 —(任意).env の設定

デフォルトのままでも動きます。ポートやパスワードを変えたいときは、同じフォルダに .env ファイルを作ってください。

# Web UI と API を公開するポート
OPENTOGGL_PORT=8080

# 本格的に使う前に強いパスワードに変えてください
OPENTOGGL_POSTGRES_PASSWORD=postgres
OPENTOGGL_REDIS_PASSWORD=opentoggl

.env で変えられるのは、この 3 つだけです。それ以外(データベース名、ユーザー、イメージ、接続文字列)は、どの環境でもシンプルで同じ構成になるよう、あえて compose ファイルに直接書いてあります。もっと変えたい場合は docker-compose.yml を直接編集してください。

本格的に使う前に、両方のパスワードを必ず変えてください。デフォルト値はローカルで試すとき専用です。Postgres と Redis には Docker の外からはアクセスできませんが、同じネットワーク内の別のマシンやコンテナが乗っ取られたとき、強いパスワードがあればデータを読まれずに済みます。

ステップ 3 — コンテナの起動

docker compose up -d

Web アプリにアクセス

ブラウザで http://<あなたの IP>:8080 を開き、最初のアカウントを登録すれば、すぐに時間の記録を始められます。

モバイル

モバイルアプリはまだありませんが、Web アプリをスマートフォンのホーム画面に追加すれば、アプリのように使えます(PWA)。Timery など、サードパーティ製 Toggl アプリの開発者とも OpenTickly への対応について話をしています。


AI エージェントをつなぐ

OpenTickly には Toggl のような 1 時間 30 回の制限がないので、Claude や Cursor などのエージェントを好きなだけ使えます。toggl-cli を設定すれば、数分でエージェントがタイマーの開始・停止やプロジェクトの整理をしてくれるようになります。

アップグレード

docker compose pull
docker compose up -d

NAS / Homelab へのデプロイ

OpenTickly は Docker Compose が動く環境ならどこでも動きます。以下は、上と同じ構成を各プラットフォームの画面から行う手順です。

CasaOS

  1. CasaOS ダッシュボードを開く
  2. App Store → カスタムインストール → docker-compose をインポート に進む
  3. docker-compose.yml の内容を貼り付ける
  4. Web UI のポートを 8080 にして保存
  5. ダッシュボードから起動する

http://<CasaOS の IP>:8080 でアクセスできます。

ZimaOS

ZimaOS(Zimablade / Zimacube の公式 OS)は CasaOS と同じ App Store を使っているので、手順もまったく同じです。App Store → カスタムインストール → docker-compose をインポート から compose ファイルを貼り付けてください。

Synology

Synology DSM 7.2 以降は、Container Manager で Docker Compose が使えます。

  1. Container Manager → プロジェクト → 作成 を開く
  2. プロジェクト名を入力(例:opentickly)
  3. docker-compose.yml を使用 を選び、compose ファイル を貼り付ける
  4. ウィザードを最後まで進めて完了

8080 が DSM と重なる場合は、プロジェクトを作る前に環境変数の設定で OPENTOGGL_PORT=9090(または空いている別のポート)を追加してください。

fnOS

fnOS には Docker の管理画面が最初から入っています。

  1. fnOS デスクトップの Docker アプリを開く
  2. 左サイドバーで Compose → 新規プロジェクト を選ぶ
  3. プロジェクト名に opentickly を入力し、保存先パスはデフォルトのまま
  4. Compose 内容 に compose ファイル を貼り付ける
  5. デプロイ を押し、3 つのコンテナがすべて緑になるまで待つ

その他のプラットフォーム

以下のプラットフォームも、同じ Docker Compose の手順で動かせます。

  • Unraid — Community Applications または Compose Manager プラグイン
  • TrueNAS SCALE — カスタムアプリ + Docker Compose
  • Proxmox LXC — LXC コンテナ内に Docker を入れてから、サーバーのデプロイ の手順に従う

設定リファレンス

.env で変えられる設定は 3 つです。

変数デフォルト値説明
OPENTOGGL_PORT8080Web UI と API を公開するポート
OPENTOGGL_POSTGRES_PASSWORDpostgresPostgres のパスワード(本番では必ず変更)
OPENTOGGL_REDIS_PASSWORDopentogglRedis のパスワード(本番では必ず変更)

それ以外(データベース名、ユーザー、イメージタグ、接続文字列、ボリューム名)は docker-compose.yml に直接書いてあります。変えたい場合はファイルを編集してください。

ヘルスチェック用エンドポイント

パス用途
/readyzリクエストを受けられる状態か(DB と Redis も確認)
/healthzプロセスが動いているか

次のステップ

On this page