Documentation
Getting started
Run a private Telegram bot that crossposts text and media to your social accounts.
shitpost is a small Go service that listens to your Telegram bot, downloads incoming media when needed, and calls the crosspost CLI with the platform flags you choose.
The happy path is:
- Create a Telegram bot with BotFather.
- Create a
.envfile from.env.example. - Add your Telegram token and the platform credentials you need.
- Start in dry-run mode.
- Send a message to your bot and inspect the command preview.
- Disable dry-run when the output looks right.
curl -o .env https://raw.githubusercontent.com/bupd/shitpost/main/.env.example
docker run -d --name shitpost \
--env-file .env \
-v ./downloads:/app/downloads \
registry.goharbor.io/bupd/shitpost:latest
What it does
- Accepts Telegram text messages and posts them through
crosspost. - Accepts Telegram photos, downloads the largest image, and passes it to
crosspostwith optional alt text. - Accepts video and document uploads, stores them locally, and posts caption text when the installed
crosspostmedia path cannot attach them. - Replies back in Telegram with the
crosspostlogs or the dry-run command preview. - Can restrict usage to specific Telegram usernames or numeric user IDs.
What to read next
- Installation for Docker, Compose, and local development.
- Authentication for Telegram and platform tokens.
- Configuration for every environment variable.
- Architecture for the full request flow.