はじめに¶
Tally は単一の Docker コンテナとして動作します。データはマウントしたボリューム 上の SQLite に保存されるため、再起動やアップデートをしても保持されます。
前提¶
- Docker(Compose プラグイン付き)
- 自分で管理できるマシン(自宅サーバー、VPS、または手元の PC)
1. 取得¶
2. 環境変数を設定(起動前に)¶
.env.example をコピーして .env を作り、最初の起動より前に編集します。
docker-compose.yml はこの .env を変数展開で読み込みます(.env は git 管理外)。
設定できる環境変数は次のとおりです。最低限 SESSION_SECRET を設定すれば動きます
が、TZ や DISABLE_REGISTRATION、バックアップ関連もこの段階で決めておくと
スムーズです。
| 変数 | 説明 | 既定値 |
|---|---|---|
SESSION_SECRET |
セッション Cookie の署名鍵。長いランダム文字列を設定(openssl rand -base64 32)。未設定の場合はプロセスごとにランダム生成され、再起動でセッションがリセットされます。 |
プロセスごとにランダム |
DATABASE_URL |
SQLite ファイルの場所 | file:/data/tally.db(Docker) |
TALLY_DATA_DIR |
データ(DB+バックアップ)を置くホストのディレクトリ。外部ストレージを指定できる。未設定なら Docker 管理の名前付きボリューム | (名前付きボリューム tally-data) |
TZ |
通知スケジューラーのタイムゾーン | Asia/Tokyo |
DISABLE_REGISTRATION |
1 で最初のアカウント作成後の新規登録を無効化 |
(未設定) |
SMTP_HOST / SMTP_PORT / SMTP_USER / SMTP_PASS / SMTP_FROM |
メール通知用の SMTP 設定(フォールバック。ユーザーごとの設定が優先) | (未設定) |
BACKUP_ENABLED |
自動バックアップの有効/無効 | true |
BACKUP_INTERVAL_HOURS |
自動バックアップの間隔(時間) | 24 |
BACKUP_KEEP |
保持する世代数(超過分は古いものから削除) | 7 |
BACKUP_DIR |
バックアップの保存先 | DB と同じボリューム内の backups/ |
PORT |
待ち受けポート | 6400 |
起動前に SESSION_SECRET を設定
SESSION_SECRET は最初の docker compose up より前に設定してください。
未設定のまま起動すると、Tally はプロセスごとにランダムな鍵を生成するため、
コンテナを再起動するたびに全員ログアウトされます。リポジトリは公開されて
いるので、ハードコードされた値は使わず、必ず自分で生成した鍵を使ってください。
docker-compose.yml は次のように .env を読み込みます:
environment:
SESSION_SECRET: "${SESSION_SECRET:-}"
TZ: "${TZ:-Asia/Tokyo}"
DISABLE_REGISTRATION: "${DISABLE_REGISTRATION:-}"
3. ビルド & 起動¶
http://localhost:6400 を開きます。初回はアカウント(ユーザー名+パスワード)を 作成します。データはサーバー内にのみ保存されます。
最初のアカウント
最初に作成したアカウントが、既存データをすべて引き継ぎます。その後は、
追加登録を止めたい場合に DISABLE_REGISTRATION=1 を設定してください。
docker run で起動する場合
Docker Compose を使わない場合は、環境変数を -e で直接渡します。