Rustを用いてMarkdownファイルを共有・編集できるGUIベースのWikiサービスを構築します。
md-wiki-rust
- Markdownファイルを共同で編集・共有
- GUIベースで直感的な操作
- 安全で高速な動作
-
Tauri
- 軽量、高速で安全なRustベースのElectron代替ツール。
- Reactをフロントエンドフレームワークとして使用。
-
Axum
- シンプルで直感的、高速で非同期処理対応のRustフレームワーク。
-
pulldown-cmark
- Markdownを解析してHTMLに変換するためのライブラリ。
- Markdownファイルのバージョン管理はGitを使用。
- SQLiteを使用してメタデータ管理。
md-wiki-rust/
├── frontend
│ ├── src
│ │ ├── components
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ └── styles.css
│ ├── src-tauri
│ │ ├── src
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ └── tauri.conf.json
│ ├── index.html
│ └── package.json
├── backend
│ ├── src
│ │ ├── routes
│ │ ├── handlers
│ │ ├── models
│ │ ├── auth
│ │ └── main.rs
│ └── Cargo.toml
├── storage
│ └── markdown_files (ここにMarkdownファイルを保存,このRespositoryはGitで管理されます。)
├── docs
│ ├── API
│ │ └── README.md (API仕様書)
│ ├── DEVELOPMENT
│ │ └── README.md (開発計画)
│ └── SETUP
│ └── README.md (セットアップ手順)
├── README.md
└── .gitignore
- Markdownファイル作成・編集
- Markdownプレビュー表示
- バックエンドAPIによるファイル管理
- TauriによるデスクトップGUI
- 全文検索機能(キーワードによるドキュメント内容の検索)
- ファイル履歴の表示(Git統合機能)
- 特定バージョンのドキュメント表示
- メタデータ管理(SQLite)
- タグ機能
- 最近更新されたドキュメント表示
- ドキュメントのメタデータ編集
- ユーザー認証・認可システム
- ユーザー登録・ログイン機能
- JWT認証
- ロールベースのアクセス制御(管理者/編集者/閲覧者)
- パスワードハッシュ化(Argon2)
ファイル履歴の表示(Git統合の強化)✅SQLiteによるメタデータ管理✅ユーザー認証・認可システム✅- 編集権限設定(オプション)
- スクリプトによるデプロイ・セットアップ自動化
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh最新のNode.jsとnpmをインストールしてください。
git clone https://github.com/yourusername/md-wiki-rust.git
cd md-wiki-rustcd backend
cargo buildcd frontend
npm installmkdir -p storage/markdown_files
cd storage/markdown_files
git initcd backend
cargo run-
.envファイルの作成: リポジトリのルートに
.envファイルを作成し、環境変数を設定します。DATABASE_URL=sqlite:/app/storage/metadata.db JWT_SECRET=your_jwt_secret -
Dockerコンテナのビルドと起動:
docker-compose up --build -d
-
コンテナの停止:
docker-compose down
-
コンテナへのアクセス: 実行中のコンテナのシェルにアクセスするには、以下のコマンドを実行します。
docker-compose exec app /bin/bash
cd frontend
npm run tauri devMIT License
- リアルタイム共同編集機能の導入
- 公開・非公開モードの切り替え