AssetHub ドキュメント

よくある質問

最安の Hostinger Single プランで AssetHub を実行できますか?

はい — AssetHub は Hostinger Single (~$2.99/月) と完全互換です。Single には PHP 8.3、MySQL、ネイティブ Cron Jobs、無料 SSL が含まれており、AssetHub に必要なものはすべて揃っています。SSH、Composer、コマンドラインは不要です。ステップバイステップガイドは Hostinger セットアップ セクションをご覧ください。

インストールに技術スキルは必要ですか?

いいえ。Web ベースのインストーラーがすべてを処理します:要件チェック、データベース設定、マイグレーション、管理者アカウント作成。ファイルをアップロードし、ブラウザで /install にアクセスして、ウィザードに従うだけです。

予約メール (保証/メンテナンスアラート) はどのように動作しますか?

AssetHub は Laravel のスケジューラを使用します。毎分実行される 1 つの cron job を設定するだけで、Laravel が内部で各タスクを正しい時刻 (毎日 08:00、毎月など) にディスパッチします。Hostinger では hPanel → 高度な設定 → Cron Jobs で設定します。ホスティングに cron がない場合は、アプリ内の Cron URL と無料サービス cron-job.org を使用してください。

どの減価償却方法がサポートされていますか?

3 つの方法:定額法 (年次均等償却)、定率法 (加速、税務目的で一般的)、生産高比例法 (使用量ベース、製造機器向け)。資産価値は毎月 1 日に自動更新されます。

QR スキャナーは携帯電話で動作しますか?

はい — html5-qrcode 経由でブラウザのカメラを使用し、あらゆる最新のモバイル/タブレット/デスクトップブラウザで動作します。唯一の要件は HTTPS です。Hostinger は Let's Encrypt 経由で無料 SSL を提供しているため、すぐに動作します。

コーディングなしで独自のフィールドを追加できますか?

はい。管理者 → カスタムフィールド で無制限の属性 (テキスト、数値、日付、選択、テキストエリア、ファイル、チェックボックス) を追加でき、特定のカテゴリに限定し、必須としてマークし、ドラッグ&ドロップで並べ替えることが可能です — すべて UI から。

AssetHub はいくつの言語をサポートしていますか?

10 言語が標準搭載:英語、ベトナム語、スペイン語、フランス語、ドイツ語、中国語、日本語、ポルトガル語 (BR)、ロシア語、アラビア語 (完全な RTL サポート付き)。翻訳は 管理者 → Translations から編集できます。

概要

AssetHub は Laravel 11、Vue 3、Tailwind CSS で構築された完全な IT 資産管理システムです。組織が機器のライフサイクルを追跡し、割り当てを管理し、メンテナンスをスケジュールし、減価償却を計算し、詳細なレポートを生成するのに役立ちます。

QR コード追跡

すべての資産に QR コードを自動生成。ブラウザのカメラでスキャン。

減価償却

3 つの方法:定額法、定率法、生産高比例法。

カスタムフィールド

無制限のカスタム属性 — テキスト、日付、選択、ファイル、チェックボックス。

Webhook

HMAC 署名と自動再試行を備えた 15 種類のイベントタイプ。

監査ログ

すべての変更を完全な diff ビューア付きで記録。

レポート

チャート付きの 8 つのレポート、Excel と PDF へのエクスポート。

サーバー要件

  • PHP 8.2 以上
  • MySQL 5.7+ または MariaDB 10.3+
  • Composer 2.x
  • Node.js 18+ と npm 9+
  • Web サーバー:Apache または Nginx

必須の PHP 拡張

  • OpenSSL, PDO, PDO_MySQL, Mbstring, Tokenizer, XML, Ctype, JSON, GD, Fileinfo

ディスク容量

最低 ~ 200 MB。資産写真とドキュメント添付用に追加スペースを確保してください。

インストール

オプション A — Web インストーラー (推奨)

  1. プロジェクトファイルを Web サーバーにアップロードします。
  2. ドメインの document root を public/ に向けます。
  3. 権限を設定:storage/bootstrap/cache/ は書き込み可能でなければなりません (chmod 775)。
  4. .env.example.env にコピーし、php artisan key:generate を実行します。
  5. ブラウザで https://yourdomain.com/install にアクセスします。
  6. ウィザードに従います — Requirements → Database → Migrate → Admin Account → Done。

オプション B — CLI インストール

# 1. 依存関係をインストール
composer install --no-dev --optimize-autoloader
npm install
npm run build

# 2. 環境を設定
cp .env.example .env
php artisan key:generate

# 3. .env を編集して DB 認証情報を設定
# DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD

# 4. データベーステーブルを作成し、初期データを seed
php artisan migrate --seed

# 5. アップロード用 storage シンボリックリンクを作成
php artisan storage:link

# 6. 本番用に設定をキャッシュ
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 7. インストール済みとしてマーク
echo "Installed" > storage/installed.lock
Web サーバー構成:Document root は public/ ディレクトリを指している必要があります。Apache の場合、同梱の .htaccess が URL リライトを処理します。Nginx の場合は Laravel デプロイガイド を参照してください。

Wizard Step 2 — Database Configuration

When the wizard reaches Step 2, you must enter the MySQL connection details for the database you created in your hosting panel. The database must already exist (it can be empty — the next wizard step will create the tables).

FieldDefault / ExampleNotes
Host127.0.0.1Works on 99% of shared hosts (Hostinger, cPanel, Plesk). Keep this default unless your hosting provides a custom MySQL hostname (managed DB services like AWS RDS, DigitalOcean Managed Database).
Port3306Standard MySQL port. Only change if your provider uses a non-standard port (rare).
Database nameuXXXXXX_assethubThe full name shown in your hosting panel. Most shared hosts prefix it with your user ID (e.g. Hostinger: u287094729_assethub).
UsernameuXXXXXX_assethubMySQL user with permissions on the database above. Do not use root — shared hosts don't allow it.
Password(your DB password)The password you set or copied when creating the MySQL user. Most hosts show it once on creation — use "View / Reset" if you didn't save it.

Where to find these credentials by hosting panel

  • Hostinger: hPanel → Databases → Management → click your database. The page shows name, username, and a "Show password" button.
  • cPanel: cPanel → MySQL Databases. The database list shows names; users are listed below. Use "Change Password" if needed.
  • Plesk: Plesk → Databases → click the database name. The detail page shows credentials and offers a password reset.
  • DirectAdmin: DirectAdmin → MySQL Management → click the database. Credentials and password reset are on the database detail page.
  • External / managed DB: AWS RDS, DigitalOcean Managed Database, etc. Use the custom hostname, port (often 3306 but verify), DB name, user, and password from your cloud console. Make sure the server's IP is whitelisted in the DB firewall.

Common errors and how to fix them

Error messageCause and fix
SQLSTATE[HY000] [1045] Access deniedWrong username or password, or the user doesn't have access to this database. Double-check spelling (including the user prefix on shared hosts). Reset the password in the hosting panel if unsure.
SQLSTATE[HY000] [1049] Unknown databaseThe database name is wrong, or you haven't created the database yet in your hosting panel. Create it first, then re-enter the exact name (including any prefix).
SQLSTATE[HY000] [2002] Connection refusedThe MySQL server can't be reached. Verify Host and Port. On shared hosts try localhost instead of 127.0.0.1 or vice versa. For managed DBs, make sure your server IP is whitelisted.
SQLSTATE[42S02] Base table not found: sessionsHappens when SESSION_DRIVER=database or CACHE_STORE=database is set in .env before the tables exist. Edit .env and change both to file, save, then reload the wizard. You can switch back to database after install if you prefer.
could not find driverPHP pdo_mysql extension is missing or disabled. Enable it in your hosting panel (PHP Configuration → Extensions). On Hostinger: hPanel → Advanced → PHP Configuration → PHP Extensions tab.
Tip: The Host and Port fields are pre-filled with the most common values (127.0.0.1 and 3306) — leave them as-is on shared hosting. You only need to type Database name, Username, and Password. Click Test & Save → to verify the connection and move to Step 3.

ローカルホスト (ローカル開発)

本番環境にデプロイする前のテストや開発のために、AssetHub をご自身のコンピュータで動かすためのクイックガイドです。お使いの OS に合った環境を選択してください。

推奨:Laravel Herd は macOS と Windows で最も速い方法です — Docker 不要、Apache/MySQL の手動設定不要。従来のスタックを好む場合は、XAMPP や Laragon も良い無料の代替手段です。

オプション 1 — Laravel Herd (推奨、macOS & Windows)

Laravel Herd は Laravel チームによる公式ローカル環境です — 無料、ネイティブ、Docker 不要。PHP 8.2/8.3/8.4、Nginx、(Herd Pro では) MySQL/Redis を同梱。

  1. herd.laravel.com から Laravel Herd をダウンロードしてインストールします。
  2. AssetHub プロジェクトフォルダを ~/Herd/ (macOS) または %USERPROFILE%\Herd\ (Windows) に配置します。Herd が .test ドメインを自動作成します — 例:http://assethub.test
  3. Herd → Sites を開き、PHP バージョンが 8.2 または 8.3 であることを確認します。サイトを右クリック → Secure で HTTPS を有効化 (QR スキャナーに必要)。
  4. MySQL データベースを作成します。Herd Pro なら Services → MySQL → Open in TablePlus を使用。それ以外は MySQL Community をインストールするか、SQLite を使用 (DB_CONNECTION=sqlitetouch database/database.sqlite)。
  5. .env.example.env にコピーし、DB 認証情報を入力し、プロジェクトルートで php artisan key:generate を実行します。
  6. ブラウザで http://assethub.test/install を開き、インストーラーウィザードに従います。

オプション 2 — XAMPP (Windows、macOS、Linux)

XAMPP は Apache、MySQL/MariaDB、PHP をバンドルしています。無料でクロスプラットフォーム。PHP 8.2 以上のバージョンを選択してください。

  1. apachefriends.org から XAMPP 8.2+ をダウンロードしてインストール。
  2. AssetHub プロジェクトを C:\xampp\htdocs\AssetHub\ (Windows) または /Applications/XAMPP/htdocs/AssetHub/ (macOS) にコピー。
  3. XAMPP Control Panel を開き、ApacheMySQL を起動。ポートが使用中の場合は Config → service.conf で Apache を 8080 に切り替えます。
  4. http://localhost/phpmyadmin へ → 新規作成assethub という名前のデータベースを utf8mb4 照合順序で作成。
  5. プロジェクトフォルダで:.env.example.env にコピー、DB_DATABASE=assethubDB_USERNAME=root を設定、DB_PASSWORD は空のまま (XAMPP デフォルト)。php artisan key:generate を実行。
  6. http://localhost/AssetHub/public/install にアクセスしてインストーラーウィザードを実行。
/public/ なしの綺麗な URL:C:\xampp\apache\conf\extra\httpd-vhosts.conf でバーチャルホストを作成し、DocumentRoot をプロジェクトの public/ フォルダに指定。続けて hosts ファイルに 127.0.0.1 assethub.local を追加します。

オプション 3 — Laragon (Windows)

Laragon は Laravel 向けに設計されたポータブル Windows スタック — 自動 vhost、綺麗な URL、MySQL/MariaDB、同梱の HeidiSQL。

  1. laragon.org から Laragon Full をダウンロードしてインストール。
  2. Laragon で:メニュー → PHP → VersionPHP 8.2 または 8.3 に切り替え。
  3. AssetHub プロジェクトを C:\laragon\www\AssetHub\ にコピー。
  4. Start All をクリック。Laragon が自動で vhost を作成:http://assethub.test (public/ フォルダを指す)。
  5. HeidiSQL (同梱) を開く → データベース assethub を作成。デフォルト認証情報:ユーザー root、パスワードは空。
  6. .env に DB 認証情報を編集、php artisan key:generate を実行、続けて http://assethub.test/install にアクセス。

オプション 4 — 組み込み PHP サーバー (Web サーバー不要)

最もシンプルなオプション:Laravel には artisan serve が同梱され、開発用 PHP サーバーを起動します。Apache や Nginx は不要。クイックテストに最適。

# 依存関係をインストールして設定
cd /path/to/AssetHub
composer install
cp .env.example .env
php artisan key:generate

# マイグレーションを実行して初期データをシード
php artisan migrate --seed

# 開発サーバーを起動
php artisan serve
# アクセス先: http://127.0.0.1:8000/install

ローカルホスト共通の落とし穴

http:// では QR スキャナーがカメラを開けない

ブラウザのカメラ API は HTTPS を要求しますが、例外があります:http://localhosthttp://127.0.0.1 はセキュアコンテキストとして扱われます。LAN IP (例:http://192.168.1.10) 経由で AssetHub にアクセスすると、カメラは拒否されます。開発には localhost を使用するか、Herd / mkcert で HTTPS を有効化してください。

storage の Permission denied (macOS / Linux)

アプリがログやキャッシュを書き込もうとしてエラーが出る場合、権限を修正:chmod -R 775 storage bootstrap/cache。Windows では通常不要です。

ポートが既に使用中

ポート 8000 が他のアプリに使われている場合、別のポートを使用:

php artisan serve --port=8001

ローカルでメールをテスト

ほとんどのローカルホスト構成では実 SMTP は利用できません。安全な 2 つのオプション:(1) .envMAIL_MAILER=log を設定 — メールは送信される代わりに storage/logs/laravel.log にダンプされます。または (2) Mailtrap / MailHog を使用して送信メールを偽の受信箱でキャプチャ。

MAIL_MAILER=log
# すべてのメールは storage/logs/laravel.log に書き込まれます

フロントエンドアセット (Vite / Tailwind)

AssetHub の Vue/Tailwind フロントエンドはパッケージにビルド済みで含まれています。Vue コンポーネントや Tailwind 構成を編集する場合は Node.js 18+ が必要です:

npm install
npm run dev    # 開発中のホットリロード
npm run build  # 本番ビルド (デプロイ前に実行)

Hostinger Single (共有ホスティング) へのデプロイ

VPS や技術経験のないユーザーにとって、これが推奨パスです。AssetHub は最安の Hostinger Single Web Hosting プラン (~$2.99/月) と完全に互換性があります。SSH、Composer、コマンドラインは不要 — Single にはネイティブ cron jobs、PHP 8.3、無料 SSL が標準で含まれています。

テスト済み:Hostinger Single、Premium、Business プラン (PHP 8.2+、MySQL 5.7+、ネイティブ Cron Jobs はすべてのプランに含まれる)。

ステップ 1 — ホスティングの準備

  1. Hostinger hPanel にログインします。
  2. ドメインの ホスティング → 管理 に移動します。
  3. 高度な設定 → PHP 構成 で PHP バージョンを 8.2 または 8.3 に設定します。
  4. 次の PHP 拡張が有効になっていることを確認してください (通常はデフォルトで有効):
    • OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo

ステップ 2 — MySQL データベースの作成

  1. hPanel で データベース → MySQL Databases に移動します。
  2. 新規データベース作成 をクリックします。
  3. 次の 3 つの値をメモします:
    • データベース名 — 例 u123_AssetHub
    • ユーザー名 — 例 u123_admin
    • パスワード — 自動生成、大切に保管

ステップ 3 — ファイルのアップロード

  1. hPanel で ファイル → File Manager に移動します。
  2. public_html/ に移動します (これはドメインのルートです)。
  3. そのフォルダ内のデフォルトの index.htmldefault.php を削除します。
  4. ファイルアップロード をクリックし、パッケージ内の source.zip 全体をアップロードします。
    または、お好みであれば FTP 経由で /source/ フォルダの内容を直接アップロードしてもかまいません。
  5. ZIP をアップロードした場合は、右クリック → 展開。展開後、すべてのファイルは public_html/ のルートに配置される必要があります。
  6. public_html/ に次が含まれることを確認:app/public/vendor/.htaccessindex.php (public/ 内)、.env など。
重要:ファイル .htaccesspublic_html/ のルートに存在することを確認してください。URL リライトルールが含まれています。File Manager で隠しファイルが非表示の場合は、設定 → 隠しファイルを表示 をクリックします。

ステップ 4 — インストーラーの実行

  1. ブラウザを開き https://yourdomain.com/install にアクセスします。
  2. AssetHub Installer が表示されます。
  3. ステップ 1: Requirements — すべてのチェックがパス (緑) するはずです。失敗があれば、Hostinger サポートに連絡して不足している PHP 拡張を有効化します。
  4. ステップ 2: Database — 上記ステップ 2 の認証情報を入力します:
    • ホスト: localhost
    • ポート: 3306
    • データベース: u123_AssetHub
    • ユーザー名: u123_admin
    • パスワード:(Hostinger が生成したもの)
  5. ステップ 3: Migrate — "Run Migrations & Seed" をクリックします。約 10 秒かかります。リフレッシュしないでください。
  6. ステップ 4: Admin — 管理者アカウントを作成します。強力なパスワードを使用します。
  7. 完了! — Cron URL (保存してください!) とログインボタンが表示されます。

ステップ 5 — Hostinger Cron で自動メールアラートを設定

AssetHub は Laravel のスケジューラをバックグラウンドタスクに使用します:保証アラート、メンテナンスリマインダー、ドキュメント期限切れ、減価償却リフレッシュ、超過チェックアウト。hPanel で 1 つ の cron job を設定すると、Laravel がどのタスクをいつ実行するかを決定します。

  1. hPanel で 高度な設定 → Cron Jobs に移動します。
  2. Cron job 作成 をクリックします。
  3. タイプを選択:Custom ("PHP" ではなく — 引数を渡す必要があります)。
  4. コマンドに次を入力します (uXXXXXX を Hostinger アカウントのユーザー名に置き換えます):
    /usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run
    ヒント:File Manager を開き、artisan ファイル (プロジェクトのルート) を見つけ、右クリック → プロパティでフルパスをコピーします。
  5. スケジュールを 毎分 に設定 — 5 つのフィールドすべて (分、時、日、月、曜日) を * に設定。
  6. 保存 をクリックします。

これで完了 — AssetHub は超過チェックアウトのリマインダー、メンテナンスアラート、ドキュメント期限切れアラート、保証アラートを自動送信し、資産の減価償却値を自動更新します。Laravel が内部で各 job を正しい頻度 (毎日 08:00、毎月など) でスケジュールします。

Document root が public_html/public/ に設定?問題ありません — Laravel コードは依然として public_html/ のルートにあるため、cron パスは /home/uXXXX/public_html/artisan のままです (/public/ を追加しないでください)。
cron のないホスト向けのフォールバック:Hostinger を使用していないか、プロバイダーが cron jobs をサポートしていない場合、AssetHub は webhook トリガー URL も公開します。
  1. 管理者としてログイン → 設定 → システムタブ → Cron URL をコピーします。
  2. cron-job.org に無料で登録します。
  3. cronjob を作成し、URL を貼り付け、15 分ごと に設定して保存します。

ステップ 6 — メール (SMTP) の設定

Hostinger は各プランにメールアカウントを提供します。AssetHub の通知に使用するには:

  1. hPanel で メール → メールアカウント に移動し、1 つ作成します (例 noreply@yourdomain.com)。
  2. File Manager 経由で public_html/.env ファイルを編集します:
    MAIL_MAILER=smtp
    MAIL_HOST=smtp.hostinger.com
    MAIL_PORT=587
    MAIL_USERNAME=noreply@yourdomain.com
    MAIL_PASSWORD=your_email_password
    MAIL_ENCRYPTION=tls
    MAIL_FROM_ADDRESS=noreply@yourdomain.com
    MAIL_FROM_NAME="Your Company Name"
  3. ファイルを保存します。
  4. AssetHub にログイン → 設定 → メールタブ → テストメール送信。受信すれば完了です。
Single の SMTP 制限:Hostinger Single は 1 時間あたり ~100 通の送信メールを許可します。より大規模なデプロイには SendGrid、Mailgun、Postmark などの専用プロバイダーを使用してください (無料プランあり)。

Hostinger Single でのよくある問題

アップロード後の "500 Internal Server Error"

  • .htaccesspublic_html/ のルートに存在し、リライトルールが含まれていることを確認します。
  • hPanel で PHP バージョンが 8.2 または 8.3 に設定されていることを確認します。
  • 実際のエラーは File Manager 経由で storage/logs/laravel.log を確認します。

アップロード時の "Permission denied"

通常、Hostinger は正しい権限を設定しますが、そうでない場合:

  • File Manager で storage/ を右クリック → 権限 → 再帰的に 755 に設定します。
  • bootstrap/cache/ も同様に。

QR コードスキャナーがカメラを開かない

ブラウザのカメラ API には HTTPS が必要です。Hostinger は Let's Encrypt 経由で無料 SSL を提供しています — hPanel の SSL → 管理 で有効化します。

予約メールが送信されない

  • hPanel → Cron Jobs → cron エントリの Last run 列をチェックします。空の場合、cron が発火していません — artisan パスが正しいか確認します。
  • コマンドを手動でテスト:hPanel の ターミナル (利用可能な場合) を開き、cron コマンドを実行します。エラーが発生した場合、エラーメッセージが問題を特定します (PHP バージョン違い、パス違いなど)。
  • SMTP が正しく構成されていることを確認します (設定 → メール → テスト送信)。
  • スケジューラのエラーについて storage/logs/laravel.log をチェックします。

パフォーマンスが遅い

Hostinger Single は CPU/RAM が共有です。チームが 20 ユーザーを超える場合は、次を検討します:

  • Premium (~$3.99/月) へのアップグレード — より高速なサーバー、より多くのリソース、複数のデータベース。
  • または Business (~$5.99/月) — 専用リソース、毎日のバックアップ、ステージング環境。

設定

.env ファイル

キー説明
APP_NAMEタイトルバーに表示されるアプリ名AssetHub
APP_URLインストールの公開 URLhttps://assets.example.com
APP_DEBUG本番では false に設定false
DB_*データベース接続詳細mysql, 127.0.0.1, 3306, ...
MAIL_MAILERメールドライバsmtp, log, mailgun
MAIL_HOSTSMTP サーバーのホスト名smtp.gmail.com
MAIL_PORTSMTP ポート587
MAIL_USERNAMESMTP ユーザー名your@email.com
MAIL_PASSWORDSMTP パスワードまたはアプリトークン**********
MAIL_FROM_ADDRESSデフォルトの From アドレスnoreply@example.com

アプリ内設定

ほとんどの機密でないオプションは 管理者 → 設定 から構成できます:

  • 一般:会社名/メール/電話、asset tag プレフィックス
  • メール:SMTP を確認するためのテストメール送信
  • 通知:保証アラートのしきい値、メンテナンスリマインダーウィンドウ
  • ローカライゼーション:タイムゾーン、日付形式、通貨

多言語サポート

AssetHub には RTL アラビア語を含む 10 言語が初期搭載されています。ユーザーは右上のフラッグドロップダウンで言語を切り替えます。

搭載言語

コード言語方向
enEnglish (default)LTR
viTiếng ViệtLTR
esEspañolLTR
frFrançaisLTR
deDeutschLTR
zh简体中文LTR
ja日本語LTR
pt-BRPortuguês (Brasil)LTR
ruРусскийLTR
arالعربيةRTL

言語の切り替え方法

  1. 右上のフラッグアイコンをクリックしてドロップダウンを開きます。
  2. リストから言語を選択します。
  3. ページがリロードされ、すべての UI ラベル、日付、通貨フォーマットが切り替わります。
  4. 選択はユーザーアカウントと Cookie(1 年間)の両方に保存されます。
アプリの .html ファイルを直接開かないでください。 AssetHub は Laravel + Vue のサーバーサイドアプリです — 言語切り替えは /locale/{code} に POST し、PHP サーバーが動いているときだけ機能します。常に本番ドメイン(本番)または http://localhost:8000(php artisan serve で開発)からアクセスしてください。一方、このようなドキュメントファイルは完全にスタンドアロンで直接開くことができます。

カスタム言語の追加(管理者)

管理者 → 設定 → 翻訳:

  • "ロケール追加" をクリック — コード(例:タイ語は th)、表示名、ネイティブ名、フラッグ、方向、翻訳をコピーするベースロケールを指定します。
  • 翻訳エディターでインライン編集、または CSV インポート/エクスポートで編集します。
  • DB に保存された翻訳はファイルの翻訳を自動的に上書きします。

ユーザーごとのデフォルトロケール

各ユーザーには locale 列があります。Laravel の HasLocalePreference 契約のおかげで、メール通知は受信者の希望言語で自動送信されます。

機能一覧

資産管理

  • 自動生成 asset tag
  • 資産ごとに複数の画像
  • QR コード生成
  • ステータスと状態の追跡
  • 一括インポート/エクスポート
  • 資産の複製

ワークフロー

  • 割り当て / 返却 / 移転
  • 承認ベースのリクエスト
  • Check-in / Check-out 予約
  • 競合検出

メンテナンス

  • 予防/是正のスケジュール
  • カレンダー表示
  • 次回を自動スケジュール
  • コスト追跡
  • メールリマインダー

ドキュメント

  • 請求書、マニュアルを添付
  • インラインプレビュー
  • 期限切れアラート
  • 複数のドキュメントタイプ

減価償却

  • 3 つの計算方法
  • 値の自動更新
  • スケジュールチャート
  • 年次サマリー

レポート

  • 8 種類のレポート
  • Excel + PDF エクスポート
  • チャートとダッシュボード
  • 日付フィルタ

ユーザーと役割

AssetHub には 5 つの事前構成済み役割が付属しています:

役割権限
Adminシステム完全アクセス — ユーザー、部門、設定、監査ログ、Webhook、翻訳
IT マネージャー資産、カテゴリ、メンテナンス、リクエストを管理;移転を承認;レポートと減価償却を表示
会計担当資産と減価償却を管理、在庫監査を実行、移転を承認、レポートへのフルアクセス (財務重視)
スーパーバイザー部門リクエストを承認、チェックアウトを管理、在庫監査に参加、レポートを表示
従業員割り当てられた資産を表示、リクエストを作成、自身のチェックアウトを管理

権限は Spatie 役割として保存されます — 管理者はデータベース経由で権限ごとに微調整できます。

資産管理

資産の作成

  1. 資産 → 新規資産 に移動します。
  2. 名前、カテゴリ、ブランド、モデル、シリアル番号を入力します。
  3. 購入日と価格を追加します (減価償却に必要)。
  4. 画像をアップロードします (複数ファイル対応、各 5 MB まで)。
  5. 保存 — asset tag と QR コードが自動生成されます。

Asset Tag フォーマット

デフォルト:{PREFIX}-{YEAR}-{NNNN}、例 AS-2026-0001設定 → 一般 → Asset Tag プレフィックス で構成可能。

一括インポート

  1. 資産ページで インポート をクリックします。
  2. Excel テンプレートをダウンロードします。
  3. データを入力します — 必須列:namecategory_name
  4. ファイルをアップロードします。

QR コード

すべての資産は作成時に自動的に QR コードを受け取ります。QR は資産の URL をエンコードしているため、スキャンすると資産詳細ページに直接移動します。

ラベルの印刷

  • 単一ラベル:任意の資産行のプリンターアイコンをクリックします。
  • PDF 形式:A4、1 行あたり 2 ラベル、asset tag、名前、ブランド、シリアルを含む。

スキャン

資産ページで QR スキャン をクリックします。カメラ権限を許可します。スキャナーは html5-qrcode を使用し、あらゆる最新ブラウザで動作します。注意:カメラアクセスには HTTPS または localhost が必要です。

ワークフロー

資産の割り当て

  1. 資産詳細ページを開きます。
  2. 割り当て をクリック (資産が利用可能な場合に表示)。
  3. ユーザー、任意の返却日、メモを選択します。
  4. 送信 — トランザクションが作成され、メール通知が送信されます。

資産リクエスト

従業員は必要な資産のリクエストを送信できます。リクエストには 4 つのステータスがあります:pending → approved → fulfilled、または rejected。承認メールは自動的に送信されます。

Check-in / Check-out

共有資産 (カメラ、プロジェクター、車両) 向け。予約には日付範囲があり、システムが重複するチェックアウトを防ぎます。カレンダー表示ですべての予約を一目で確認できます。

減価償却

AssetHub は次の 3 つの方法のいずれかを使用して資産の減価償却を計算します:

方法公式使用例
定額法(Cost - Salvage) / Useful Life最も一般的;年次均等償却
定率法2 / Useful Life × Book Value加速;税務目的
生産高比例法使用量ベース製造機器

デフォルトは資産のカテゴリから継承されます。スケジュールエントリは毎月生成されます。資産の current_value は毎月 1 日に自動的に更新されます。

カスタムフィールド

管理者 → カスタムフィールドで、資産に無制限のカスタム属性を追加できます:

  • タイプ:テキスト、数値、日付、選択 (ドロップダウン)、テキストエリア、ファイル、チェックボックス
  • 範囲:すべてのカテゴリまたは特定のカテゴリに適用
  • 並べ替え:グリップハンドルをドラッグ&ドロップ
  • 必須フィールドは資産保存時に検証されます

レポート

レポートメニューからアクセスできる 8 つの組み込みレポート:

  1. 資産サマリー — ステータス、状態、カテゴリ、部門別の合計
  2. 減価償却 — カテゴリ別の価値減少、最も減価償却された資産
  3. トランザクション — 時系列での割り当て、返却、移転活動
  4. メンテナンスコスト — 月、カテゴリ、タイプ別の支出
  5. 保証期限 — 30/60/180 日以内に対応が必要な資産
  6. 部門資産 — 部門別の資産分布と予算利用率
  7. ソース別資産 — 調達、プロジェクト、寄付、移転ソース間の分布
  8. 在庫監査サマリー — 定期監査サイクル全体の不一致

すべてのレポートはページヘッダーのボタン経由で ExcelPDF エクスポートをサポートします。

Webhook

AssetHub は主要なイベントで外部サービスに通知できます。

利用可能なイベント

  • asset.created, asset.updated, asset.deleted
  • asset.assigned, asset.returned, asset.transferred
  • request.created, request.approved, request.rejected, request.fulfilled
  • maintenance.scheduled, maintenance.started, maintenance.completed
  • checkout.created, checkout.returned

Payload フォーマット

{
  "event": "asset.assigned",
  "timestamp": "2026-05-05T08:00:00+00:00",
  "data": {
    "asset_id": 1,
    "asset_tag": "AS-2026-0001",
    "asset_name": "HP EliteDesk 800",
    "to_user_id": 4,
    "transaction_id": 12
  }
}

署名検証

secret が設定されている場合、リクエストには Payload body の HMAC-SHA256 を含むヘッダー X-AssetHub-Signature が含まれます。あなたの側で検証します:

$expected = hash_hmac('sha256', $rawBody, $secret);
if (hash_equals($expected, $request->header('X-AssetHub-Signature'))) {
  // 有効
}

再試行ポリシー

失敗した配信は 200 ms 遅延で 3 回再試行されます。連続 10 回失敗すると、webhook は自動的に無効化されます。

スケジュールタスク

AssetHub はバックグラウンドジョブに Laravel のスケジューラを使用します。必要なのは 1 つ の cron エントリだけ — Laravel が内部で各 job を適切な時刻にディスパッチします。

Hostinger / 共有ホスティング (hPanel Cron Jobs UI)

スクリーンショット風の手順は Hostinger セットアップ → ステップ 5 セクションを参照してください。要するに:高度な設定 → Cron Jobs → Custom、コマンド:

/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run

スケジュール:毎分 (5 つのフィールドすべてに *)。

VPS / 専用サーバー (crontab)

Web ユーザー (多くは www-data) として crontab -e を実行し、次を追加します:

* * * * * cd /path/to/AssetHub && php artisan schedule:run >> /dev/null 2>&1

フォールバック:外部 URL ピンガー

ホストに cron がまったくない場合、アプリ内の Cron URL (設定 → システムタブ) と cron-job.org (無料、15 分ごと) を使用します。

自動的に実行される job

時刻コマンド目的
毎日 08:00send-overdue-checkout-alerts超過チェックアウトのメールリマインダー
毎日 08:30send-maintenance-reminders今後のメンテナンスリマインダー
毎日 09:00send-document-expiry-alerts30/14/7/1 日後に期限切れのドキュメント
毎日 09:30send-warranty-alerts保証 + 保険期限切れアラート
毎日 10:00assethub:send-depreciation-end-alerts資産が耐用年数の終わりに達したときのアラート
毎日 10:30send-inventory-audit-reminders実施中の在庫監査のリマインダー
毎月 1 日 02:00update-asset-values減価償却から資産 current_value をリフレッシュ

トラブルシューティング

storage 上の "Permission denied"

chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

QR コードスキャナーがカメラを開かない

ブラウザのカメラ API には HTTPS が必要です。SSL 証明書をインストールするか、テストには localhost を使用します。

メールが届かない

storage/logs/laravel.log でエラーを確認します。SMTP 認証情報を確認するには 設定 → メール → テストメール送信 を使用します。SMTP サーバーが送信 IP を許可していることを確認してください。

インストールのリセット

storage/installed.lock を削除し、再度 /install にアクセスします。マイグレーションを再実行すると、既存のデータが消去されます。

パフォーマンス — 資産リストが遅い

php artisan optimize を実行して config、route、view をキャッシュします。MySQL に assets.asset_tagassets.serial_numberassets.status のインデックスがあることを確認します (マイグレーションで自動作成されます)。

変更履歴

v1.0.0 — 初回リリース (2026-05)

  • QR コード自動生成付き資産 CRUD
  • 詳細な権限を持つ 5 つのユーザー役割 (Admin、IT マネージャー、会計担当、スーパーバイザー、従業員)
  • 資産ソース追跡 (集中調達、分散調達、投資プロジェクト、寄付、内部移転)
  • メール通知付きの割り当て、返却ワークフロー
  • 権限ゲーティング付きの移転承認ワークフロー (pending → approved/rejected)
  • 資産リクエスト承認フロー
  • カレンダー表示付き Check-in/check-out
  • 自動更新付きのメンテナンススケジュール
  • 期限切れアラート付きのドキュメント添付
  • 3 つの計算方法 + 耐用年数終了アラート付き減価償却
  • 在庫監査モジュール — 不一致追跡付き定期棚卸し
  • 7 種類の入力タイプとドラッグ&ドロップソート付きカスタムフィールド
  • チャート、Excel および PDF エクスポート付き 8 つのレポート (ソース別資産、在庫監査サマリーを含む)
  • diff ビューア付き Spatie Activitylog 経由の監査ログ
  • HMAC 署名と自動再試行付き Webhook
  • 多言語 UI:10 ロケール (en、vi、es、fr、de、zh、ja、pt-BR、ru、RTL 対応 ar)
  • 会社、メール、通知、ローカライゼーション、翻訳の設定 UI
  • Web ベースのインストールウィザード
  • Emerald-Teal ブランドパレットのダークモード

クレジット

使用されているオープンソースライブラリ