# Dockerインストール

# GitHub Container Registryの使用

ビルド済みイメージを使用することが、DockerでSillyTavernを始める最速かつ最も簡単な方法です。GitHub Container Registryから最新のイメージをpullできます。

# Docker Compose (推奨)

GitHubリポジトリからdocker-compose.ymlファイルをダウンロードし、ファイルが配置されているディレクトリで次のコマンドを実行します。これにより、GitHub Container Registryから最新のreleaseイメージがpullされ、コンテナが起動し、必要なボリュームが自動的に作成されます。

docker compose up

ファイルを編集して、ニーズに合わせて追加のカスタマイズを適用できます:

  • デフォルトのポートは8000です。portsセクションを変更することで変更できます。
  • 安定版releaseの代わりに開発ブランチを使用したい場合は、imageタグをstagingに変更します。
  • 環境変数を使用してサーバー設定を調整したい場合は、Environment Variablesページを確認してください。

# Docker CLI (上級者向け)

SillyTavernを機能させるには、2つの必須ディレクトリマッピングと1つのポートマッピングが必要です。コマンドで、次の場所で選択したものを置き換えます:

# コンテナ変数

# ボリュームマッピング
  • CONFIG_PATH - ホストマシン上でSillyTavern設定ファイルが保存されるディレクトリ
  • DATA_PATH - ホストマシン上でSillyTavernユーザーデータ(キャラクターを含む)が保存されるディレクトリ
  • PLUGINS_PATH - (オプション)ホストマシン上でSillyTavernサーバープラグインが保存されるディレクトリ
  • EXTENSIONS_PATH - (オプション)ホストマシン上でグローバルUI extensionsが保存されるディレクトリ
# ポートマッピング
  • PUBLIC_PORT - トラフィックを公開するポート。これは、仮想マシンコンテナの外部からインスタンスにアクセスするため必須です。セキュリティのための別のサービスを実装せずに、これをインターネットに公開しないでください。
# 追加設定
  • SILLYTAVERN_VERSION - GitHub Packagesページで、タグ付きイメージバージョンのリストを確認できます。イメージタグ"latest"は、現在のreleaseで最新の状態を保ちます。それぞれのブランチのnightlyイメージを指す"staging"も利用できます。

# コンテナの実行

  1. コマンドラインを開きます
  2. 設定ファイルとデータファイルを保存したいフォルダで、次のコマンドを実行します:
SILLYTAVERN_VERSION="latest"
PUBLIC_PORT="8000"
CONFIG_PATH="./config"
DATA_PATH="./data"
PLUGINS_PATH="./plugins"
EXTENSIONS_PATH="./extensions"

docker run \
  --name="sillytavern" \
  -p "$PUBLIC_PORT:8000/tcp" \
  -v "$CONFIG_PATH:/home/node/app/config:rw" \
  -v "$DATA_PATH:/home/node/app/data:rw" \
  -v "$EXTENSIONS_PATH:/home/node/app/public/scripts/extensions/third-party:rw" \
  -v "$PLUGINS_PATH:/home/node/app/plugins:rw" \
  ghcr.io/sillytavern/sillytavern:"$SILLYTAVERN_VERSION"

# Dockerイメージのビルド

Dockerイメージを自分でビルドしたい場合は、次の手順に従ってください。これは、イメージをカスタマイズしたり、開発目的で使用したりする場合に便利です。

# Linux

  1. こちらのDockerインストールガイドに従ってDockerをインストールします。

  2. DockerのPost-Installation GuideManage Docker as a non-root userの手順に従ってください。
  3. パッケージマネージャーを使用してGitをインストールします。
    • Debian (Ubuntu/Pop! OS/etc.)

      sudo apt install git
    • Arch Linux (Manjaro/EndeavourOS/etc.)

      sudo pacman -S git
    • Fedora, Red Hat Enterprise Linux (RHEL), etc.

      sudo dnf install git
  4. SillyTavernリポジトリをcloneします。
    • Release (Stable Branch)

      git clone https://github.com/SillyTavern/SillyTavern && cd SillyTavern/docker
    • Staging (Development Branch)

      git clone https://github.com/SillyTavern/SillyTavern -b staging && cd SillyTavern/docker
  5. Dockerフォルダ内で次のコマンドを実行してdocker composeを実行します。

    docker compose up -d
  6. 新しいブラウザを開いてhttp://localhost:8000にアクセスします。数秒でSillyTavernが読み込まれるはずです。

# Windows

  1. こちらのDockerインストールガイドに従ってDocker Desktopをインストールします。
  2. Git for Windowsをインストールします。
  3. SillyTavernリポジトリをcloneします。
    • Release (Stable Branch)

      git clone https://github.com/SillyTavern/SillyTavern && cd SillyTavern/docker
    • Staging (Development Branch)

      git clone https://github.com/SillyTavern/SillyTavern -b staging && cd SillyTavern/docker
  4. Dockerフォルダ内で次のコマンドを実行してdocker composeを実行します。

    docker compose up -d
  5. 新しいブラウザを開いてhttp://localhost:8000にアクセスします。数秒でSillyTavernが読み込まれるはずです。

# macOS

  1. こちらのDockerインストールガイドに従ってDocker Desktopをインストールします。
  2. Homebrewを使用してgitをインストールします。

    brew install git
  3. SillyTavernリポジトリをcloneします。
    • Release (Stable Branch)

      git clone https://github.com/SillyTavern/SillyTavern && cd SillyTavern/docker
    • Staging (Development Branch)

      git clone https://github.com/SillyTavern/SillyTavern -b staging && cd SillyTavern/docker
  4. Dockerフォルダ内で次のコマンドを実行してdocker composeを実行します。

    docker compose up -d
  5. 新しいブラウザを開いてhttp://localhost:8000にアクセスします。数秒でSillyTavernが読み込まれるはずです。

# SillyTavernの設定

SillyTavernの設定ファイル(config.yaml)は、configフォルダ内にあります。configファイルの設定は、Dockerなしで設定する場合と変わりありませんが、変更を保存するには、管理者権限でnanoまたはコードエディタを実行する必要があります。

# ユーザーデータの場所

SillyTavernのdataフォルダは、dataフォルダ内にあります。ファイルのバックアップは簡単に行えますが、復元またはコンテンツの追加には、管理者権限で行う必要がある場合があります。

# サーバープラグインの実行

HoYoWiki-Scraper-TSSillyTavern-Fandom-ScraperのようなpluginsをDocker内で実行することは、Dockerなしでシステムで実行する場合と変わりありませんが、そのためにはDocker Composeスクリプトにわずかな変更を加える必要があります。

  1. nanoまたはコードエディタを使用して、_docker-compose.yml_を開き、volumesの下に次の行を追加します。

        volumes:
            - "./config:/home/node/app/config"
            - "./data:/home/node/app/data"
            - "./plugins:/home/node/app/plugins"
  2. dockerフォルダ内に_plugins_という新しいフォルダを作成します。
  3. pluginのインストール手順に従ってください。
  4. nanoまたは管理者権限のコードエディタを使用して、config.yamlconfigフォルダ内)を開き、enableServerPluginsを有効にします

    enableServerPlugins: true
  5. Dockerコンテナを再起動します。

    docker compose restart sillytavern

# Dockerの一般的な問題

# マウントされたボリュームでのSELinux権限の問題

SELinuxが有効なLinuxディストリビューション(RHEL、CentOS、Fedoraなど)では、セキュリティポリシーのため、Dockerコンテナがマウントされたボリュームにアクセスできない場合があります。これにより、コンテナがマウントされたディレクトリへの読み取りまたは書き込みを試みるときに、permission deniedエラーが発生する可能性があります。

ボリュームマウントに:zまたは:Zの2つのサフィックスを追加できます。これらのサフィックスは、共有ボリューム上のファイルオブジェクトを再ラベル付けするようDockerに指示します。

  • zオプションは、ボリュームコンテンツがコンテナ間で共有される場合に使用されます。
  • Zオプションは、ボリュームコンテンツが現在のコンテナでのみ使用される場合に使用されます。

例:

# docker-compose.yml
volumes:
  ## Shared volume
  - ./config:/home/node/app/config:z
  ## Private volume
  - ./data:/home/node/app/data:Z

# ホワイトリストによる禁止

  1. 次のDockerコマンドを実行して、SillyTavern DockerコンテナのIPを取得します。

    docker network inspect docker_default

    次のような出力が表示されるはずです。

    [
        {
            "Name": "docker_default",
            "IPAM": {
                "Config": [
                    {
                        "Subnet": "172.18.0.0/16",
                        "Gateway": "172.18.0.1"
                    }
                ]
            }
        }
    ]

    _Gateway_に表示されているIPをコピーしてください。これは重要です。

  2. 管理者権限でお好みのテキストエディタを実行し、configに移動してconfig.yamlを開きます。

    エディタ内で、whitelistセクションまで下にスクロールします。次のようなものが表示されるはずです。

    whitelist:
        - 127.0.0.1

    _127.0.0.1_の下に新しい行を追加し、DockerからコピーしたIPを入力します。その後、次のようになるはずです。

    whitelist:
        - 127.0.0.1
        - 172.18.0.1

    ファイルを保存してテキストエディタを終了します。

  3. Dockerコンテナを再起動して、新しい設定を適用します。

    docker compose restart sillytavern