No description
  • TypeScript 48.6%
  • Python 42.2%
  • Shell 3%
  • Dockerfile 2.9%
  • JavaScript 1.7%
  • Other 1.6%
Find a file
2026-03-16 20:29:43 -04:00
backend Initial commit 2026-03-16 20:29:43 -04:00
docker Initial commit 2026-03-16 20:29:43 -04:00
frontend Initial commit 2026-03-16 20:29:43 -04:00
.gitignore Initial commit 2026-03-16 20:29:43 -04:00
docker-compose.yml Initial commit 2026-03-16 20:29:43 -04:00
Dockerfile Initial commit 2026-03-16 20:29:43 -04:00
LICENSE Initial commit 2026-03-16 20:29:43 -04:00
README.md Initial commit 2026-03-16 20:29:43 -04:00
screenshot.png Initial commit 2026-03-16 20:29:43 -04:00

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

Optional

  • Docker (for Docker deployment)

Screenshot

Screenshot

License

Distributed under the MIT License. See LICENSE for more information.