A meeting and matching platform with Telegram bot integration, deployed on Yandex Cloud serverless infrastructure.
- User profile management
- Event creation and management
- Intelligent matching system using ML
- Telegram bot integration for notifications
- PostgreSQL database backend
- Yandex Cloud serverless deployment
Serverless Infrastructure:
- Yandex Serverless Containers - Auto-scaling API and Bot
- Yandex Managed PostgreSQL - Fully managed database
- Yandex Container Registry - Private Docker registry
- Yandex Lockbox - Secure secret storage
- Clone the repository
- Start PostgreSQL:
cd Meethub docker-compose up -d postgres - Run the API:
dotnet run --project Meethub/Meethub.csproj
Deploy complete serverless infrastructure:
cd terraform
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your credentials
terraform init
terraform applyFor detailed deployment instructions, see:
- terraform/README.md - Serverless deployment guide
- MIGRATION_GUIDE.md - Migration from VM-based deployment
- Terraform README - Infrastructure deployment
- Migration Guide - VM to serverless migration
- Bot Implementation - Bot requirements and templates
- Deployment Guide - Legacy VM deployment (deprecated)
No Server Management:
- No VMs to maintain
- No OS updates
- Automatic scaling
- Built-in high availability
Cost Optimization:
- Pay only for actual usage
- ~$25-40/month for light traffic
- Scales automatically with demand
Security:
- Secrets in Yandex Lockbox
- IAM-based access control
- Managed database security
- No exposed SSH ports
- .NET 8 Web API
- PostgreSQL 15 database
- ML-based matching algorithms
- Telegram Bot integration
MIT
Я НА ЛИНУКСЕ, ПОТОМУ ГАЙД НА ЛИНУКС!!! ЕСЛИ ТЫ НА ВИНДЕ, ТО ВСЕ АНАЛОГИЧНО, НО БЕЗ SUDO!!!
В Meethub:
sudo systemctl start docker (если на винде, то не нужно)
sudo docker-compose up -d
dotnet run Переменные окружения передавать вот так (лучше в Bot, но вроде без разницы):
export API_KEY=ваш_ключ_апи BOT_TOKEN=ваш_токен API_URL=ваш_урл BOT_NAME=ваше_имя_ботаИли так:
sudo docker run --env BOT_TOKEN=ваш_токен --env API_KEY=ваш_ключ --env API_URL=ваш_url --env BOT_NAME=ваше_имя_бота ваш_образ(Можно еще в docker-compose.yml передавать переменные)
В Bot:
python -m venv .venv
source .venv/bin/activate (на винде не знаю как, это для линукса)
pip install -r requirements.txt
python main.pyМенять таймаут метчинга и автоматического отклонения метча можно в Bot/config.py