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