Categorygithub.com/HugeFrog24/go-telegram-bot
repositorypackage
1.0.1
Repository: https://github.com/hugefrog24/go-telegram-bot.git
Documentation: pkg.go.dev

# README

Go Telegram Multibot

A scalable, multi-bot solution for Telegram using Go, GORM, and the Anthropic API.

Design Considerations

  • AI-powered
  • Supports multiple bot profiles
  • Uses SQLite for persistence
  • Implements rate limiting and user management
  • Modular architecture
  • Comprehensive unit tests

Usage

  1. Clone the repository or install using go get:

    • Option 1: Clone the repository

      git clone https://github.com/HugeFrog24/go-telegram-bot.git
      
    • Option 2: Install using go get

      go get -u github.com/HugeFrog24/go-telegram-bot
      
    • Navigate to the project directory:

      cd go-telegram-bot
      
  2. Copy the default config template and edit it:

    cp config/default.json config/config-mybot.json
    

    Replace config-mybot.json with the name of your bot.

    nano config/config-mybot.json
    

    You can set up as many bots as you want. Just copy the template and edit the parameters.

[!IMPORTANT]
Keep your config files secret and do not commit them to version control.

  1. Build the application:
    go build -o telegram-bot
    

Systemd Unit Setup

To enable the bot to start automatically on system boot and run in the background, set up a systemd unit.

  1. Copy the systemd unit template and edit it:

    sudo cp examples/systemd/telegram-bot.service /etc/systemd/system/telegram-bot.service
    

    Edit the service file:

    nano /etc/systemd/system/telegram-bot.service
    

    Adjust the following parameters:

    • WorkingDirectory
    • ExecStart
    • User
  2. Enable and start the service:

    sudo systemctl daemon-reload
    
    sudo systemctl enable telegram-bot.service
    
    sudo systemctl start telegram-bot.service
    
  3. Check the status:

    sudo systemctl status telegram-bot
    

For more details on the systemd setup, refer to the demo service file.

Logs

View logs using journalctl:

journalctl -u telegram-bot

Follow logs:

journalctl -u telegram-bot -f

View errors:

journalctl -u telegram-bot -p err