2025-11-29 11:31:46 +09:00
|
|
|
|
# Knowledge Base
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
Markdown対応のナレッジベースアプリケーションです。Wiki風のリンク記法(`[[ページ名]]`)をサポートし、ドキュメント間の相互リンクを簡単に作成できます。
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
## 機能
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
- 📝 **Markdownエディタ** - リアルタイムプレビュー付きのドキュメント編集
|
|
|
|
|
|
- 🔗 **Wikiリンク** - `[[ページ名]]` 記法でドキュメント間リンクを作成
|
|
|
|
|
|
- 🔍 **クイックスイッチャー** - Ctrl+K (Cmd+K) で高速ドキュメント検索
|
|
|
|
|
|
- 📁 **階層構造** - フォルダ形式でドキュメントを整理(タイトルに `/` を含めると自動で階層化)
|
|
|
|
|
|
- 🌳 **サイドバーツリー** - 折りたたみ可能なドキュメントツリー
|
|
|
|
|
|
- 👥 **ユーザー管理** - 管理者によるユーザーのCRUD操作
|
|
|
|
|
|
- 🔒 **認証** - Laravel Breezeによるログイン/登録機能
|
|
|
|
|
|
- 🎨 **シンタックスハイライト** - コードブロックの自動ハイライト
|
2025-11-30 12:30:35 +09:00
|
|
|
|
- 🌐 **多言語対応** - 8言語サポート(ユーザーごとに言語設定可能)
|
|
|
|
|
|
|
|
|
|
|
|
## 対応言語
|
|
|
|
|
|
|
|
|
|
|
|
| 言語 | コード |
|
|
|
|
|
|
|------|--------|
|
|
|
|
|
|
| English | en |
|
|
|
|
|
|
| 日本語 | ja |
|
|
|
|
|
|
| Deutsch | de |
|
|
|
|
|
|
| Français | fr |
|
|
|
|
|
|
| Español | es |
|
|
|
|
|
|
| 简体中文 | zh-CN |
|
|
|
|
|
|
| 繁體中文 | zh-TW |
|
|
|
|
|
|
| 한국어 | ko |
|
2025-11-29 11:31:46 +09:00
|
|
|
|
|
|
|
|
|
|
## 技術スタック
|
|
|
|
|
|
|
|
|
|
|
|
- **Backend**: Laravel 11 + Livewire 3
|
|
|
|
|
|
- **Frontend**: Alpine.js + Tailwind CSS
|
|
|
|
|
|
- **Database**: MySQL 8.0
|
|
|
|
|
|
- **Server**: Nginx + PHP-FPM 8.2
|
|
|
|
|
|
|
|
|
|
|
|
## Docker構成
|
|
|
|
|
|
|
|
|
|
|
|
| サービス | コンテナ名 | ポート | 説明 |
|
|
|
|
|
|
|---------|-----------|--------|------|
|
|
|
|
|
|
| Nginx | kb_nginx | 9700 | Webサーバー |
|
|
|
|
|
|
| PHP | kb_php | - | PHP-FPM + Composer + Node.js |
|
|
|
|
|
|
| MySQL | kb_mysql | 9702 | データベース |
|
|
|
|
|
|
| phpMyAdmin | kb_phpmyadmin | 9701 | DB管理ツール |
|
|
|
|
|
|
| MailHog | kb_mailhog | 9725 | メールテスト(SMTP: 1025) |
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
## ディレクトリ構成
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
.
|
|
|
|
|
|
├── docker/
|
|
|
|
|
|
│ ├── nginx/
|
|
|
|
|
|
│ │ └── default.conf
|
|
|
|
|
|
│ ├── php/
|
|
|
|
|
|
│ │ ├── Dockerfile
|
|
|
|
|
|
│ │ └── php.ini
|
|
|
|
|
|
│ └── mysql/
|
|
|
|
|
|
│ └── my.cnf
|
|
|
|
|
|
├── src/
|
2025-11-29 11:31:46 +09:00
|
|
|
|
│ ├── app/
|
|
|
|
|
|
│ │ ├── Console/Commands/ # Artisanコマンド
|
|
|
|
|
|
│ │ ├── Http/Controllers/ # コントローラー
|
|
|
|
|
|
│ │ ├── Livewire/ # Livewireコンポーネント
|
|
|
|
|
|
│ │ ├── Models/ # Eloquentモデル
|
|
|
|
|
|
│ │ └── Services/ # ビジネスロジック
|
2025-11-30 12:30:35 +09:00
|
|
|
|
│ ├── lang/ # 言語ファイル(i18n)
|
2025-11-29 11:31:46 +09:00
|
|
|
|
│ ├── resources/views/
|
|
|
|
|
|
│ │ ├── layouts/ # レイアウト
|
|
|
|
|
|
│ │ ├── livewire/ # Livewireビュー
|
|
|
|
|
|
│ │ └── admin/ # 管理画面
|
|
|
|
|
|
│ └── routes/
|
|
|
|
|
|
│ └── web.php # ルーティング
|
|
|
|
|
|
├── compose.yml
|
|
|
|
|
|
└── README.md
|
2025-11-29 09:41:38 +09:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
## セットアップ
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### 1. リポジトリのクローン
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-11-29 11:31:46 +09:00
|
|
|
|
git clone <repository-url>
|
|
|
|
|
|
cd knowledge-base
|
2025-11-29 09:41:38 +09:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### 2. 環境変数の設定
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cp src/.env.example src/.env
|
|
|
|
|
|
```
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
`src/.env` を編集:
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
```env
|
|
|
|
|
|
DB_CONNECTION=mysql
|
2025-11-29 11:31:46 +09:00
|
|
|
|
DB_HOST=kb_mysql
|
2025-11-29 09:41:38 +09:00
|
|
|
|
DB_PORT=3306
|
|
|
|
|
|
DB_DATABASE=laravel
|
2025-11-29 11:31:46 +09:00
|
|
|
|
DB_USERNAME=root
|
|
|
|
|
|
DB_PASSWORD=root
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
MAIL_MAILER=smtp
|
2025-11-29 11:31:46 +09:00
|
|
|
|
MAIL_HOST=kb_mailhog
|
2025-11-29 09:41:38 +09:00
|
|
|
|
MAIL_PORT=1025
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### 3. Dockerコンテナの起動
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker compose up -d
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 依存関係のインストール
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Composer
|
|
|
|
|
|
docker exec kb_php composer install
|
|
|
|
|
|
|
|
|
|
|
|
# npm
|
|
|
|
|
|
docker exec kb_php npm install
|
|
|
|
|
|
docker exec kb_php npm run build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5. データベースのセットアップ
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-11-29 11:31:46 +09:00
|
|
|
|
# マイグレーション
|
|
|
|
|
|
docker exec kb_php php artisan migrate
|
|
|
|
|
|
|
2025-11-29 11:40:08 +09:00
|
|
|
|
# 初期データの投入(管理者ユーザー + 初期ドキュメント)
|
|
|
|
|
|
docker exec kb_php php artisan db:seed
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
個別にシーダーを実行する場合:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 管理者ユーザーのみ
|
2025-11-29 11:31:46 +09:00
|
|
|
|
docker exec kb_php php artisan db:seed --class=UserSeeder
|
2025-11-29 11:40:08 +09:00
|
|
|
|
|
|
|
|
|
|
# 初期ドキュメントのみ
|
|
|
|
|
|
docker exec kb_php php artisan db:seed --class=DocumentSeeder
|
2025-11-29 09:41:38 +09:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### 6. 管理者の設定
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-11-29 11:31:46 +09:00
|
|
|
|
# 既存ユーザーを管理者に設定
|
|
|
|
|
|
docker exec kb_php php artisan user:set-admin admin@example.com
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
# 管理者権限を削除する場合
|
|
|
|
|
|
docker exec kb_php php artisan user:set-admin admin@example.com --remove
|
2025-11-29 09:41:38 +09:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## アクセスURL
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
| サービス | URL |
|
|
|
|
|
|
|---------|-----|
|
|
|
|
|
|
| アプリケーション | http://localhost:9700 |
|
|
|
|
|
|
| phpMyAdmin | http://localhost:9701 |
|
|
|
|
|
|
| MailHog | http://localhost:9725 |
|
|
|
|
|
|
|
2025-11-29 11:40:08 +09:00
|
|
|
|
## 初期データ
|
|
|
|
|
|
|
|
|
|
|
|
### 初期アカウント
|
2025-11-29 11:31:46 +09:00
|
|
|
|
|
|
|
|
|
|
UserSeederを実行した場合:
|
|
|
|
|
|
- **Email**: admin@example.com
|
|
|
|
|
|
- **Password**: password
|
2025-11-29 11:40:08 +09:00
|
|
|
|
- **権限**: 管理者
|
|
|
|
|
|
|
|
|
|
|
|
### 初期ドキュメント
|
|
|
|
|
|
|
|
|
|
|
|
DocumentSeederを実行すると以下のドキュメントが作成されます:
|
|
|
|
|
|
|
|
|
|
|
|
| ドキュメント | 内容 |
|
|
|
|
|
|
|------------|------|
|
|
|
|
|
|
| Home | ホームページ(ウェルカムメッセージ、機能紹介) |
|
|
|
|
|
|
| Getting Started | 使い方ガイド(ドキュメント作成、Wikiリンク、ショートカット) |
|
|
|
|
|
|
| Markdown Guide | Markdown記法ガイド(見出し、リスト、コード、テーブル等) |
|
|
|
|
|
|
|
|
|
|
|
|
※ 既存のドキュメントがある場合、DocumentSeederはスキップされます。
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-30 12:30:35 +09:00
|
|
|
|
## 本番環境へのデプロイ
|
|
|
|
|
|
|
|
|
|
|
|
### ⚠️ 重要: サブドメインを使用してください
|
|
|
|
|
|
|
|
|
|
|
|
このアプリケーションは **サブドメイン** でのデプロイを推奨します。
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
✅ 推奨: kb.example.com
|
|
|
|
|
|
❌ 非推奨: example.com/kb (サブディレクトリ)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**理由**: Livewire 3はサブディレクトリデプロイに完全対応していません。`/livewire/update` エンドポイントがサブディレクトリを考慮しないため、AJAX通信が失敗します。
|
|
|
|
|
|
|
|
|
|
|
|
### デプロイ手順
|
|
|
|
|
|
|
|
|
|
|
|
1. **サブドメインのDNS設定**
|
|
|
|
|
|
```
|
|
|
|
|
|
kb.example.com → サーバーIPアドレス
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. **Webサーバー設定**(nginx例)
|
|
|
|
|
|
```nginx
|
|
|
|
|
|
server {
|
|
|
|
|
|
listen 80;
|
|
|
|
|
|
server_name kb.example.com;
|
|
|
|
|
|
root /var/www/knowledge-base/src/public;
|
|
|
|
|
|
|
|
|
|
|
|
index index.php;
|
|
|
|
|
|
|
|
|
|
|
|
location / {
|
|
|
|
|
|
try_files $uri $uri/ /index.php?$query_string;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
location ~ \.php$ {
|
|
|
|
|
|
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
|
|
|
|
|
|
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
|
|
|
|
|
include fastcgi_params;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. **環境変数の設定**
|
|
|
|
|
|
```env
|
|
|
|
|
|
APP_URL=https://kb.example.com
|
|
|
|
|
|
APP_ENV=production
|
|
|
|
|
|
APP_DEBUG=false
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. **本番用の最適化**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
php artisan config:cache
|
|
|
|
|
|
php artisan route:cache
|
|
|
|
|
|
php artisan view:cache
|
|
|
|
|
|
php artisan optimize
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-29 09:41:38 +09:00
|
|
|
|
## よく使うコマンド
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-11-29 11:31:46 +09:00
|
|
|
|
# コンテナ操作
|
|
|
|
|
|
docker compose up -d # 起動
|
|
|
|
|
|
docker compose down # 停止
|
|
|
|
|
|
docker compose restart # 再起動
|
|
|
|
|
|
docker compose logs -f # ログ確認
|
|
|
|
|
|
|
|
|
|
|
|
# PHPコンテナ内でコマンド実行
|
|
|
|
|
|
docker exec kb_php php artisan [command]
|
|
|
|
|
|
docker exec kb_php composer [command]
|
|
|
|
|
|
docker exec kb_php npm [command]
|
|
|
|
|
|
|
|
|
|
|
|
# コンテナに入る
|
|
|
|
|
|
docker exec -it kb_php bash
|
2025-11-30 12:30:35 +09:00
|
|
|
|
|
|
|
|
|
|
# キャッシュクリア
|
|
|
|
|
|
docker exec kb_php php artisan config:clear
|
|
|
|
|
|
docker exec kb_php php artisan route:clear
|
|
|
|
|
|
docker exec kb_php php artisan view:clear
|
|
|
|
|
|
docker exec kb_php php artisan cache:clear
|
2025-11-29 11:31:46 +09:00
|
|
|
|
```
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
## 管理者機能
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
管理者(`is_admin = true`)は以下の機能にアクセスできます:
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
- **ユーザー管理** (`/admin/users`)
|
|
|
|
|
|
- ユーザー一覧表示
|
|
|
|
|
|
- 新規ユーザー作成
|
|
|
|
|
|
- ユーザー編集(名前、メール、パスワード、管理者権限)
|
|
|
|
|
|
- ユーザー削除
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
管理者はログイン後ダッシュボードへ、一般ユーザーはフロントページへリダイレクトされます。
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
## ドキュメントの作成
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### 基本的な使い方
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
1. サイドバーの「New Document」をクリック
|
|
|
|
|
|
2. タイトルとMarkdownコンテンツを入力
|
|
|
|
|
|
3. 保存
|
|
|
|
|
|
|
|
|
|
|
|
### 階層構造の作成
|
|
|
|
|
|
|
|
|
|
|
|
タイトルに `/` を含めると自動的に階層化されます:
|
|
|
|
|
|
|
|
|
|
|
|
- `Laravel/Livewire/Components` → `Laravel/Livewire/` フォルダ内に作成
|
|
|
|
|
|
- `git/認証設定` → `git/` フォルダ内に作成
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### Wikiリンク
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
`[[ページ名]]` 記法でリンクを作成できます:
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
詳細は [[Getting Started]] を参照してください。
|
|
|
|
|
|
[[Laravel/Livewire/Components]] も確認してください。
|
|
|
|
|
|
```
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
2025-11-30 12:30:35 +09:00
|
|
|
|
## 言語設定
|
|
|
|
|
|
|
|
|
|
|
|
ユーザーは「プロフィール」ページから使用言語を変更できます。
|
|
|
|
|
|
|
|
|
|
|
|
1. 右上のユーザー名をクリック
|
|
|
|
|
|
2. 「プロフィール」を選択
|
|
|
|
|
|
3. 「言語設定」セクションで言語を選択
|
|
|
|
|
|
4. 「保存」をクリック
|
|
|
|
|
|
|
2025-11-29 09:41:38 +09:00
|
|
|
|
## トラブルシューティング
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### パーミッションエラー
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-11-29 11:31:46 +09:00
|
|
|
|
docker exec kb_php chmod -R 775 storage bootstrap/cache
|
|
|
|
|
|
docker exec kb_php chown -R www-data:www-data storage bootstrap/cache
|
2025-11-29 09:41:38 +09:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
### コンテナが起動しない
|
2025-11-29 09:41:38 +09:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-11-29 11:31:46 +09:00
|
|
|
|
docker compose down --remove-orphans
|
|
|
|
|
|
docker compose up -d
|
2025-11-29 09:41:38 +09:00
|
|
|
|
```
|
2025-11-29 11:31:46 +09:00
|
|
|
|
|
|
|
|
|
|
### Nginxがエラーで停止する
|
|
|
|
|
|
|
|
|
|
|
|
`docker/nginx/default.conf` の `fastcgi_pass` が `kb_php:9000` になっているか確認してください。
|
|
|
|
|
|
|
|
|
|
|
|
### データベース接続エラー
|
|
|
|
|
|
|
|
|
|
|
|
`src/.env` の `DB_HOST` が `kb_mysql` になっているか確認してください。
|
|
|
|
|
|
|
2025-11-30 12:30:35 +09:00
|
|
|
|
### Livewireのエラー(本番環境)
|
|
|
|
|
|
|
|
|
|
|
|
「404 /livewire/update」エラーが出る場合は、サブディレクトリではなくサブドメインでデプロイしてください。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# キャッシュをクリア
|
|
|
|
|
|
php artisan config:clear
|
|
|
|
|
|
php artisan route:clear
|
|
|
|
|
|
php artisan cache:clear
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-29 11:31:46 +09:00
|
|
|
|
## ライセンス
|
|
|
|
|
|
|
|
|
|
|
|
MIT License
|