Go to file
Your Name b8daea66f2 Cleanup: channels support, security hardening, remove cruft 2026-07-22 02:15:28 +03:00
Anime Cleanup: channels support, security hardening, remove cruft 2026-07-22 02:15:28 +03:00
Games Cleanup: channels support, security hardening, remove cruft 2026-07-22 02:15:28 +03:00
Politics Cleanup: channels support, security hardening, remove cruft 2026-07-22 02:15:28 +03:00
LICENSE Initial commit 2026-07-21 19:24:23 +03:00
README.md Cleanup: channels support, security hardening, remove cruft 2026-07-22 02:15:28 +03:00
index.html Cleanup: channels support, security hardening, remove cruft 2026-07-22 02:15:28 +03:00
index.py Cleanup: channels support, security hardening, remove cruft 2026-07-22 02:15:28 +03:00

README.md

FuckingChat 🔒

Encrypted chat with channel support. Messages are encrypted at rest using Fernet (PBKDF2 + SHA256).

Channels

  • 💬 General — general discussion
  • 🎮 Games — gaming chat
  • 🎌 Anime — anime & manga
  • ⚖️ Politics — politics discussion

Setup

# Install dependencies
pip install bottle cryptography sqlalchemy

# Run (development)
python index.py

# Run (production - recommended)
CHAT_SECRET="your-strong-secret" \
CHAT_SALT="your-random-salt" \
CHAT_ADMIN_TOKEN="your-admin-token" \
CHAT_RATE_LIMIT=5 \
CHAT_HOST=0.0.0.0 \
CHAT_PORT=8080 \
python index.py

Environment Variables

Variable Default Description
CHAT_SECRET default_secret_change_me Encryption key
CHAT_SALT default_salt_change_me PBKDF2 salt
CHAT_ADMIN_TOKEN (none) Token for DELETE API
CHAT_RATE_LIMIT 5 Max messages per window
CHAT_RATE_WINDOW 10 Rate limit window (seconds)
CHAT_MAX_MSG 2000 Max message length
CHAT_DB_PATH ./chat.db SQLite database path
CHAT_HOST localhost Listen address
CHAT_PORT 8080 Listen port
CHAT_DEBUG 0 Debug mode (set to 1 for dev)

Security Features

  • Messages encrypted at rest (AES via Fernet)
  • Rate limiting (configurable)
  • IP hashing (privacy)
  • XSS protection (HTML tag stripping)
  • Admin token required for deletion
  • No debug mode in production