1
0
Fork 0
Telegram bot to post messages from a Telegram group to Mastodon.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Daniele Tricoli 7fb169443c Add MASTODON_TOOT_FOOTER option key 7 months ago
cmd Add MASTODON_TOOT_FOOTER option key 7 months ago
.dockerignore Add dockerignore 7 months ago
.drone.yml Test sub packages 7 months ago
.gitignore Ignore the compiled bot 7 months ago
Dockerfile Upgrade all the packages on the final stage 7 months ago
LICENSE Initial import 7 months ago
README.md Update README with deploy info 7 months ago
docker-compose.yml Add a docker-compose file 7 months ago
go.mod Rename the project to telegram-group2mastodon 7 months ago
go.sum Switch to github.com/cking/go-mastodon 7 months ago
main.go Rename the project to telegram-group2mastodon 7 months ago

README.md

telegram-group2mastodon

telegram-group2mastodon is a Telegram bot to post messages from a Telegram group to Mastodon. It's written in Go and it is relased under the AGPL3+. Since the bot must be able to read all the messages you should use it only on public groups.

Installation

  1. Build the bot (for example if version is v0.1.0 and you are on a unix system):

    cd /tmp; GOPATH=/tmp/go go install noa.mornie.org/eriol/telegram-group2mastodon@v0.1.0
    

    You will find the binary at /tmp/go/bin/telegram-group2mastodon. You don't need to set GOPATH if you already have it set and you are fine having the bot installed there.

  2. Create your bot using Telegram @BotFather.

  3. The bot uses environment variables as configuration, you have to export the following (except variables with a default) before starting it:

    Variable Meaning Default
    MASTODON_ACCESS_TOKEN Mastodon access token N/A
    MASTODON_SERVER_ADDRESS Mastodon server address N/A
    MASTODON_TOOT_MAX_CHARACTERS Toot max lenght 500
    MASTODON_TOOT_VISIBILITY Default toot visibility unlisted
    TELEGRAM_BOT_TOKEN Telegram bot token N/A
    TELEGRAM_CHAT_ID Telegram alolowed chat id N/A
    TELEGRAM_DEBUG Debug messages from Telegram False

    MASTODON_TOOT_VISIBILITY allowed values are: direct, private, public and unlisted. To get MASTODON_ACCESS_TOKEN see next point.

  4. To get MASTODON_ACCESS_TOKEN use the subcommand authenticate:

    telegram-group2mastodon authenticate
    

    and follow the istructions.

  5. Launch the bot:

    telegram-group2mastodon run
    

Deploy using Docker/Podman

Images are automatically built after each push on quay.io, here the list of available tags: https://quay.io/repository/eriol/telegram-group2mastodon?tab=tags

docker

Suppose you want to use the latest tag.

docker run \
    --env MASTODON_ACCESS_TOKEN=$MASTODON_ACCESS_TOKEN \
    --env MASTODON_SERVER_ADDRESS=$MASTODON_SERVER_ADDRESS \
    --env TELEGRAM_BOT_TOKEN=$TELEGRAM_BOT_TOKEN \
    --env TELEGRAM_CHAT_ID=$TELEGRAM_CHAT_ID \
    quay.io/eriol/telegram-group2mastodon:latest

podman

Suppose you want to use the latest tag.

podman run \
    --env MASTODON_ACCESS_TOKEN=$MASTODON_ACCESS_TOKEN \
    --env MASTODON_SERVER_ADDRESS=$MASTODON_SERVER_ADDRESS \
    --env TELEGRAM_BOT_TOKEN=$TELEGRAM_BOT_TOKEN \
    --env TELEGRAM_CHAT_ID=$TELEGRAM_CHAT_ID \
    quay.io/eriol/telegram-group2mastodon:latest

docker-compose

---
version: "3.9"

services:
  bot:
    image: quay.io/eriol/telegram-group2mastodon:latest
    environment:
      - MASTODON_ACCESS_TOKEN=${MASTODON_ACCESS_TOKEN}
      - MASTODON_SERVER_ADDRESS=${MASTODON_SERVER_ADDRESS}
      - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
      - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID}