Files
knowledge_base/README.md
Yutaka Kurosaki ecfa21d56c feat: Add DocumentSeeder with initial documents
- Add DocumentSeeder with Home, Getting Started, and Markdown Guide
- Update DatabaseSeeder to call UserSeeder and DocumentSeeder
- Update UserSeeder to set is_admin flag
- Update README with seeder documentation
2025-11-29 11:40:08 +09:00

6.8 KiB
Raw Blame History

Knowledge Base

Markdown対応のナレッジベースアプリケーションです。Wiki風のリンク記法[[ページ名]])をサポートし、ドキュメント間の相互リンクを簡単に作成できます。

機能

  • 📝 Markdownエディタ - リアルタイムプレビュー付きのドキュメント編集
  • 🔗 Wikiリンク - [[ページ名]] 記法でドキュメント間リンクを作成
  • 🔍 クイックスイッチャー - Ctrl+K (Cmd+K) で高速ドキュメント検索
  • 📁 階層構造 - フォルダ形式でドキュメントを整理(タイトルに / を含めると自動で階層化)
  • 🌳 サイドバーツリー - 折りたたみ可能なドキュメントツリー
  • 👥 ユーザー管理 - 管理者によるユーザーのCRUD操作
  • 🔒 認証 - Laravel Breezeによるログイン/登録機能
  • 🎨 シンタックスハイライト - コードブロックの自動ハイライト

技術スタック

  • 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

ディレクトリ構成

.
├── docker/
│   ├── nginx/
│   │   └── default.conf
│   ├── php/
│   │   ├── Dockerfile
│   │   └── php.ini
│   └── mysql/
│       └── my.cnf
├── src/
│   ├── app/
│   │   ├── Console/Commands/    # Artisanコマンド
│   │   ├── Http/Controllers/    # コントローラー
│   │   ├── Livewire/            # Livewireコンポーネント
│   │   ├── Models/              # Eloquentモデル
│   │   └── Services/            # ビジネスロジック
│   ├── resources/views/
│   │   ├── layouts/             # レイアウト
│   │   ├── livewire/            # Livewireビュー
│   │   └── admin/               # 管理画面
│   └── routes/
│       └── web.php              # ルーティング
├── compose.yml
└── README.md

セットアップ

1. リポジトリのクローン

git clone <repository-url>
cd knowledge-base

2. 環境変数の設定

cp src/.env.example src/.env

src/.env を編集:

DB_CONNECTION=mysql
DB_HOST=kb_mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

MAIL_MAILER=smtp
MAIL_HOST=kb_mailhog
MAIL_PORT=1025

3. Dockerコンテナの起動

docker compose up -d

4. 依存関係のインストール

# Composer
docker exec kb_php composer install

# npm
docker exec kb_php npm install
docker exec kb_php npm run build

5. データベースのセットアップ

# マイグレーション
docker exec kb_php php artisan migrate

# 初期データの投入(管理者ユーザー + 初期ドキュメント)
docker exec kb_php php artisan db:seed

個別にシーダーを実行する場合:

# 管理者ユーザーのみ
docker exec kb_php php artisan db:seed --class=UserSeeder

# 初期ドキュメントのみ
docker exec kb_php php artisan db:seed --class=DocumentSeeder

6. 管理者の設定

# 既存ユーザーを管理者に設定
docker exec kb_php php artisan user:set-admin admin@example.com

# 管理者権限を削除する場合
docker exec kb_php php artisan user:set-admin admin@example.com --remove

アクセスURL

サービス URL
アプリケーション http://localhost:9700
phpMyAdmin http://localhost:9701
MailHog http://localhost:9725

初期データ

初期アカウント

UserSeederを実行した場合

初期ドキュメント

DocumentSeederを実行すると以下のドキュメントが作成されます

ドキュメント 内容
Home ホームページ(ウェルカムメッセージ、機能紹介)
Getting Started 使い方ガイドドキュメント作成、Wikiリンク、ショートカット
Markdown Guide Markdown記法ガイド見出し、リスト、コード、テーブル等

※ 既存のドキュメントがある場合、DocumentSeederはスキップされます。

よく使うコマンド

# コンテナ操作
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

管理者機能

管理者(is_admin = true)は以下の機能にアクセスできます:

  • ユーザー管理 (/admin/users)
    • ユーザー一覧表示
    • 新規ユーザー作成
    • ユーザー編集(名前、メール、パスワード、管理者権限)
    • ユーザー削除

管理者はログイン後ダッシュボードへ、一般ユーザーはフロントページへリダイレクトされます。

ドキュメントの作成

基本的な使い方

  1. サイドバーの「New Document」をクリック
  2. タイトルとMarkdownコンテンツを入力
  3. 保存

階層構造の作成

タイトルに / を含めると自動的に階層化されます:

  • Laravel/Livewire/ComponentsLaravel/Livewire/ フォルダ内に作成
  • git/認証設定git/ フォルダ内に作成

Wikiリンク

[[ページ名]] 記法でリンクを作成できます:

詳細は [[Getting Started]] を参照してください。
[[Laravel/Livewire/Components]] も確認してください。

トラブルシューティング

パーミッションエラー

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

コンテナが起動しない

docker compose down --remove-orphans
docker compose up -d

Nginxがエラーで停止する

docker/nginx/default.conffastcgi_passkb_php:9000 になっているか確認してください。

データベース接続エラー

src/.envDB_HOSTkb_mysql になっているか確認してください。

ライセンス

MIT License