5 Commits

Author SHA1 Message Date
b7853637bc feat: Add CI/CD pipeline and deployment automation
GitHub Actions Workflow:
- Automatic build on push to main/develop
- Build on tags (v*.*.*)
- Multi-platform support (linux/amd64)
- Publish to ghcr.io registry
- Docker layer caching
- Metadata extraction for tags

Build Scripts (Linux + Windows):
- build-image.sh/bat: Build and publish to registry
- Registry authentication check
- Image testing before push
- Configurable registry (default: ghcr.io)

Deployment Scripts (Linux + Windows):
- deploy-prod.sh/bat: Production deployment automation
- Pre-deployment checks (.env.prod validation)
- Automatic backup before deploy
- Image pull and stack deployment
- Health check verification
- Rollback support
2025-11-03 14:21:19 +03:00
4800e8c375 feat: Add production Docker orchestration with monitoring
Production Stack (7 services):
- buh_bot: Main bot from registry (1 CPU, 1GB RAM)
- nginx: Reverse proxy with rate limiting (10 req/s)
- prometheus: Metrics collection (30d retention)
- grafana: Monitoring dashboards (port 3000)
- node_exporter: Host metrics (port 9100)
- cadvisor: Container metrics (port 8080)
- watchtower: Auto-updates (hourly check)

Configuration:
- docker-compose.prod.yml with 7-service stack
- nginx.conf with SSL-ready config and healthchecks
- prometheus.yml with scrape configs
- grafana datasource and dashboard provisioning
- .env.prod.example template
- Custom network 172.20.0.0/16
- Persistent volumes in /var/lib/buh_bot
- Log rotation: 50MB x 5 files
2025-11-03 14:20:48 +03:00
b75b8e62a6 feat: Add Docker containerization for development
- Add Dockerfile with Python 3.11-slim base
- Add docker-compose.yml for local development
- Add .dockerignore to optimize build context
- Add start/stop scripts for Linux and Windows
- Add .env.example template
- Configure volumes for data, logs, temp_documents
- Add healthcheck with 30s interval
- Resource limits: 0.5 CPU, 512MB RAM
2025-11-03 14:20:26 +03:00
e24ef22337 feat: Add multi-user authentication system
- Implement per-user МойСклад credentials storage
- Add Fernet encryption for passwords (AES-128)
- Add UserManager module for credential management
- Add /logout and /change_credentials commands
- Update bot.py with AUTH_LOGIN/AUTH_PASSWORD states
- Each user works with their own МойСклад account
- Credentials stored in encrypted users.json
2025-11-03 14:20:07 +03:00
5b6ab02e53 Initial commit: Core bot application
- Add main bot file with Telegram handlers
- Add configuration module
- Add Python dependencies
- Add modules: excel_generator, moysklad_client, xml_generator, user_manager
- Add .gitignore for Python, Docker, user data
2025-11-03 14:19:48 +03:00