欢迎使用quack - 私人聊天应用程序。
欢迎使用quack ,这是一款专为私人使用而设计的免费开源聊天应用程序。 quack提供易于使用的界面并与 Web 浏览器无缝集成,使其成为可从任何具有 Web 浏览器的平台(例如 Chrome)访问的渐进式 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
目前支持谷歌云存储。要启用它,请将配置文件中的fileStorage
设置为gcs
指定gcsBucket
并设置GOOGLE_APPLICATION_CREDENTIALS
环境变量。
我们使用无服务器 MongoDB 实例是因为它的可靠性和成本效益 - 我们只需为我们使用的内容付费。 Mongo Atlas 上提供的最便宜的选项足以满足应用程序的需要,因为我们不需要任何内部发布/订阅功能。
如果有一个无服务器解决方案就好了,但目前最便宜的选择是使用 GCE。我不知道如何在没有托管发布/订阅服务的情况下将消息传播到其他无服务器实例。需要托管 MongoDB、Redis 和 Postgres 来监视消息。也许 Google Cloud Pub/Sub 是一个不错的选择?
聊天有插件系统。示例插件可以在plugins/example
中找到。如何使用插件和插件挂钩点待定。
admin / 123
可以使用/invite
命令邀请新用户,该命令将生成用于用户注册的一次性链接。
欢迎贡献。对于重大更改,请先打开一个问题来讨论您想要更改的内容。确保适当更新测试。
麻省理工学院许可证
版权所有 (c) 2023 CodeCat