quackプライベートチャットアプリケーションへようこそ。
quackへようこそ。これは、個人使用のために設計された無料のオープンソース チャット アプリケーションです。 quack使いやすいインターフェイスと Web ブラウザとのシームレスな統合を提供し、Chrome などの Web ブラウザを使用して任意のプラットフォームからアクセスできるプログレッシブ Web アプリケーションになります。
Slack からインスピレーションを得たものですが、個人使用にはより手頃な価格のquackプライバシーとセキュリティを優先しながら、他のコミュニケーターの最高の機能を組み合わせています。ユーザーは独自のアプリをホストして、自分のデータを完全に制御できます。
最も早く始める方法は、Docker Compose を使用することです。次のコマンドを使用すると、アプリケーションがデフォルト設定ですぐに起動します。
docker compose up -d
http://localhost:8080 に移動し、デフォルトの資格情報を使用してadmin / 123
にログインします。
デフォルト設定をオーバーライドするには、プロジェクトのルート ディレクトリにchat.config.ts
ファイルを作成します。 chat.config.example.ts
テンプレートとして使用できます。ファイルは次のオブジェクトをエクスポートする必要があります:
type Config = {
port ?: number // default `PORT` env otherwise `8080`
sessionSecret ?: string // auto generated on first run to `secrets.json` but can be overwritten here
trustProxy ?: bool | string | number // default `uniquelocal` ref: https://expressjs.com/en/guide/behind-proxies.html
vapid ?: { // auto generated on first run to `secrets.json` but can be overwritten here
publicKey : string
secretKey : string
} ,
databaseUrl ?: string // default `DATABASE_URL` env
cors ?: string [ ] // by default [ 'https?://localhost(:[0-9]{,4})' ],
storage ?: { // Where uploaded files should be stored
type : 'memory' | 'gcs' | 'fs' // default `fs` / `memory` in tests
directory : string // where to save files when type `fs`
bucket : string // bucket name for `gcs`
}
apiUrl ?: string // default 'http://localhost:8080' url of api
appUrl ?: string // default 'http://localhost:8081' url for frontend app
} ;
GOOGLE_APPLICATION_CREDENTIALS
[文字列] - (オプション) gcs ストレージ方法が使用される場合
サーバーを起動するには:
cd ./deno/server
deno task dev
依存関係をインストールし、React アプリを起動します。
cd ./app
npm install
npm run dev
ストーリーブックを開始するには:
cd ./app
npm install
npm run storybook
現在、Google Cloud Storage をサポートしています。有効にするには、構成ファイルのfileStorage
gcs
に設定し、 gcsBucket
を指定し、 GOOGLE_APPLICATION_CREDENTIALS
環境変数を設定します。
私たちは信頼性と費用対効果の高さを理由にサーバーレス MongoDB インスタンスを使用しています。料金は使用した分だけ支払います。内部パブリッシュ/サブスクライブ機能は必要ないため、Mongo Atlas で利用可能な最も安価なオプションで十分です。
サーバーレス ソリューションがあれば便利ですが、現時点では GCE を使用するのが最も安価なオプションです。ホストされたパブリッシュ/サブスクライブ サービスを使用せずに他のサーバーレス インスタンスにメッセージを伝播する方法がわかりません。メッセージを監視するには、MongoDB、Redis、Postgres をホストする必要があります。おそらく Google Cloud Pub/Sub が良い選択肢になるでしょうか?
チャットにはプラグインシステムがあります。プラグインの例はplugins/example
にあります。プラグインの使用方法とプラグインのフックポイントは未定。
admin / 123
新しいユーザーは、ユーザー登録用の使い捨てリンクを生成する/invite
コマンドを使用して招待できます。
貢献は大歓迎です。大きな変更の場合は、まず問題を開いて、変更したい内容について話し合ってください。必要に応じてテストを更新してください。
MITライセンス
著作権 (c) 2023 CodeCat