Skip to content

humoyun-dev/anonim-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ•΅οΈ Anonim Chat β€” Telegram Bot + Admin Dashboard

Telegram orqali to'liq anonim xabar almashinuv tizimi. Foydalanuvchilar shaxsiy anonim link orqali xabar yuboradi β€” yozuvchining kimligini bilmasdan. Barcha suhbatlar Admin Dashboardda real-time kuzatiladi.


🌟 Loyiha haqida

Anonim Chat β€” bu odamlar bir-biriga Telegram orqali anonim savol va xabar yuborishini ta'minlovchi tizim. Bu ASK.fm yoki NGL.link'ga o'xshash, lekin to'liq Telegram ichida ishlaydi.

Qanday ishlaydi

  1. Owner (ega) /getlink buyrug'i orqali o'ziga xos anonim link oladi
  2. Shu linkni do'stlariga, obunachilarga yoki bio'siga qo'yadi
  3. Istalgan kishi (anonim foydalanuvchi) link orqali kirib xabar yozadi
  4. Owner xabarni oladi β€” kimdan kelganini bilmaydi
  5. Owner javob bera oladi; anonim foydalanuvchi ham javobni ko'radi
  6. Qo'shimcha: 50 Telegram Stars to'lab yozuvchining shaxsini ochish mumkin

✨ Xususiyatlar

πŸ€– Telegram Bot

Xususiyat Tavsif
Anonim xabar Matn, foto, video, stiker, voice, audio, video-note, hujjat β€” barcha media turlari
Javob berish Owner inline tugma orqali anonim foydalanuvchiga javob yozadi
Kimligini ochish 50 Telegram Stars to'lab anonim yozuvchining ID, ism va username'ini bilish mumkin
Reaksiyalar Ikkala tomon ham xabarga emoji reaksiya qo'ya oladi β€” reaksiyalar bir-biriga ko'rinadi
Ko'p til O'zbek πŸ‡ΊπŸ‡Ώ, Русский πŸ‡·πŸ‡Ί, English πŸ‡¬πŸ‡§ β€” foydalanuvchi tili avtomatik aniqlanadi
Spam himoya Rate limiting va spam so'zlar filtri
Sessiya boshqaruvi Xabar yuborilgach sessiya avtomatik yopiladi; "Yana so'ra" tugmasi qayta ochadi

πŸ“Š Admin Dashboard

Xususiyat Tavsif
Telegram-style chat Barcha suhbatlar Telegram'ga o'xshash interfeysdagi chat panelida ko'rsatiladi
Real-time yangilanish Yangi xabar kelishi bilan sahifa yangilanmasdan chat yangilanadi (Socket.io)
Media ko'rish Rasmlar, video, stiker, ovozli xabarlar to'g'ridan-to'g'ri dashboardda ko'rsatiladi
Reaksiyalar Kimning qanday emoji qo'ygani (sender / recipient) dashboardda alohida ko'rinadi
Foydalanuvchilar Barcha foydalanuvchilar ro'yxati, xabar tarixi, batafsil profil
Analytics DAU / WAU / MAU, yangi foydalanuvchilar, retention rate, eng faol soatlar heatmapi
HTTPS / SSL Let's Encrypt orqali avtomatik SSL sertifikat (Docker deploy'da)

πŸ—οΈ Arxitektura

foydal. ──→ Bot (grammY) ──→ MongoDB ←── Dashboard (Express)
                               β”‚                    β”‚
                          Change Streams       Socket.io
                               └──────────────────→ Browser

2 mustaqil servis, 1 MongoDB:

  • bot/ β€” Telegram bot (grammY kutubxonasi)
  • dashboard/ β€” Admin web panel (Express, EJS, Socket.io)
  • shared/ β€” Ikkala servis uchun umumiy Mongoose modellari

πŸš€ O'rnatish (Docker yordamida)

Talablar

1. Repo clone qilish

git clone <repo-url>
cd anonim-chat

2. .env fayl tayyorlash

cp .env.example .env

.env ichida to'ldiring:

# Bot
TELEGRAM_BOT_TOKEN=123456:ABCDEF...
BOT_USERNAME=your_bot_username
REVEAL_STARS_COST=50
PAY_SUPPORT_TEXT=Yordam: @your_admin

# Dashboard
ADMIN_USER=admin
ADMIN_PASS=murakkab_parol
SESSION_SECRET=kamida-32-belgili-tasodifiy-satr

# Deploy (HTTPS uchun)
DASHBOARD_DOMAIN=dashboard.example.com
LETSENCRYPT_EMAIL=you@example.com

# Ixtiyoriy
COOKIE_SECURE=true
TRUST_PROXY=1

3. Ishga tushirish

docker compose up -d --build

4. Tekshirish

docker compose logs -f bot
docker compose logs -f dashboard
  • Lokal: http://localhost:3000
  • Deploy: https://dashboard.example.com (SSL avtomatik)

πŸ”„ Reaksiyalar qanday ishlaydi

Telegram botga faqat 1 ta reaksiya kuzatishga ruxsat beradi. Tizim quyidagicha ishlaydi:

Owner xabarga πŸ˜‚ bosadi
    β””β†’ Bot anonim foydalanuvchining xabar nusxasiga ham πŸ˜‚ qo'yadi

Anonim foydalanuvchi πŸ”₯ bosadi
    β””β†’ Bot ownerning xabar nusxasiga ham πŸ”₯ qo'yadi

Har ikki tomon bir-birining reaksiyasini ko'radi. Dashboard'da ham ikkala reaksiya alohida ko'rsatiladi.


πŸ—‚οΈ Loyiha tuzilmasi

anonim-chat/
β”œβ”€β”€ bot/                    # Telegram bot
β”‚   β”œβ”€β”€ handlers/           # message, callback, reaction handlerlari
β”‚   β”œβ”€β”€ lib/                # i18n, spam guard, room logic
β”‚   └── locales/            # uz / ru / en tarjimalar
β”‚
β”œβ”€β”€ dashboard/              # Admin web panel
β”‚   β”œβ”€β”€ routes/             # chat, users, analytics, tg-media proxy
β”‚   β”œβ”€β”€ views/              # EJS shablonlar (Telegram-style dark UI)
β”‚   β”œβ”€β”€ public/             # CSS + client JS (Socket.io)
β”‚   └── services/           # realtime (Change Streams β†’ Socket.io)
β”‚
β”œβ”€β”€ shared/
β”‚   └── models/             # Message, User, Session, ConversationSummary
β”‚
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ INSTALL.md          # Docker-siz o'rnatish
β”‚   └── DEPLOY.md           # VPS deploy
└── .env

πŸ“± Bot buyruqlari

Buyruq Tavsif
/start Botni ishga tushirish
/getlink Shaxsiy anonim link olish
/lang Tilni o'zgartirish (uz / ru / en)
/help Yordam
/menu Asosiy menyu
/userstats Shaxsiy statistika
/cancel Joriy javob rejimini bekor qilish
/paysupport To'lov bo'yicha yordam

πŸ” Xavfsizlik

  • Dashboard faqat login/parol bilan kirish mumkin
  • CSRF himoya va helmet.js HTTP sarlavhalari
  • MongoDB ulanishi faqat ichki Docker tarmoqda (tashqari portga ochilmaydi)
  • Media fayllar Telegram CDN'dan bot token orqali proksi qilinadi β€” token brauzerga chiqmaydi

πŸ› οΈ Texnologiyalar

Qatlam Texnologiya
Bot Node.js, grammY
Dashboard Express.js, EJS, Socket.io
Ma'lumotlar bazasi MongoDB 7 (Replica Set)
Realtime MongoDB Change Streams β†’ Socket.io
Deploy Docker Compose, Nginx, Let's Encrypt
UI Telegram-style dark theme (vanilla CSS + EJS)

πŸ“– Qo'shimcha hujjatlar


πŸ“„ Litsenziya

MIT

About

Admin panel foydalanuvchilar va anonim xabar almashishni real vaqt rejimida boshqarish uchun, Telegram bot esa anonim xabar almashish, spam filtrlash va sessiyalarni nazorat qilish uchun ishlatiladi.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors