postify.notparody.ru
Посты из Telegram в Discord.
И обратно.
Postify — минималистичный мост TG ↔ DS. Маршруты в YAML, медиа и правки из коробки, деплой в Docker за две минуты.
docker compose up -d --build # и всё работает
Возможности
Два направления
tg_to_ds и ds_to_tg. Двусторонний мост — просто два маршрута.
YAML-маршруты
Несколько каналов, топики, разные шаблоны подписи автора.
Медиа
Фото, видео, документы, аудио. Лимит размера настраивается.
Фильтры
Белый список авторов, стоп-слова, минимальная длина, топики.
Правки
Отредактированный пост помечается ✏️ и пересылается повторно.
Без зацикливания
Игнор ботов + dedup-кэш. Двусторонний мост не уходит в петлю.
Запуск за 2 минуты
- Токены. Telegram — @BotFather, Discord — Developer Portal (включите intent Message Content). Положите в
.env. - Маршруты. Скопируйте
config.example.yaml → config.yaml, впишитеchat_idиchannel_id. - Старт.
docker compose up -d --build, логи —docker compose logs -f.
cp .env.example .env
cp config.example.yaml config.yaml
docker compose up -d --build
Конфиг
routes:
- id: tg_news_to_ds
direction: tg_to_ds
source: { type: telegram, chat_id: -1001234567890 }
target: { type: discord, channel_id: "123456789012345678" }
options:
header_template: "📨 {author}"
- id: ds_news_to_tg
direction: ds_to_tg
source: { type: discord, channel_id: "123456789012345678" }
target: { type: telegram, chat_id: -1001234567890 }
Полный пример с фильтрами — в config.example.yaml. Проверка без запуска: python -m postify --check.
FAQ
Нужен ли номер телефона / MTProto?
Нет. Только Bot API Telegram и обычный Discord-бот. Достаточно прав на чтение и отправку.
Длинные посты обрезаются?
Нет. Для Discord текст чанкуется по ~1900 символов, для Telegram подпись + доводка остатка.
Куда деплоить лендинг?
Это статика из папки landing/. Любой хостинг + A/CNAME на postify.notparody.ru. Готовый конфиг nginx — в nginx/.