quack - 개인 채팅 애플리케이션에 오신 것을 환영합니다.
개인적인 용도로 설계된 무료 오픈 소스 채팅 애플리케이션인 quack 에 오신 것을 환영합니다. quack 사용하기 쉬운 인터페이스와 웹 브라우저와의 원활한 통합을 제공하므로 Chrome과 같은 웹 브라우저를 사용하는 모든 플랫폼에서 액세스할 수 있는 프로그레시브 웹 애플리케이션입니다.
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