docs: Update README.md with comprehensive project documentation

- Add feature overview and tech stack
- Update Docker service names to match compose.yml (kb_*)
- Add admin functionality documentation
- Add document creation guide with wiki links
- Add troubleshooting section
- Update setup instructions
This commit is contained in:
2025-11-29 11:31:46 +09:00
parent a63e08327e
commit 691ac566e2

235
README.md
View File

@@ -1,14 +1,34 @@
# Laravel Docker環境 # Knowledge Base
Nginx + PHP + Laravel + MySQL + PhpMyAdmin + MailHog を使ったDocker開発環境です。 Markdown対応のナレッジベースアプリケーションです。Wiki風のリンク記法`[[ページ名]]`)をサポートし、ドキュメント間の相互リンクを簡単に作成できます。
## 構成 ## 機能
- **Nginx**: Webサーバーポート: 9700 - 📝 **Markdownエディタ** - リアルタイムプレビュー付きのドキュメント編集
- **PHP 8.2**: PHP-FPM + Composer + Node.js - 🔗 **Wikiリンク** - `[[ページ名]]` 記法でドキュメント間リンクを作成
- **MySQL 8.0**: データベース(ポート: 9702 - 🔍 **クイックスイッチャー** - Ctrl+K (Cmd+K) で高速ドキュメント検索
- **PhpMyAdmin**: DB管理ツールポート: 9701 - 📁 **階層構造** - フォルダ形式でドキュメントを整理(タイトルに `/` を含めると自動で階層化
- **MailHog**: メールテストツールSMTP: 1025, Web UI: 9725 - 🌳 **サイドバーツリー** - 折りたたみ可能なドキュメントツリー
- 👥 **ユーザー管理** - 管理者によるユーザーの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 |
## ディレクトリ構成 ## ディレクトリ構成
@@ -23,120 +43,181 @@ Nginx + PHP + Laravel + MySQL + PhpMyAdmin + MailHog を使ったDocker開発環
│ └── mysql/ │ └── mysql/
│ └── my.cnf │ └── my.cnf
├── src/ ├── src/
── (Laravelプロジェクト) ── app/
├── .env │ │ ├── Console/Commands/ # Artisanコマンド
├── .gitignore │ │ ├── Http/Controllers/ # コントローラー
└── docker-compose.yml │ │ ├── Livewire/ # Livewireコンポーネント
│ │ ├── Models/ # Eloquentモデル
│ │ └── Services/ # ビジネスロジック
│ ├── resources/views/
│ │ ├── layouts/ # レイアウト
│ │ ├── livewire/ # Livewireビュー
│ │ └── admin/ # 管理画面
│ └── routes/
│ └── web.php # ルーティング
├── compose.yml
└── README.md
``` ```
## セットアップ手順 ## セットアップ
### 1. Laravelプロジェクトのインストール ### 1. リポジトリのクローン
srcフォルダにLaravelをインストールします
```bash ```bash
# Dockerコンテナをビルド git clone <repository-url>
docker-compose build cd knowledge-base
# PHPコンテナでLaravelをインストール
docker-compose run --rm php composer create-project laravel/laravel .
``` ```
### 2. Laravel環境設定 ### 2. 環境変数の設定
`src/.env` ファイルを編集してデータベース設定を変更: ```bash
cp src/.env.example src/.env
```
`src/.env` を編集:
```env ```env
DB_CONNECTION=mysql DB_CONNECTION=mysql
DB_HOST=mysql DB_HOST=kb_mysql
DB_PORT=3306 DB_PORT=3306
DB_DATABASE=laravel DB_DATABASE=laravel
DB_USERNAME=laravel_user DB_USERNAME=root
DB_PASSWORD=secret DB_PASSWORD=root
MAIL_MAILER=smtp MAIL_MAILER=smtp
MAIL_HOST=mailhog MAIL_HOST=kb_mailhog
MAIL_PORT=1025 MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
``` ```
### 3. コンテナの起動 ### 3. Dockerコンテナの起動
```bash ```bash
docker-compose up -d docker compose up -d
``` ```
### 4. Laravel初期設定 ### 4. 依存関係のインストール
```bash ```bash
# キャッシュクリア # Composer
docker-compose exec php php artisan config:clear docker exec kb_php composer install
# マイグレーション実行 # npm
docker-compose exec php php artisan migrate docker exec kb_php npm install
docker exec kb_php npm run build
```
### 5. データベースのセットアップ
```bash
# マイグレーション
docker exec kb_php php artisan migrate
# 初期ユーザーの作成(オプション)
docker exec kb_php php artisan db:seed --class=UserSeeder
```
### 6. 管理者の設定
```bash
# 既存ユーザーを管理者に設定
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 | サービス | URL |
- **PhpMyAdmin**: http://localhost:9701 |---------|-----|
- **MailHog Web UI**: http://localhost:9725 | アプリケーション | http://localhost:9700 |
| phpMyAdmin | http://localhost:9701 |
| MailHog | http://localhost:9725 |
## 初期アカウント
UserSeederを実行した場合
- **Email**: admin@example.com
- **Password**: password
## よく使うコマンド ## よく使うコマンド
```bash ```bash
# コンテナ起動 # コンテナ操作
docker-compose up -d docker compose up -d # 起動
docker compose down # 停止
docker compose restart # 再起動
docker compose logs -f # ログ確認
# コンテナ停止 # PHPコンテナ内でコマンド実行
docker-compose down docker exec kb_php php artisan [command]
docker exec kb_php composer [command]
docker exec kb_php npm [command]
# コンテナ再起動 # コンテナに入る
docker-compose restart docker exec -it kb_php bash
# ログ確認
docker-compose logs -f
# PHPコンテナに入る
docker-compose exec php bash
# Artisanコマンド実行
docker-compose exec php php artisan [command]
# Composer実行
docker-compose exec php composer [command]
# npm実行
docker-compose exec php npm [command]
``` ```
## データベース接続情報 ## 管理者機能
- **ホスト**: localhost (外部) / mysql (コンテナ内) 管理者(`is_admin = true`)は以下の機能にアクセスできます:
- **ポート**: 9702 (外部) / 3306 (コンテナ内)
- **データベース名**: laravel - **ユーザー管理** (`/admin/users`)
- **ユーザー名**: laravel_user - ユーザー一覧表示
- **パスワード**: secret - 新規ユーザー作成
- **rootパスワード**: secret - ユーザー編集(名前、メール、パスワード、管理者権限)
- ユーザー削除
管理者はログイン後ダッシュボードへ、一般ユーザーはフロントページへリダイレクトされます。
## ドキュメントの作成
### 基本的な使い方
1. サイドバーの「New Document」をクリック
2. タイトルとMarkdownコンテンツを入力
3. 保存
### 階層構造の作成
タイトルに `/` を含めると自動的に階層化されます:
- `Laravel/Livewire/Components``Laravel/Livewire/` フォルダ内に作成
- `git/認証設定``git/` フォルダ内に作成
### Wikiリンク
`[[ページ名]]` 記法でリンクを作成できます:
```markdown
詳細は [[Getting Started]] を参照してください。
[[Laravel/Livewire/Components]] も確認してください。
```
## トラブルシューティング ## トラブルシューティング
### パーミッションエラーが出る場合 ### パーミッションエラー
```bash ```bash
# storagebootstrap/cacheのパーミッション設定 docker exec kb_php chmod -R 775 storage bootstrap/cache
docker-compose exec php chmod -R 775 storage bootstrap/cache docker exec kb_php chown -R www-data:www-data storage bootstrap/cache
docker-compose exec php chown -R www-data:www-data storage bootstrap/cache
``` ```
### コンテナが起動しない場合 ### コンテナが起動しない
```bash ```bash
# コンテナとボリュームを全て削除して再構築 docker compose down --remove-orphans
docker-compose down -v docker compose up -d
docker-compose build --no-cache
docker-compose up -d
``` ```
### Nginxがエラーで停止する
`docker/nginx/default.conf``fastcgi_pass``kb_php:9000` になっているか確認してください。
### データベース接続エラー
`src/.env``DB_HOST``kb_mysql` になっているか確認してください。
## ライセンス
MIT License