設定

ほとんどの設定はコントロールパネルにあります。一部はコンテナー起動時に指定します。

このページの内容
  1. 設定一覧
  2. docker run の場合
  3. Docker Compose の場合
  4. メモリ
  5. データの保存先

設定一覧

設定既定説明
THIRTYFILE_ADMIN_PASSWORDランダムadmin のパスワード。初回起動のみ使用します。例の choose-a-password は未設定と見なします
THIRTYFILE_ADMIN_PASSWORD_FILE代わりにパスワードを保存したファイル。Docker secret など
THIRTYFILE_SECURE_COOKIEfalseHTTPS の場合は true にします(https:// で始まるサイトの URL も同じ効果)。Cookie は HTTPS でのみ送信し、ブラウザーに 1 年間 HTTPS のみを使うよう伝えます(HSTS)
THIRTYFILE_TRUST_PROXYfalse同じコンピューターや Docker ネットワークのリバースプロキシの背後なら true。別のコンピューターなら 203.0.113.7, 10.1.0.0/16 のようにアドレスを指定します。IPv6 表記の ::ffff:172.18.0.1 は含まれる IPv4 アドレスとして扱います(ネットワークは /96 以上。::ffff:172.18.0.0/112 は 172.18.0.0/16)。true は LAN のほかのコンピューターも含め全プライベートアドレスを信頼するため、プロキシのアドレスを列挙する方が安全です。これらのアドレスからのみ X-Forwarded-For、-Host、-Proto を信頼します
THIRTYFILE_TRASH_DAYS30ごみ箱の保存日数。0 は無期限
THIRTYFILE_MAX_UPLOAD_MB0アップロード可能な最大サイズ。0 は無制限
THIRTYFILE_DB_CACHE_MB16接続あたりのデータベースキャッシュ(MB、最大 8 接続)。利用者の多い大規模サーバーでは増やせます
THIRTYFILE_THUMBNAIL_JOBS1 または 2同時に作成するサムネイル数。サーバーやコンテナーのメモリが 2 GB 未満なら 1、それ以外は 2
THIRTYFILE_RUN_AS1000:1000サーバーの実行ユーザーとグループ。起動時にデータとストレージの所有者を変更します。イメージが設定するもので、単体プログラムは起動したユーザーで動き続けます
THIRTYFILE_LOG_FORMATtextjson は収集ツール向けにログを 1 行 1 JSON で出力
RUST_LOGthirtyfile=infoログの詳しさ。問題を調べる間は thirtyfile=debug など
TZUTCタイムゾーン。Asia/Taipei など
THIRTYFILE_SECRET_KEY/data の secret.key保存場所、シングルサインオン、署名シークレットなど、データベースのパスワードとキーを暗号化する 64 桁の 16 進数キー。openssl rand -hex 32 で作成できます。未設定なら初回起動で /data/secret.key を作ります。アップグレードとバックアップ を参照
THIRTYFILE_SECRET_KEY_FILE代わりにそのキーを保存したファイル。Docker secret など
THIRTYFILE_ADDR0.0.0.0:8080コンテナー内の待ち受けアドレスとポート。ホストのポートを変えるには公開ポート(-p 9000:8080)を変えます
THIRTYFILE_DATA/dataデータベース、サムネイル、進行中のアップロードのフォルダー。イメージが設定するため値を変えず、そこにフォルダーをマウントしてください。単体プログラムでは ./data
THIRTYFILE_STORAGE/storage組み込み保存場所のフォルダー。THIRTYFILE_DATA と同様にイメージが設定します。単体プログラムではデータフォルダーの blobs

オン、オフの設定は true、false(1/0、yes/no、on/off も、大文字小文字を問わず)を受け付けます。compose.yaml では引用符("true")で囲み、YAML に別の型へ変換させないようにします。

docker run の場合

設定ごとに -e を追加します。

docker run -d --name thirtyfile --restart unless-stopped -p 8080:8080 \
  -v /srv/thirtyfile/data:/data -v /srv/thirtyfile/storage:/storage \
  -e THIRTYFILE_ADMIN_PASSWORD='choose-a-password' \
  -e TZ=Asia/Taipei \
  -e THIRTYFILE_TRASH_DAYS=60 \
  ghcr.io/thirtyfile/thirtyfile:latest

後から変えるには、コンテナーを停止、削除して、新しい値でコマンドを実行します。ファイルは保持します。

docker stop thirtyfile && docker rm thirtyfile

Docker Compose の場合

compose.yaml の environment: に追加して、docker compose up -d を再実行します。

    environment:
      TZ: Asia/Taipei
      THIRTYFILE_TRASH_DAYS: "60"

メモリ

待機中は約 100 MB、通常は 300 MB 未満です。大きな画像のサムネイル作成が最も多く使い、同時に作る 1 件あたり最大約 280 MB です。メモリ 1 GB の NAS や Raspberry Pi でも動きます。2 GB 未満では 1 件ずつ作り、画像のデコードに使えるメモリも減らします(上限を超える画像はサムネイルを作りません)。

上限を決めるには、docker run の --memory 512m、または compose.yaml の mem_limit: 512m などを指定します。ThirtyFile は起動時に上限を読んで調整します。

データの保存先

コンテナーは 2 つのフォルダーを使います。それぞれにコンピューターのフォルダーをマウントしてください。

コンテナー内内容
/dataアカウント、設定、ログ、サムネイル、進行中のアップロード。容量は小さめです
/storage組み込み保存場所のファイル。通常のフォルダー company、teams/<space name>、users/<user name> で保存し、ファイルとともに増えます

同じディスクでなくても構いません。/storage は大きなディスクや NAS のマウント先にできます。ないフォルダーは作成し、起動時に両方をユーザー 1000 の所有にするため(THIRTYFILE_RUN_AS)、手動で所有者を変える必要はありません。

ほかのディスクも保存場所に追加できます。-v /mnt/nas:/nas のようにマウントし、コントロールパネル › 保存場所 で /nas を追加します。保存場所 を参照してください。