Telegram bot with state management and localization. Work example - https://imgur.com/0V3fsdD
You can use this as a template for your projects.
Using: Go, Mongodb, Elasticsearch, Kibana, VictoriaMetrics, Grafana, Docker, Docker Compose
cp .env.example .env
For example:
ENV=prod
# Telegram bot
TELEGRAM_BOT_TOKEN=example-telegram-token
# Rest api for administrator
ADMIN_API_TOKEN=example-token
# Mongodb
MONGO_USERNAME=admin
MONGO_PASSWORD=<your_mongo_admin_password>
MONGO_DATABASE=tradeUnion
cp ./configs/local.yaml ./configs/prod.yaml
For example use nano editor:
nano ./configs/prod.yaml
Initialize environment:
source .env
Run with docker-compose:
docker-compose up --build -d
Or run for local development and debug
docker-compose --file ./docker-compose.mongo.yml up --build -d
go run ./cmd/trade-union/main.go
Edit your config:
victoria_metrics:
metrics_enabled: true
Run victoria metrics + grafana
docker-compose --file ./docker-compose.vm.yml up --build -d
Open Grafana on http://localhost:3000/ and sign in with default credentials admin:admin and change password
Edit your config:
logger:
elastic:
enable: true
Set environment variables
nano .env
For example
ELASTIC_USERNAME=elastic
ELASTIC_PASSWORD=<your_elastic_password>
KIBANA_USERNAME=kibana_system
KIBANA_PASSWORD=<your_kibana_system_password>
Run elasticsearch + kibana
docker-compose --file ./docker-compose.elk.yml up --build -d
Open kibana on http://localhost:5601/ and sign in with your credentials from environment