No description
- TypeScript 48.6%
- Python 42.2%
- Shell 3%
- Dockerfile 2.9%
- JavaScript 1.7%
- Other 1.6%
| backend | ||
| docker | ||
| frontend | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| screenshot.png | ||
NanoChat
An end-to-end encrypted anonymous webchat
Features
- Small codebase
- Messages expire after 30 days
- Panic button to delete all messages in a room
- WebSocket for communication
- Docker support
Technical details
- AES-256-GCM for client-side encryption
- Key is not sent to server
Installation
First, clone the repository:
git clone https://git.disroot.org/NanoChat/Server.git
Onion service setup with Docker
cd NanoChat/
sudo docker compose build --no-cache
sudo docker compose up
Backend setup
cd NanoChat/backend/
python3 -m pip install --user pipenv
pipenv --python $(which python3)
python3 -m pipenv sync
python3 -m pipenv shell
pipenv install
export DJANGO_SETTINGS_MODULE=backend.settings
echo "DJANGO_SECRET_KEY=$(head -c 64 /dev/urandom | base64)" >> .env
echo "DJANGO_DEBUG=false" >> .env
set -a; source .env; set +a; daphne backend.asgi:application --port 8000
Frontend setup
cd NanoChat/frontend/
npm install pnpm
pnpm install dompurify
pnpm build
pnpm run preview
Requirements
Backend
Frontend
- node.js (install with pnpm)
Optional
- Docker (for Docker deployment)
Screenshot
License
Distributed under the MIT License. See LICENSE for more information.
