|
|
||
|---|---|---|
| Anime | ||
| Games | ||
| Politics | ||
| LICENSE | ||
| README.md | ||
| index.html | ||
| index.py | ||
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