211867e2eba0dc5b4bef1d53eded504ad67793bb
Added languages: - pt-BR: Português (Brasil) - 250M+ speakers - ru: Русский - 260M+ speakers - uk: Українська - 40M+ speakers - it: Italiano - 67M speakers - hi: हिन्दी - 600M+ speakers - vi: Tiếng Việt - 95M speakers - tr: Türkçe - 80M speakers - pl: Polski - 45M speakers Total supported languages: 16 RTL languages (Arabic, Hebrew, etc.) excluded for now, as they require additional layout implementation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Knowledge Base
Markdown対応のナレッジベースアプリケーションです。Wiki風のリンク記法([[ページ名]])をサポートし、ドキュメント間の相互リンクを簡単に作成できます。
機能
- 📝 Markdownエディタ - リアルタイムプレビュー付きのドキュメント編集
- 🔗 Wikiリンク -
[[ページ名]]記法でドキュメント間リンクを作成 - 🔍 クイックスイッチャー - Ctrl+K (Cmd+K) で高速ドキュメント検索
- 📁 階層構造 - フォルダ形式でドキュメントを整理(タイトルに
/を含めると自動で階層化) - 🌳 サイドバーツリー - 折りたたみ可能なドキュメントツリー
- 👥 ユーザー管理 - 管理者によるユーザーのCRUD操作
- 🔒 認証 - Laravel Breezeによるログイン/登録機能
- 🎨 シンタックスハイライト - コードブロックの自動ハイライト
- 🌐 多言語対応 - 8言語サポート(ユーザーごとに言語設定可能)
対応言語
| 言語 | コード |
|---|---|
| English | en |
| 日本語 | ja |
| Deutsch | de |
| Français | fr |
| Español | es |
| 简体中文 | zh-CN |
| 繁體中文 | zh-TW |
| 한국어 | ko |
技術スタック
- 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/ # ビジネスロジック
│ ├── lang/ # 言語ファイル(i18n)
│ ├── 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を実行した場合:
- Email: admin@example.com
- Password: password
- 権限: 管理者
初期ドキュメント
DocumentSeederを実行すると以下のドキュメントが作成されます:
| ドキュメント | 内容 |
|---|---|
| Home | ホームページ(ウェルカムメッセージ、機能紹介) |
| Getting Started | 使い方ガイド(ドキュメント作成、Wikiリンク、ショートカット) |
| Markdown Guide | Markdown記法ガイド(見出し、リスト、コード、テーブル等) |
※ 既存のドキュメントがある場合、DocumentSeederはスキップされます。
本番環境へのデプロイ
⚠️ 重要: サブドメインを使用してください
このアプリケーションは サブドメイン でのデプロイを推奨します。
✅ 推奨: kb.example.com
❌ 非推奨: example.com/kb (サブディレクトリ)
理由: Livewire 3はサブディレクトリデプロイに完全対応していません。/livewire/update エンドポイントがサブディレクトリを考慮しないため、AJAX通信が失敗します。
デプロイ手順
-
サブドメインのDNS設定
kb.example.com → サーバーIPアドレス -
Webサーバー設定(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; } } -
環境変数の設定
APP_URL=https://kb.example.com APP_ENV=production APP_DEBUG=false -
本番用の最適化
php artisan config:cache php artisan route:cache php artisan view:cache php artisan optimize
よく使うコマンド
# コンテナ操作
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
# キャッシュクリア
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
管理者機能
管理者(is_admin = true)は以下の機能にアクセスできます:
- ユーザー管理 (
/admin/users)- ユーザー一覧表示
- 新規ユーザー作成
- ユーザー編集(名前、メール、パスワード、管理者権限)
- ユーザー削除
管理者はログイン後ダッシュボードへ、一般ユーザーはフロントページへリダイレクトされます。
ドキュメントの作成
基本的な使い方
- サイドバーの「New Document」をクリック
- タイトルとMarkdownコンテンツを入力
- 保存
階層構造の作成
タイトルに / を含めると自動的に階層化されます:
Laravel/Livewire/Components→Laravel/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.conf の fastcgi_pass が kb_php:9000 になっているか確認してください。
データベース接続エラー
src/.env の DB_HOST が kb_mysql になっているか確認してください。
Livewireのエラー(本番環境)
「404 /livewire/update」エラーが出る場合は、サブディレクトリではなくサブドメインでデプロイしてください。
# キャッシュをクリア
php artisan config:clear
php artisan route:clear
php artisan cache:clear
ライセンス
MIT License
Description
Languages
PHP
57.3%
Blade
42.2%
JavaScript
0.2%
Dockerfile
0.2%