{"repo":"alexandru/social-publish","free":true,"listed":false,"github":"https://github.com/alexandru/social-publish","clone":"git clone https://github.com/alexandru/social-publish.git","description":"Self-hosted service that helps me share to multiple social media platforms at the same time.","language":"Kotlin","stars":62,"topics":["docker","social-media","bluesky-api","compose-multiplatform","kotlin","linkedin-api","mastodon-api"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"Social Publish In implementing POSSE (publish on your own site, syndicate elsewhere), I need to publish to multiple social networks. Social Publish provides direct API integration for X (Twitter), Mastodon, Bluesky, and LinkedIn, plus an RSS feed for automation. What it does - Publish the same post to multiple networks from one form - Upload images with alt-text, or let an LLM generate alt-text automatically - Provide an RSS feed for external automation tools like IFTTT - Per-user social credentials configured from the web UI (no per-platform environment variables to manage) Supported networks - X (Twitter) - Mastodon - Bluesky - LinkedIn Table of Contents - What it does - Supported networks - Self-hosting - Configuration - Bluesky credentials - Mastodon credentials - Twitter setup - LinkedIn setup - LLM setup (Optional) - CLI Commands - RSS feed - License Self-hosting My docker-compose setup: Configuration Where ./envs/social-publish.env contains: Social platform credentials (Bluesky, Mastodon, Twitter, LinkedIn) and the LLM configuration are per-user and are set from the web UI under /account . The first user is created with the CLI (see CLI Commands); additional users can self-register. Bluesky credentials For Bluesky, you'll need an \"app password\". - Go here to create one: - Copy the password - Set it from /account in the web UI Keep it safe, as it grants access to everything. Mastodon credentials For Mastodon, you'll need an \"access token\". Here's how to get one: - Go to","default_branch":null,"files":null,"tree":[],"storefront":"/r/alexandru","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/alexandru/social-publish/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}