Selamat datang di quack - aplikasi obrolan pribadi.
Selamat datang di quack , aplikasi obrolan sumber terbuka dan gratis yang dirancang untuk penggunaan pribadi. quack menawarkan antarmuka yang mudah digunakan dan integrasi tanpa batas dengan browser web, menjadikannya Aplikasi Web Progresif yang dapat diakses dari platform apa pun dengan browser web, seperti Chrome.
Terinspirasi oleh Slack namun lebih terjangkau untuk penggunaan pribadi, quack menggabungkan fitur terbaik dari komunikator lain dengan tetap mengutamakan privasi dan keamanan. Pengguna dapat menghosting aplikasi mereka sendiri, memastikan kontrol penuh atas data mereka.
Cara tercepat untuk memulai adalah dengan menggunakan penulisan Docker. Menggunakan perintah berikut akan memulai aplikasi dengan pengaturan default dalam waktu singkat.
docker compose up -d
navigasikan ke http://localhost:8080 dan gunakan kredensial default untuk login admin / 123
.
Untuk mengganti pengaturan default file chat.config.ts
dapat dibuat di direktori root proyek. Anda dapat menggunakan chat.config.example.ts
sebagai templat. File harus mengekspor objek berikut:
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] - (opsional) ketika metode penyimpanan gcs digunakan
Untuk memulai server:
cd ./deno/server
deno task dev
Instal dependensi dan mulai aplikasi React:
cd ./app
npm install
npm run dev
Untuk memulai buku cerita:
cd ./app
npm install
npm run storybook
Saat ini mendukung Google Cloud Storage. Untuk mengaktifkannya, setel fileStorage
dalam file konfigurasi ke gcs
tentukan gcsBucket
dan setel variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
.
Kami menggunakan instans MongoDB tanpa server karena keandalan dan efektivitas biayanya - kami hanya membayar sesuai penggunaan. Opsi termurah yang tersedia di Mongo Atlas sudah cukup untuk aplikasi, karena kami tidak memerlukan fungsionalitas pub/sub internal apa pun.
Akan menyenangkan jika memiliki solusi tanpa server, namun untuk saat ini, opsi termurah adalah menggunakan GCE. Saya tidak tahu cara menyebarkan pesan ke instance tanpa server lainnya tanpa layanan pub/sub yang dihosting. MongoDB, Redis, dan Postgres perlu dihosting untuk memantau pesan. Mungkin Google Cloud Pub/Sub bisa menjadi pilihan yang bagus?
Obrolan memiliki sistem plugin. Contoh plugin dapat ditemukan di plugins/example
. Cara menggunakan plugin dan plugin hook point TBA.
admin / 123
Pengguna baru dapat diundang dengan perintah /invite
yang akan menghasilkan tautan sekali pakai untuk pendaftaran pengguna.
Kontribusi dipersilahkan. Untuk perubahan besar, silakan buka terbitan terlebih dahulu untuk mendiskusikan apa yang ingin Anda ubah. Pastikan untuk memperbarui pengujian sebagaimana mestinya.
Lisensi MIT
Hak Cipta (c) 2023 CodeCat