TelegramRSS
RSS/JSON generator for telegram
Get posts from my TelegramApiServer and output them as RSS or JSON.
Features
- Fast async amphp http server
- Use as micro-service to access Telegram API
- Get any public telegram posts from groups as json or RSS
- fail2ban, RPM limits, IP blacklist
- Full media support. Access any media from messages via direct links.
Architecture Example
Installation
- Install docker
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh ./get-docker.sh --dry-run
- Install and start Telegram Api Server
- Install and start
git clone https://github.com/xtrime-ru/TelegramRSS.git TelegramRSS cd TelegramRSS docker compose pull docker compose up -d
Upgrade to v4
git pull
docker compose pull
cp .env.docker .env.docker.v1
cat .env.docker.example > .env.docker
#check new config and move old options from your .env.docker.v1 to new .env.docker
docker compose up -d
Additional steps
- Edit
.env.docker
if needed. - Restart RSS server
docker compose restart
- Example of Nginx config
Set
server { listen %ip%:443 ssl; server_name tg.i-c-a.su; ssl_certificate /home/admin/conf/web/ssl.tg.i-c-a.su.pem; ssl_certificate_key /home/admin/conf/web/ssl.tg.i-c-a.su.key; location / { proxy_set_header Host $http_host; proxy_set_header SERVER_PORT $server_port; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; fastcgi_param REMOTE_ADDR $http_x_real_ip; proxy_http_version 1.1; proxy_set_header Connection "keep-alive"; proxy_pass http://127.0.0.1:9504; } }
REAL_IP_HEADER=X-Forwarded-For
in .env.docker to retrieve client IP from nginx.
Examples
JSON
-
Custom limit: https://tg.i-c-a.su/json/breakingmash?limit=50
Maximum: 100 posts
-
Pagination: https://tg.i-c-a.su/json/breakingmash?page=2
RSS
-
Custom limit: https://tg.i-c-a.su/rss/breakingmash?limit=50
Maximum: 100 posts
-
Pagination: https://tg.i-c-a.su/rss/breakingmash/2
Media
Default address of RSS server is http://127.0.0.1:9504/
Contacts
- Telegram: @xtrime
- Email: alexander(at)i-c-a.su