An open-source Discord-like alternative. A place to hang-out safely with your friends.
Warning
This project is still in early developpment.
outer.chat is an open-source alternative to Discord, built with NestJS and Prisma. It provides a REST API for standard requests and utilizes WebRTC and Socket.io for real-time communication.
- Real-time communication : With WebRTC and Socket.io, you can communicate with your friends in real-time.
- Open-source : You can contribute to the project and see the code.
- Self-hosted : You can host the application on your own server.
- Customizable : You can customize the application to match your needs thanks to admin permissions.
git clone [email protected]:outer-chat/outer-chat.git --recurse-submodules
cd outer-chat
npm installNow edit the .env file to match your configuration. (you can use the .env.example file as an example)
Now you can start the server in developpement mode with :
npm run start:devOr in production mode with :
npm run build
npm run start:prodNote : If you do not want to setup a database, you can use the compose.yml file at the root of the project. It will launch a postgres database. You can edit the env variables in the compose.yml file.
docker compose up -dAs said earlier, this snippet only up the database. If you want to up the whole stack, you can use the compose.prod.yml file at the root of the project.
docker compose -f compose.prod.yml up -dAs you may, you can edit the env variables in the compose.prod.yml file.
And edit the Caddyfile to match your domain.
Note that the compose.prod.yml also launch the clientapp. If not already done, I invite you to pull the submodule located in : .client.
git submodule init
git submodule updateFor any question about the clientapp, please refer to the README of the clientapp.
For end users, you can see the api documentation when the server is started at the /api route. (eg. http://localhost:3000/api)
For further documentation, (the developer documentation), you can access it in the docs folder.
At the moment, there is only e2e tests. They should cover the major part of the application.
npm install
npm run test:e2eouter.chat is an open-source project. You are invited to contribute. You can also support the project by giving a star ⭐️. The project is still in development, so keep in mind that you can't use it at it full potential yet.
Contributions are welcome. Feel free to open a pull request or an issue. For the commit naming convention, please stick to the gitkarma convention.
The code in this repository is released under the GNU AFFERO GENERAL PUBLIC LICENSE, version 3. A copy can be found in the LICENSE file.