IT資産・ライセンスをチームで一元管理できるOSS「Snipe-IT」
IT資産・ライセンスをチームで一元管理できるOSS「Snipe-IT」
ひとことでいうと
Snipe-IT(スナイプ・アイティー)は、会社や学校が持つ IT 資産(ノートPC・スマートフォン・ネットワーク機器など)とソフトウェアのライセンスを、ブラウザだけで一元管理できるオープンソースの Web アプリです。「誰がどの端末を使っているか」「ライセンスの空き席はいくつあるか」「資産の帳簿上の価値はいくらか」といった情報を、チーム全員でリアルタイムに共有できます。無償で利用でき、インターネット上で公開されているソースコード(プログラムの設計図)を自分のサーバーに設置して使うタイプのソフトです。REST API・SCIM プロビジョニング・CSV 一括インポートなど、既存の業務システムと連携する機能も豊富に備わっています。情報システム担当者から総務・経理担当者まで、IT 資産の管理に課題を感じているすべての方に向いています。
こんな人におすすめ
1. 情報システム部門の担当者 社員への PC 貸し出し・返却状況や、ソフトウェアライセンスの消費数をリアルタイムで把握したい場合に最適です。Excel の台帳管理から Snipe-IT に移行することで、棚卸し作業をぐっと効率化できます。変更履歴も自動で残るため、「誰がいつ操作したか」の追跡も容易になります。
2. 中小企業の総務・経理担当者 資産の購入日・購入金額・耐用年数(使える年数の見込み)を入力しておくと、決算期の減価償却(固定資産の費用を年数で割る会計処理)を自動で計算してくれます。カテゴリ・メーカー・モデルごとの集計レポートも最初から備わっており、CSV でエクスポートして経理部門にそのまま提出できます。
3. 学校・非営利団体の IT 管理者 完全無償(FOSS: Free and Open Source Software、つまり「無料で使えて中身も公開されているソフト」)で利用でき、公式の Docker イメージも提供されているため、ライセンスコストゼロで導入できます。貸し出し期限の通知・返却ステータスの管理など、資産のライフサイクル全体を追う機能がひととおり揃っています。
インストール・使い方
Snipe-IT をご自身のサーバーで動かすには、PHP 8.1 以上・MySQL 5.7 以上・Composer(PHP のパッケージ管理ツール)・Node.js が必要です。以下の手順に沿って進めてください。ターミナル(文字で命令を入力する画面)を開き、コマンドをコピー&ペーストするだけで作業できます。
Step 1: ソースコードを取得する
git clone https://github.com/grokability/snipe-it.git
cd snipe-it
git clone でリポジトリ(ソースコードの置き場)を手元にコピーし、そのフォルダに移動します。
Step 2: 環境設定ファイルを作成する
cp .env.example .env
# .env を開き DB_HOST / DB_DATABASE / DB_USERNAME / DB_PASSWORD を書き換える
.env はデータベースの接続先やアプリの基本設定を書くファイルです。用意されているサンプルをコピーして、自分の環境に合わせて編集します。
Step 3: 必要なパッケージをインストールする
composer install --no-dev
npm install && npm run production
PHP 向けのライブラリと JavaScript 向けのライブラリをまとめて取得し、画面表示に使うファイルをビルド(組み立て)します。
Step 4: データベースを初期化してアプリを起動する
php artisan key:generate
php artisan migrate --seed
php artisan serve
# → http://localhost:8000 でセットアップウィザードが起動
key:generate でアプリの暗号化キーを生成し、migrate --seed でデータベースのテーブルを作成します。起動後はブラウザで http://localhost:8000 を開くと初期設定画面が表示されます。
Docker を使う場合
公式イメージ snipe/snipe-it を docker-compose(複数のコンテナをまとめて管理するツール)で起動するのが最速です。リポジトリ内に Dockerfile が同梱されているので、カスタムビルドにも対応しています。
動かしてみた
リポジトリの構成を確認したところ、Laravel(ララベル)の標準的なディレクトリ構成に加えて、実用的なファイルが多数用意されていることが分かりました。
routes/api.php # REST API のエンドポイント(窓口)定義
routes/scim.php # SCIM 対応ルート(ユーザー自動同期用)
routes/web.php # Web 画面のルート定義
Dockerfile # Docker ビルド定義
phpunit.xml # PHPUnit テスト設定
psalm.xml # 静的解析ツール Psalm の設定
.pa11yci.json # アクセシビリティテスト設定
.nvmrc # Node.js バージョン指定
CSV インポート用のサンプルファイルも同梱されており、資産・ライセンス・消耗品・コンポーネント・アクセサリ・ロケーション・ユーザー・メーカー・サプライヤ・カテゴリ・モデルと、11 種類のエンティティ(管理対象の種類)に対応したテンプレートが確認できました。バリデーション(入力値の確認)エラーになる例を収録したサンプルファイルも同梱されており、よくある入力ミスを事前に学べる工夫がされています。また routes/scim.php の存在から、Azure Active Directory や Okta などのアイデンティティプロバイダ(社員アカウントをまとめて管理するクラウドサービス)とのユーザー自動同期にも対応していることが確認できます。
ブラウザで試す(デモ)
本記事にはインタラクティブなデモを用意しています。Snipe-IT の資産登録・検索フローをシミュレートした簡易インターフェイスで、実際の操作イメージをブラウザ上で体験できます。資産タグ・カテゴリ・担当者などの情報を入力して「登録する」ボタンを押すと、登録済み資産の一覧が更新されます。実際のインストール前に操作感を確かめたい方はぜひお試しください。
実践: はじめの一歩でつまずかないコツ
Snipe-IT を使い始めるときに押さえておくと便利なポイントをまとめました。
- CSV のサンプルを雛形にする: 管理画面の「インポート」機能で一括登録するとき、同梱の
sample_csvs/assets-sample.csvを雛形として使うと、列の並び順を合わせる手間が省けます。 - API トークンを先に発行しておく: REST API(プログラム同士が情報をやり取りする仕組み)を使った自動登録やデータ取得には、管理画面でトークン(通行証のようなもの)を事前に発行する必要があります。
# API でアセット一覧を取得する例
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
https://your-snipeit.example.com/api/v1/hardware
- MDM ツールとの連携を検討する: jamf2snipe・Kandji2Snipe など、MDM(モバイルデバイス管理ツール)との連携スクリプトがコミュニティから多数提供されています。すでに MDM を使っている場合は、まずこれらを活用するのが近道です。
- Windows 環境からも操作できる: PowerShell 向けの SnipeitPS や .NET 向けの SnipeSharp など、Windows から Snipe-IT を操作できるライブラリも揃っています。コマンドラインに慣れた Windows 管理者にも使いやすい選択肢です。
- アクセシビリティテストが組み込まれている:
.pa11yci.jsonという設定ファイルが用意されており、障害のある方でも使いやすい設計かどうかを自動でチェックできる仕組みが最初から備わっています。
活用例
Snipe-IT はさまざまな現場で役立てられています。具体的なシーンを見てみましょう。
- PC の貸し出し・返却管理: 社員ごとのチェックアウト(貸し出し)・チェックイン(返却)を記録し、未返却の端末を一覧で把握できます。退職者からの資産回収漏れを防ぐのにも効果的です。
- ソフトウェアライセンスの監視: Adobe Creative Cloud や Microsoft 365 などのシート数(利用できる人数の枠)を登録し、割り当て済み・空き席の数をダッシュボードで常時確認できます。過剰購入や不足を事前に防げます。
- 減価償却レポートの自動化: 購入日・購入金額・耐用年数を入力しておくと帳簿価格が自動計算されます。CSV エクスポートで経理部門にそのまま提出でき、決算作業の負担を減らせます。
- MDM との自動連携: jamf や Kandji などのデバイス管理ツールと連携スクリプトを組み合わせて資産情報を自動同期し、手動入力の手間を大幅に省けます。台帳のリアルタイム更新が実現します。
- 学校・非営利団体の備品管理: タブレットや AV 機器など多種多様な備品を、部署・教室・担当者ごとに整理して管理できます。完全無償なので、予算が限られた組織でも導入しやすいのが魅力です。
用語とポイント解説
Snipe-IT を使いこなすために知っておくと便利な言葉をまとめました。
チェックアウト 資産を特定の社員・場所・別の資産に「貸し出す」操作のことです。かんたんに言うと「この PC は○○さんが使用中」と台帳に記録することです。貸し出し中は資産のステータスが変わり、誰が持っているかが一目でわかります。
チェックイン 貸し出した資産が返却されたときに行う「返却受付」の操作です。かんたんに言うと「PC が無事に戻ってきた」と台帳に記録することです。チェックインすると資産は再び「利用可能」な状態に戻ります。
REST API Web 経由でプログラム同士がデータをやり取りする仕組みです。かんたんに言うと「他のシステムや自作スクリプトから Snipe-IT のデータを読み書きできる窓口」です。curl や Python などのツールを使って、資産情報の取得・登録・更新を自動化できます。
SCIM(スキム) System for Cross-domain Identity Management の略で、複数のサービス間でユーザーアカウントを自動同期するための標準的なルールです。かんたんに言うと「Azure AD や Okta でアカウントを作ったら Snipe-IT にも自動で反映できる仕組み」です。入社・退職時のアカウント管理作業を大幅に削減できます。
減価償却 固定資産(長期間使う高額なもの)の購入費用を、使える年数にわたって少しずつ費用として計上する会計処理のことです。かんたんに言うと「100万円の機器を5年で使うなら、毎年20万円ずつ費用として記録する」考え方です。Snipe-IT では定額法による自動計算に対応しています。
コンポーネント PC に取り付けられる RAM(メモリ)や HDD(ハードディスク)など、資産の一部を構成する部品単位の在庫のことです。かんたんに言うと「PC 本体だけでなく、その中の部品も別々に管理できる」機能です。部品の残数や取り付け先の資産を記録しておけます。
消耗品 ケーブル・電池・トナーカートリッジなど、使うたびに減っていく数量管理が必要なアイテムです。かんたんに言うと「使ったら減るものの在庫」を管理できる機能です。残数が少なくなったタイミングで補充の判断がしやすくなります。
Laravel(ララベル) Snipe-IT のバックエンド(裏側の処理)を支える PHP 製の Web フレームワーク(開発の土台となる仕組み)です。かんたんに言うと「Snipe-IT を動かしているプログラムの基盤」です。Laravel 12 を採用しており、安定性とメンテナンス性が高い構成になっています。
Psalm(サーム) PHP コードを実行する前に問題を見つけられる静的解析ツールです。かんたんに言うと「プログラムを動かさなくても、コードの書き間違いや型のズレを自動でチェックしてくれる道具」です。Snipe-IT はこのツールを開発工程に組み込んでコード品質を維持しています。
pa11y(パリー)
Web サイトのアクセシビリティ(障害のある方でも使いやすい設計かどうか)を自動でテストするツールです。かんたんに言うと「スクリーンリーダーなどの支援技術を使う人が困らないかを自動確認する仕組み」です。Snipe-IT は .pa11yci.json によってアクセシビリティテストを継続的に実施しています。
Snipe-IT は完全無償でありながら、大規模な企業システムにも対応できる豊富な機能を備えています。REST API による他システム連携、SCIM を使ったアカウント自動同期、CSV での一括インポートなど、実務で必要とされる仕組みがひととおり揃っています。ぜひ PC・タブレットの貸し出し管理やソフトウェアライセンスのシート数監視などに活用してみてはいかがでしょうか。