outline
The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and markdown compatible.
チーム向けに設計された、リアルタイム共同編集に対応するオープンソースのナレッジベース(社内Wiki)ツールです。
・企業:社内ドキュメントをMarkdown形式で一元管理でき、SSO(シングルサインオン)やアクセス制御にも対応しているため、情報セキュリティを保ちながらナレッジ共有を促進できます。 ・スタートアップ:Notionのような使い勝手をセルフホストで無料運用でき、Confluenceのライセンス費用を削減しながら、チームの知見を素早く蓄積できます。 ・個人事業主・フリーランス:プロジェクトごとのドキュメントや手順書を高速検索できる自分専用のナレッジベースとして活用でき、データを完全に自分で管理できます。
Notion(月額10ドル程度)やConfluence(月額5.75ドル程度)はクラウド専用でデータが提供元に預けられますが、Outlineはセルフホストでデータを完全に自社管理でき、Markdownにネイティブ対応しているため記法の制約なく快適にドキュメントを作成できます。
これはOutlineおよび関連サービスを動作させるソースコードです。Outlineを利用するだけであれば、このコードを実行する必要はありません。ホスト版のアプリがgetoutline.comで提供されています。また、Outlineの使い方に関するドキュメントはガイドをご覧ください。
自分自身でOutlineのコピーを運用したい方、または開発に貢献したい方はこちらをご活用ください。
インストール
本番環境でOutlineを運用するための手順については、ドキュメントをご参照ください。
ドキュメントに関するご質問や改善提案がある場合は、GitHub discussionsにスレッドを作成してください。
開発
Outlineへの変更・修正・改善に貢献したい場合は、開発環境のセットアップガイドをご参照ください。
コントリビューション
Outlineは少人数のチームで構築・メンテナンスされています。バグの発見や修正へのご協力は歓迎しますが、新規コントリビューターによるAI支援のPRは推奨されず、マージされない可能性が高いです。
プルリクエストを提出する前に、GitHubでIssueを作成またはコメントして、コアチームと必ず議論してください。discussionsでのご連絡も歓迎します。これにより、コードを書く前にアプローチについて合意でき、このガイドラインを読んでいただいていることも確認できます。結果として、コードが受け入れられる可能性が大幅に高まります。
始め方をお探しの方へ、Outlineの改善に貢献できる方法を以下にまとめました:
- 他言語への翻訳
good first issueラベルが付いたIssue- サーバー・フロントエンド両面でのパフォーマンス改善
- 開発者体験の向上とドキュメンテーション
- GitHubに掲載されているバグやその他のIssue
アーキテクチャ
Outlineのコードベースへの貢献や詳細な理解に興味がある方は、まずアーキテクチャドキュメントをご参照ください。アプリケーション全体の構成について概要を把握できます。
デバッグ
開発環境では、Outlineはカテゴリのプレフィックス付きでコンソールにシンプルなログを出力します。本番環境ではJSON形式のログを出力し、お好みのログ取り込みパイプラインで簡単にパースできます。
HTTPログはデフォルトで無効ですが、DEBUG=http環境変数を設定することで有効化できます。すべてのカテゴリのログを有効にするにはDEBUG=*を、特定のカテゴリにはDEBUG=databaseとLOG_LEVEL=debugを設定します。非常に詳細なログが必要な場合はLOG_LEVEL=sillyを使用してください。
テスト
アプリケーションの重要な部分に対して十分なテストカバレッジを確保することを目指しており、100%のユニットテストカバレッジは目標としていません。すべてのAPIエンドポイントおよび認証に関連するものは徹底的にテストする必要があります。
新しいテストを追加するには、Jestでテストを書き、テスト対象のコードの隣に.test.ts拡張子のファイルを追加してください。
# すべてのテストを実行
make test
# バックエンドテストをウォッチモードで実行
make watch
make testでテストデータベースが作成されたら、jestで直接フロントエンド・バックエンドテストを個別に実行できます:
# バックエンドテストを実行
yarn test:server
# 特定のバックエンドテストをウォッチモードで実行
yarn test path/to/file.test.ts --watch
# フロントエンドテストを実行
yarn test:app
マイグレーション
Sequelizeを使用してマイグレーションの作成と実行を行います。例:
yarn db:create-migration --name my-migration
yarn db:migrate
yarn db:rollback
テストデータベースでマイグレーションを実行する場合:
yarn db:migrate --env test
アクティビティ
ライセンス
OutlineはBSL 1.1ライセンスのもとで提供されています。