Linuxサーバーデプロイ
デスクトップ環境なしでNowledge MemをLinux上でヘッドレスサーバーとして実行する
Nowledge Memは、GUIのないLinuxマシン上で ヘッドレスサーバー として実行できます。 実際のサーバー構成では、Linuxパッケージを使用し、コマンドラインから管理します。 その後、同じマシン上のブラウザから組み込みWebアプリを開くか、APIキーを使用して他のクライアントを接続できます。
Availability
日次ブリーフィング、インサイト検出、ナレッジグラフの拡充などのバックグラウンドインテリジェンス機能には、構成済みのリモートLLMと、お使いのビルドに適したライセンスが必要です。 このサーバーガイド自体はデプロイに関するものであり、パッケージングに関するものではありません。
パッケージのインストールとシステムサービスのインストールにはsudoを使用してください。
nmem serve、nmem config ...、nmem license ...、nmem tuiなどの日常的なコマンドは、通常のLinuxユーザーとして実行してください。
最近のビルドでは、rootからsudoまたは別の権限昇格ステップに到達すると、これらのステートフルなコマンドがブロックされるため、新規インストール時に誤ったユーザー環境でroot所有のMem状態が暗黙的に作成されることはありません。
root専用のVPSで意図的にrootとしてログインする場合でも、Memは通常どおり/rootを使用します。
システム要件
| 要件 | 仕様 |
|---|---|
| オペレーティングシステム | Ubuntu 22.04+、Debian 12+、または互換環境(AppImage経由) |
| アーキテクチャ | .deb / AppImageの場合はx86_64、Dockerの場合はx86_64およびarm64 |
| メモリ(RAM) | 最小8 GiB(16 GiB推奨) |
| ディスク容量 | 10 GiBの空き容量 |
| 依存関係 | libgtk-3-0、libwebkit2gtk-4.1-0、zstd(.debによって自動的にインストールされます) |
インストール
apt upgradeによる自動更新のためにAPTリポジトリを設定します:
curl -fsSL https://nowledge-co.github.io/community/apt/install.sh | sudo bash
sudo apt-get install nowledge-memこれにより、GPG署名キーとリポジトリソースが追加されます。
後でMemのみを更新するには、sudo apt-get update && sudo apt-get install --only-upgrade nowledge-memを実行します。
通常のシステム全体のアップグレードは、sudo apt-get update && sudo apt-get upgradeを通じて、または構成されている場合はunattended-upgradesを通じて引き続き機能します。
ヘッドレス優先のLinuxサーバーでは、APT、Docker、または.debのインストールパスを優先してください。
AppImageはポータブル/手動での使用に最適であり、無人サーバーセットアップには向いていません。
nmem CLIをPATHにインストールしないため、デスクトップセッションのないマシンでのnmem + systemdワークフローとしては最もクリーンではありません。
ターミナルからパッケージをダウンロードする場合は、上記のコマンドをそのまま使用してください。
一部のダウンロードエンドポイントは、プレーンなcurl / wgetリクエストに対して403を返すため、ブラウザのUser-Agentが含まれています。
APTおよび.debのインストールでは、自動的に以下が行われます:
- バンドルされたPythonランタイムを展開します
/usr/local/bin/nmemにnmemCLIを作成します- 自動更新のためにAPTリポジトリを構成します(APT経由でインストールした場合)
- デスクトップエントリを設定します(ヘッドレスサーバーでは無視されます)
CLIが利用可能であることを確認します:
nmem --version代わりにAppImageを使用した場合は、毎回AppImageファイルを直接実行してください。
nmemはPATHに追加されません。
Docker(プレビュー)
このページでは、Linuxサーバー上の.deb / APT / systemdパスについて説明します。
Dockerは独自のウォークスルーを持つ別のデプロイモデルです。
同じMemバックエンド、同じWebアプリ、同じデータを使用しますが、ライフサイクル(compose、バインドマウント、イメージアップグレード、オプションのWeb UI自動更新)が十分に異なるため、独立したページになっています。
完全なガイドについては Docker Deployment を参照してください: Dockerが適切な選択となる場合(VPS、NAS、クラウドVM、ホームラボ)、サポートされるアーキテクチャ(amd64 + arm64)、nmemctlによるクイックスタート、「For your agent」スキル、データの保存場所、メモリチューニング、イメージ検証、Caddy TLS、バックアップと移行、およびオプションのWeb UI自動更新。
クイックスタート
実際のLinuxサーバーでは、まずバックグラウンドサービスをセットアップしてください。 これにより、安定したローカルMemサーバーが1つ提供され、SSHから、新しいターミナルをまたいで、再起動後も次のコマンドがクリーンに動作します。
バックグラウンドサービスをインストールする
サーバーで推奨:
sudo nmem service install --service-user <linux-user>どうしてもユーザーレベルのサービスが必要な場合:
nmem service install --userヘッドレスサーバーでは、システムサービスを優先してください。 ユーザーサービスは、そのアカウントでlingeringが有効になっている場合にのみ、ログアウトと再起動後も存続します:
sudo loginctl enable-linger <linux-user>サービスを検証する
nmem service status
nmem status実行中のビルドを正確に確認するには、ビルドSHAを出力します:
nmem-server --build-info同じ値はGET /healthの.build_shaの下にも表示されるため、ネットワーク経由またはスクリプトからデプロイを検証できます。
ライセンスをアクティベートする
nmem license activate <license-key> # Email is usually inferred from the key
nmem license status # Verify activation
nmem license renew # Refresh this device later if authorization expiresメールの推論が失敗した場合は、nmem license activate <license-key> <email>を明示的に実行してください。
Webアプリを開く
ブラウザのログインリンクを出力します:
nmem key --show-login接続したいデバイスでリンクを開きます。 直接サインインされ、1回だけ機能し、1分で期限切れになります。 新しいリンクが必要なときはいつでもコマンドを再実行してください。 古いバージョンではリンク自体にAPIキーが含まれており、どちらのリンク形式も引き続き機能します。
現在のビルドがまだ--show-loginをサポートしていない場合は、次を使用してください:
nmem keyその後、ブラウザでWebアプリを開き、出力されたキーを貼り付けます。 デフォルトのセットアップでは、アドレスは通常次のとおりです:
http://127.0.0.1:14242/appヘッドレスサーバーでは、通常ブラウザは別のコンピュータ上にあります。
nmem key --show-loginが出力する正確な
URLとポートを使用してください。
SSHトンネルが必要な場合は、同じポートを転送します:
ssh -L <port>:127.0.0.1:<port> <server>その後、ブラウザでログインリンクを開きます。 期限切れの場合は、コマンドを 再実行して新しいリンクを取得するか、Webアプリを開いてAPIキーを貼り付けてください。
検索インデックスモデルをダウンロードする
nmem models download
nmem models status # Verify installationこれにより、ハイブリッド検索用の検索インデックスモデル(約500 MB)がダウンロードされます。 必要なのは1回だけです。
ヘッドレスで実行する場合、次の2つのコマンドを簡単な検索ヘルスチェックとして使用してください:
nmem status: 検索の準備ができているか、再構築が必要か、またはMemがバックグラウンドでメタデータのみを埋めているかを表示しますnmem models status: モデルの状態と、該当する場合は現在の検索インデックスアクションを表示します
GET /healthは、スクリプトやリモートチェック用に同じシグナルを伝えます。
重要なフィールドは2つです:
embedding.modeはremote、local-gguf、またはlocal-hash-fallbackです。 ハッシュフォールバック値は、実際のエンベッダーが構成されていないことを意味するため、キーワード検索は引き続き機能しますが、セマンティック検索は低下します。 これが、リモートプロバイダーを設定するか、ローカルモデルをダウンロードするシグナルです。reindex_neededは、検索インデックスが古い場合(通常は埋め込みIDの変更後、つまり新しいプロバイダーまたはモデル)にtrueになります。
サーバーは再構築のために起動をブロックすることはありません。
すぐに起動し、インデックスが追いつく間はキーワード(FTS)検索を提供するため、古いインデックスはエラーになるのではなく、キーワード結果にソフトにフォールバックします。
準備ができたら、Settings → Memory Processing → Searchから、またはPOST /search-index/reindexで再構築をトリガーしてください。
起動時に積極的に再構築したい場合は、サーバーを起動する前にNMEM_BOOT_AUTO_REINDEX=1を設定してください。
LLMプロバイダーを構成する
LinuxではリモートLLMが必要です(オンデバイスLLMサポートはありません):
nmem config provider set anthropic \
--api-key sk-ant-xxx \
--model claude-sonnet-4-20250514
nmem config provider test # Verify connectionサポートされるプロバイダーには、anthropic、openai、gemini、xai、deepseek、minimax、zai、moonshot、ollama、openrouter、およびOpenAI互換エンドポイントが含まれます。
完全なプロバイダーマトリックスと注意事項については、LLM Providersを参照してください。
バックグラウンドインテリジェンスを有効にする
nmem config settings set backgroundIntelligence true
nmem config settings set autoDailyBriefing trueすべてを検証する
nmem statussystemdの代わりにクイックフォアグラウンドテスト
まだsystemdサービスをインストールしたくない場合:
nmem serveそのターミナルは開いたままにしてください。
次に、2番目のターミナルでnmem license ...、nmem models ...、およびnmem config ...を使用します。
systemdサービスとして実行する
本番環境へのデプロイでは、nmem service installを使用して、起動時に自動的に開始されるバックグラウンドsystemdサービスをセットアップします:
# Install, enable, and start as your normal Linux user
sudo nmem service install --service-user <linux-user>
# If you are running sudo directly from that Linux user, Mem can usually infer it
sudo nmem service install
# Custom host/port
sudo nmem service install --service-user <linux-user> --host 0.0.0.0 --port 8080システムサービスの場合、Memはrootとしてではなく、通常のLinuxユーザーとして実行する必要があります。
sudoが正しいアカウントを推論できない場合は、--service-user <linux-user>を渡してください。
ユーザーサービスの場合は、sudoなしで、そのユーザーとして直接nmem service install --userを実行してください。
ユーザーサービスをログアウトと再起動後も存続させたい場合は、sudo loginctl enable-linger <linux-user>も一度実行してください。
VPSが意図的にroot専用で、rootとして直接ログインする場合でも、nmem service installは一貫して/rootを使用できます。
以前に古いビルドをrootとして実行していた場合、~/.config/co.nowledge.mem.desktop/配下の一部のファイルがまだrootによって所有されている可能性があります。
その場合、サービスを実行するLinuxユーザーの所有権を修正するまで、ライセンスアクション、プロバイダーの変更、またはAccess Anywhere設定が失敗することがあります。
最近のビルドでは、これが発生したときに正確なパスが表示されるようになりました。
典型的な修復は次のようになります:
sudo chown -R <linux-user>:<linux-user> ~/.config/co.nowledge.mem.desktop
sudo chown -R <linux-user>:<linux-user> ~/.local/share/NowledgeGraphカスタムのXDG_CONFIG_HOMEまたはXDG_DATA_HOMEを使用している場合は、代わりにそれらの場所を修復してください。
サービスの管理
nmem service status # Show service status
nmem service logs -f # Follow service logs
nmem service stop # Stop the service
nmem service start # Start the service
nmem service uninstall # Stop, disable, and removeユーザーレベルのサービスをインストールした場合は、任意のnmem serviceコマンドに--userを追加してください。
serveとservice
nmem serve | nmem service install | |
|---|---|---|
| 実行場所 | フォアグラウンド(現在のターミナル) | バックグラウンド(systemd) |
| 停止するタイミング | Ctrl+Cまたはターミナルを閉じたとき | nmem service stopまたはシステムシャットダウン |
| 起動時に開始 | いいえ | はい(自動有効化) |
| 最適な用途 | テスト、開発 | 本番環境へのデプロイ |
データの場所
すべてのデータ(グラフデータベース、検索インデックス、バージョンメタデータ)は、単一のディレクトリに保存されます:
~/.local/share/NowledgeGraph/
├── nowledge_graph_v2.db/ # KuzuDB graph database
├── search_index/ # LanceDB vector + BM25 index
└── db_version.json # Schema version trackingサーバーはXDG_DATA_HOMEを使用してこのパスを自動的に解決します(デフォルトは~/.local/share)。
カスタムの場所を使用するには、サーバーを起動する 前に NOWLEDGE_DB_PATH環境変数を設定してください:
export NOWLEDGE_DB_PATH=/mnt/data/NowledgeGraph/nowledge_graph_v2.db
nmem serveUpgrading from an older version
古いバージョンでは、作業ディレクトリからの相対パス./data/にデータを保存していました。
アップグレード後、サーバーは
レガシーデータを自動検出し、移行手順を出力します。
データが見つからないと思われる場合は、
以下のTroubleshooting: Missing data after upgradeを参照してください。
リモートアクセス
デフォルトでは、nmem serveは127.0.0.1のみでリッスンします。
これで次の用途には十分です:
- サーバー自体での
nmemコマンド - 同じローカルURL上の組み込みWebアプリ(デフォルトでは
http://127.0.0.1:14242/app)
0.0.0.0または別の非ループバックアドレスにバインドする場合、Memは他のマシンに対してAPIキーを要求します。
キーは必要に応じて自動生成され、いつでも次のコマンドで再度出力できます:
nmem key
# or
nmem key --show-login--show-loginは、単一使用のブラウザログインリンクも出力します。
接続したいデバイスで開くとサインインされます。
各リンクは1回だけ機能し、1分で期限切れになります。
古いバージョンでは代わりにキーがリンクに埋め込まれています。
サーバーに到達できるようになったら、クライアントがサポートする最も高レベルのサーフェスを通じて接続してください: まずネイティブコネクタ、次にプラグイン設定またはnmem構成、そしてより良い専用パスが存在しない場合にのみ直接MCPです。
現在の主な例外はCodexで、専用パッケージがすでにローカルMCPをバンドルしており、リモートデプロイではCodex構成でそのエンドポイントを上書きする必要があります。
# On the server
nmem serve
nmem keyリモートマシンにスタンドアロンCLIをインストールします:
pip install nmem-cli
# or
uv pip install nmem-cli次に接続を構成します。 推奨される永続的なセットアップは次のとおりです:
nmem config client set url http://your-server:14242
nmem config client set api-key nmem_...これにより、このマシン用の~/.nowledge-mem/config.jsonが書き込まれます。
一時的なシェルセッションのみが必要な場合は、代わりに環境変数を使用してください:
export NMEM_API_URL=http://your-server:14242
export NMEM_API_KEY="nmem_..."nmem status
nmem m search "query"優先順位: CLIフラグ > 環境変数 > 構成ファイル > デフォルト。
Important for transcript-backed thread save
nmem t save --from claude-code、grok、gemini-cli、またはcodexなどのコマンドは、そのエージェントを実行しているクライアントマシン上のローカルエージェントセッションファイルを引き続き読み取ります。
nmemをリモートサーバーに向けると、正規化されたデータのアップロード先が変わるだけで、セッション検出の場所は変わりません。
認証を無効にするには(本番環境では推奨されません):
nmem serve --no-authSecurity
APIキー認証は、他のマシンからの接続に対してデフォルトで有効になっています。 localhost認証を有効にすると、localhostのブラウザアクセスにもキーが必要になる場合があります。 セキュリティを強化するには、ファイアウォールルールでアクセスを制限するか、CloudflareトンネルでAccess Mem Anywhereを使用してください。
インタラクティブTUI
インタラクティブなターミナル体験には、TUIを使用します:
nmem tuiTUIは、ライセンスのアクティベーション、LLM構成、ナレッジ処理のトグルなど、完全な設定管理インターフェースを提供します。
Dockerイメージにもバンドルされています。 コンテナデプロイでは、コンテナ内で実行します:
docker compose exec -it mem nmem tuiまた、SettingsにAccess Anywhereコントロールが含まれており、同じ画面で現在のAPIキーとローカルWebログインURLを表示できます。
これにより、ヘッドレスサーバーでも/appログインフローを実用的に完了できます。
完全なガイド: Access Mem Anywhere。
サーバーネットワークがUDP/QUICをブロックし、Access Anywhereがオンラインにならない場合は、Memを再起動する前にCloudflareトランスポートをHTTP/2に強制してください:
export TUNNEL_TRANSPORT_PROTOCOL=http2構成リファレンス
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
NMEM_API_URL | http://127.0.0.1:14242 | CLIコマンド用のサーバーURL |
NMEM_API_KEY | - | 認証済みリクエスト用のAPIキー |
NOWLEDGE_DB_PATH | 自動検出 | データベースの場所を上書き |
NMEM_APP_DATA | プラットフォームのデータディレクトリ | 完全なMemグラフ/データルートを上書きします。分離されたリカバリまたはテスト起動にのみ使用し、意図的に別のデータディレクトリが必要な場合に限ってください。 |
NMEM_DISABLE_APP_DATA_HEAL | 0 | 分離されたリカバリまたはテスト起動のために1/trueに設定します。これによりレガシーデータ/構成のレスキューが無効になり、サーバーが通常の本番環境の場所から読み取ったりコピーしたりしなくなります。 |
NOWLEDGE_BACKEND_HOST | 127.0.0.1 | サーバーのバインドアドレス |
NMEM_LAN_AUTH | - | 認証をスキップするにはdisabledに設定します(--no-authと同じ) |
コピーしたデータディレクトリに対してnmem-serverを手動で起動する場合は、
NMEM_APP_DATAとNMEM_DISABLE_APP_DATA_HEAL=1の両方を設定してください。
自動レガシーデータ
レスキューは通常のアプリアップグレードを対象としており、フォレンジック/サンドボックス起動を対象としていません。
CLIコマンドの概要
| コマンド | 説明 |
|---|---|
nmem serve | サーバーを起動します(デフォルト: 同じマシンのみ) |
nmem serve --no-auth | APIキー認証なしで起動します |
nmem service install | systemdサービスとしてインストールして起動します |
nmem service status | systemdサービスのステータスを表示します |
nmem service logs -f | サービスのログをフォローします |
nmem service stop / start | サービスを停止または起動します |
nmem service uninstall | systemdサービスを削除します |
nmem status | サーバーのヘルスを確認します |
nmem license activate <key> [email] | ライセンスをアクティベートします(メールは通常推論されます) |
nmem license renew | このデバイスの認証を更新または再発行します |
nmem models download | 検索インデックスモデルをダウンロードします |
nmem config provider set <p> --api-key <k> | LLMプロバイダーを構成します |
nmem config provider test | LLM接続をテストします |
nmem config settings | 処理設定を表示します |
nmem config settings set <key> <value> | 設定を更新します |
nmem tui | インタラクティブなターミナルUI |
nmem key | 現在のAPIキーを出力します |
nmem key --show-login | 単一使用のブラウザログインリンクとAPIキーを出力します |
# APT package updates
sudo apt-get update
sudo apt-get install --only-upgrade nowledge-memトラブルシューティング
アップグレード後にデータが見つからない
古いバージョン(0.7より前)では、nmem serveを実行したディレクトリからの相対パス./data/にデータベースを保存していました。
現在のバージョンでは、データは標準の場所(~/.local/share/NowledgeGraph/)に保存されます。
アップグレード後にメモリが消えたように見える場合、データはおそらくまだディスク上にあり、古い場所にあるだけです。
古いデータを見つける
古いデータベースがある可能性のある一般的な場所を検索します:
find / -name "nowledge_graph*.db" -type d 2>/dev/null一般的な場所には次のものがあります:
~/data/nowledge_graph.db(ホームディレクトリからnmem serveを実行した場合)/data/nowledge_graph.db(systemdサービスが/から実行された場合、つまりWorkingDirectoryなしのシステムサービス)/path/where/you/ran/nmem/data/nowledge_graph.db、その他の作業ディレクトリ
標準の場所に移動する
# Stop the server first
nmem service stop # if using systemd
# or Ctrl+C # if running in foreground
# Create the standard directory if needed
mkdir -p ~/.local/share/NowledgeGraph
# Move your database and related files
mv /old/path/data/nowledge_graph*.db* ~/.local/share/NowledgeGraph/
mv /old/path/data/search_index ~/.local/share/NowledgeGraph/ 2>/dev/null
mv /old/path/data/db_version.json ~/.local/share/NowledgeGraph/ 2>/dev/null
# Restart the server
nmem serve # or: nmem service startリカバリを検証する
nmem m search "test" # Search for your memories
nmem status # Check server health現在のバージョン以降、nmem serveは起動時にデータベースパスを出力します。
これにより、どの場所が使用されているかを簡単に確認できます。
./data/でレガシーデータが検出されると、サーバーは移行手順を自動的に出力します。
次のステップ
- CLI Reference: 完全なCLIドキュメント
- API Reference: REST APIエンドポイント
- Connectors: AIツールとの接続
