Bem-vindo ao aplicativo de bate-papo privado do quack .
Bem-vindo ao quack , um aplicativo de bate-papo gratuito e de código aberto projetado para uso privado. quack oferece uma interface fácil de usar e integração perfeita com navegadores da web, tornando-o um aplicativo da web progressivo acessível a partir de qualquer plataforma com um navegador da web, como o Chrome.
Inspirado no Slack, mas mais acessível para uso privado, quack combina os melhores recursos de outros comunicadores, priorizando a privacidade e a segurança. Os usuários podem hospedar seu próprio aplicativo, garantindo controle total sobre seus dados.
A maneira mais rápida de começar é usar o Docker compose. Usar o comando a seguir iniciará o aplicativo com as configurações padrão rapidamente.
docker compose up -d
navegue até http://localhost:8080 e use as credenciais padrão para fazer login admin / 123
.
Para substituir as configurações padrão, o arquivo chat.config.ts
pode ser criado no diretório raiz do projeto. Você pode usar chat.config.example.ts
como modelo. O arquivo deve exportar o seguinte objeto:
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
[string] - (opcional) quando o método de armazenamento gcs é usado
Para iniciar o servidor:
cd ./deno/server
deno task dev
Instale dependências e inicie o aplicativo React:
cd ./app
npm install
npm run dev
Para iniciar o livro de histórias:
cd ./app
npm install
npm run storybook
Atualmente compatível com Google Cloud Storage. Para habilitá-lo, defina fileStorage
no arquivo de configuração para gcs
especifique gcsBucket
e defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS
.
Estamos usando uma instância do MongoDB sem servidor devido à sua confiabilidade e economia – pagamos apenas pelo que usamos. A opção mais barata disponível no Mongo Atlas é suficiente para aplicação, pois não exigimos nenhuma funcionalidade interna de pub/sub.
Seria bom ter uma solução sem servidor, mas por enquanto a opção mais barata é usar o GCE. Não tenho ideia de como propagar mensagens para outras instâncias sem servidor sem um serviço pub/sub hospedado. MongoDB, Redis e Postgres precisam ser hospedados para monitorar mensagens. Talvez o Google Cloud Pub/Sub seja uma boa opção?
O bate-papo possui sistema de plugins. O plugin de exemplo pode ser encontrado em plugins/example
. Como usar plug-ins e pontos de gancho de plug-in TBA.
admin / 123
Novos usuários podem ser convidados com o comando /invite
que irá gerar um link de uso único para registro do usuário.
Contribuições são bem-vindas. Para mudanças importantes, abra primeiro uma edição para discutir o que você gostaria de mudar. Certifique-se de atualizar os testes conforme apropriado.
Licença MIT
Direitos autorais (c) 2023 CodeCat