~/tools / ローカルLLMをサーバーで動かす / Ollama systemd Override Generator

Ollama systemd Override Generator — Ollama の systemd 設定を作る

Linux サーバーで Ollama の環境変数を設定する systemd のオーバーライドを作ります。待ち受けアドレス、モデルのディレクトリ、モデルをメモリに置いておく時間、コンテキスト長、並列リクエスト、Flash Attention、K/V キャッシュの種類、追加のオリジン、ローカル専用モード、HTTPS プロキシを指定できます。変数はすべて公式の Ollama FAQ に載っているもので、値は systemd が読むとおりに引用符で囲みます。入力した内容はブラウザの外に出ません。

環境変数

空の欄は出力されません。灰色の文字は Ollama FAQ に載っている既定値です。

systemctl edit 用のオーバーライド

sudo systemctl edit ollama.service が開くエディタの、2つのコメント行の間に貼り付けます。/etc/systemd/system/ollama.service.d/override.conf として保存されます。

[Service]
Environment="OLLAMA_KEEP_ALIVE=10m"
Environment="OLLAMA_CONTEXT_LENGTH=8192"
Environment="OLLAMA_MAX_LOADED_MODELS=1"
Environment="OLLAMA_NO_CLOUD=1"

コマンド

サーバーでこの順に実行します。最後のコマンドは、サービスが受け取った変数を表示します。OLLAMA_MODELS を変えるときは、最初の2つでディレクトリを作り、ollama ユーザーに渡します。mkdir -p は当サイトで加えたものです。存在しないディレクトリでは chown が失敗するためです。

sudo systemctl edit ollama.service
sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl show ollama --property=Environment

変数と既定値は、2026-11-03 時点の Ollama FAQ に、引用符のルールは systemd.exec のマニュアルに記載されているとおりです。 Ollama FAQ / systemd.exec: Environment=

すべてブラウザの中で処理します。入力した内容はどこにも送信されません。

Ollama を Linux で systemd のサービスとして動かしている場合、公式 FAQ では、環境変数を systemctl edit ollama.service で設定するよう案内しています。[Service] の下に変数ごとに Environment の行を1つ加えて保存し、systemctl daemon-reload と systemctl restart ollama を実行します。手順は短いのですが、細かい点で間違えやすくなっています。systemd は指定子を展開するため、% は %% と書く必要があります。引用符で囲んだ代入の中のバックスラッシュと二重引用符はエスケープとして読まれます。スペースを含む値は、全体を引用符で囲む必要があります。このツールは、そのオーバーライドを代わりに書きます。FAQ に載っている変数だけを選べるようにし、各変数の横に記載された既定値を示し、すべての代入を "NAME=value" の形で引用符で囲み、% は2つに重ねます。Ollama がすべてのネットワークインターフェースで待ち受けることになる値、整数ではない数、Flash Attention をオフにしたまま量子化した K/V キャッシュを選んだ場合は、警告します。出力は Ubuntu 24.04(systemd 255)でテストしました。systemctl edit に貼り付け、スペース、$、'、% を含め、サービスが各値をそのまま受け取ることを確認しています。

このツールの計算部分は、オープンソース(MIT ライセンス)で公開しています。 github.com/seigo5555/toolkitbox-lib/src/ollama-systemd.ts

こんな時に使う

  • 小さな VPS で、OLLAMA_KEEP_ALIVE を使ってモデルをメモリに長く置いたり、早めに解放したりする
  • OLLAMA_MODELS を使って、モデルのファイルをより大きなディスクに移す
  • メモリの少ないサーバーで、読み込むモデルを1つに絞り、既定のコンテキスト長を設定する

使い方

  1. 変えたい変数だけを入力します。空の欄は出力されないため、Ollama は既定値のまま動きます。各欄の灰色の文字は、FAQ に載っている既定値です。
  2. 警告を読んでください。待ち受けアドレスを 127.0.0.1 や localhost 以外にすると、Ollama は他のマシンから接続できるようになりますが、FAQ にはそのための認証の記載がありません。
  3. sudo systemctl edit ollama.service を実行し、開いたエディタの2つのコメント行の間にテキストを貼り付けて、保存して終了します。続けて、残りのコマンドで systemd を再読み込みし、Ollama を再起動して、受け取った値を確認します。

FAQ

ファイルはどこに保存されますか?

systemctl edit は、ドロップインファイルの /etc/systemd/system/ollama.service.d/override.conf として保存し、本体のユニットファイルは変更しません。Ubuntu 24.04 で実行したところ、エディタには ### Anything between here and the comment below will become the contents of the drop-in file というコメントが表示されました。このコメントと、その下のコメントの間にテキストを貼り付けてください。

なぜすべての値を二重引用符で囲むのですか?

systemd のドキュメントによると、スペースや等号を含む値は、代入全体を引用符で囲む必要があります。すべての行を同じ形で囲んでおけば、スペースを含むパスや、OLLAMA_ORIGINS のようなリストも崩れません。ドキュメントには、$ はここでは特別な意味を持たずそのまま渡される一方、% は指定子の始まりになるとも書かれています。そのため、このツールは % そのものを表すときに %% と書きます。

使えない文字はありますか?

二重引用符、バックスラッシュ、タブなどの制御文字です。引用符で囲んだ代入の中では、systemd がこれらをエスケープとして読むか、受け付けないため、値が入力どおりに Ollama へ届きません。ツールはこれらをエラーとして知らせ、その行を出力しません。

OLLAMA_HOST を 0.0.0.0 にしても安全ですか?

Ollama がすべてのネットワークインターフェースで待ち受けるようになり、他のマシンから接続できます。FAQ によると、Ollama は既定で 127.0.0.1 のポート 11434 に結び付き、サーバーの認証についての記載はありません。私たちの推奨であり、ドキュメントの記述ではありません: 既定のアドレスのままにして、SSH トンネル、またはパスワードと HTTPS を備えたプロキシ経由で Ollama に接続し、ファイアウォールでポート 11434 を制限してください。

HTTPS_PROXY にパスワードを入れてもいいですか?

プロキシのアドレスにユーザー名とパスワードが含まれていると、ツールが警告します。systemd のドキュメントによると、ユニットに設定した値は権限のないクライアントにも読めるため、環境変数は秘密情報を渡すのに向いていません。FAQ には、Ollama はモデルを HTTPS でしか取得せず、HTTP_PROXY はクライアントの接続を妨げることがあるため、HTTP_PROXY は設定しないようにとも書かれています。そのためツールが用意するのは HTTPS_PROXY だけです。

サーバーに何か送信されますか?

いいえ。オーバーライドはブラウザの中で組み立てています。

関連する記事

関連ツール