Social media cross-posting
Astropress supports two self-hosted social media schedulers. Both run as Docker Compose stacks and connect to the same platforms your audience uses.
Postiz
Postiz is an open-source social media scheduling platform (AGPL-3.0) made by GitRoom. It supports the broadest platform list of the two options and includes an AI caption assistant.
| Attribute | Detail |
|---|---|
| Licence | AGPL-3.0 |
| Image | ghcr.io/gitroomhq/postiz-app:latest |
| Platforms | LinkedIn, Bluesky, Mastodon, Twitter/X, Instagram, TikTok, Pinterest, Reddit, Threads, Facebook, YouTube |
| Hosting | Self-hosted Docker Compose (Postgres + Redis) |
astropress new my-site --social postizastropress add --social postiz # existing projectScaffolding writes postiz/docker-compose.yml, postiz/.env.postiz.example,
and env stubs for POSTIZ_URL and POSTIZ_API_TOKEN.
Setup
-
Copy and edit the env file:
Terminal window cd postizcp .env.postiz.example .env.postiz# Set POSTIZ_DB_PASSWORD, JWT_SECRET, and MAIN_URL# Update DATABASE_URL to match POSTIZ_DB_PASSWORD -
Start the stack:
Terminal window docker compose --env-file .env.postiz up -d -
Open
http://localhost:5000, create your admin account, then connect platforms at Settings → Socials.
When it’s the right choice:
- You need LinkedIn and Bluesky alongside Mastodon and Twitter/X
- You want an AI assistant to help write captions
- You’re publishing across more than 4–5 platforms
Limitations:
- AGPL-3.0 — if you distribute a modified version, you must publish the source
- Heavier stack than Mixpost (Node.js app + Postgres + Redis)
Further reading: docs.postiz.com
Mixpost
Mixpost is a social media scheduling tool (MIT community edition) by Inovector. It is lighter and simpler than Postiz, with a clean UI and MIT licensing.
| Attribute | Detail |
|---|---|
| Licence | MIT (community edition) |
| Image | inovector/mixpost:latest |
| Platforms | Twitter/X, Facebook, Instagram, LinkedIn, Pinterest, TikTok, Mastodon |
| Hosting | Self-hosted Docker Compose (Postgres + Redis) |
astropress new my-site --social mixpostastropress add --social mixpost # existing projectScaffolding writes mixpost/docker-compose.yml, mixpost/.env.mixpost.example,
and env stubs for MIXPOST_URL and MIXPOST_API_TOKEN.
Setup
-
Copy and edit the env file:
Terminal window cd mixpostcp .env.mixpost.example .env.mixpost# Set MIXPOST_DB_PASSWORD, DB_PASSWORD, and APP_KEY -
Start the stack:
Terminal window docker compose --env-file .env.mixpost up -d -
Open
http://localhost:8080to create your account.
When it’s the right choice:
- You want MIT licensing with no copyleft requirements
- You don’t need Bluesky or YouTube
- You prefer a simpler, lighter deployment
Limitations:
- Bluesky is not supported in the community edition (only in the Pro/Enterprise plan)
- Smaller platform list than Postiz
Further reading: mixpost.app/docs
Platform comparison
| Platform | Postiz | Mixpost |
|---|---|---|
| Yes | Yes | |
| Bluesky | Yes | No (community) |
| Mastodon | Yes | Yes |
| Twitter/X | Yes | Yes |
| Yes | Yes | |
| TikTok | Yes | Yes |
| Yes | Yes | |
| Yes | No | |
| Threads | Yes | No |
| Yes | Yes | |
| YouTube | Yes | No |
| Licence | AGPL-3.0 | MIT |
Relationship to ActivityPub federation
PeerTube and Castopod (selected under Video and Podcast) already federate natively over ActivityPub — followers on Mastodon, Pixelfed, and other Fediverse instances see new uploads automatically without any cross-posting tool. Postiz/Mixpost complement this by pushing to centralised platforms (LinkedIn, Instagram, TikTok, etc.) that do not speak ActivityPub.