Skip to main content
On a self-hosted PostQueen, most networks talk to PostQueen through a developer app that you register with the network yourself. You set the app’s keys as environment variables, restart PostQueen, and the network then connects from Add Channel. Eight networks need no app at all: the person connecting types a key or a login into the connect form, or, for Moltbook, registers an agent.

How it works

1

Register the app with the network

Each network’s setup page walks through its developer console, the permissions to ask for and the review, if any.
2

Add the redirect URI

For a sign-in network, the redirect URI is FRONTEND_URL + /integrations/social/ + the ending in the table below, with no trailing slash unless the table shows one. Pinterest’s, for example, is https://postqueen.example.com/integrations/social/pinterest. A network that accepts only https redirects needs a different address on a plain http install; its page gives it.
3

Set the variables and restart

Put the keys in your environment and recreate the app container so it reads them. Configuration reference lists every variable.
4

Connect the channel

Open Channels, choose Add Channel and pick the network.
Add Channel lists every network whether or not its keys are set. A network with missing or wrong keys fails on its own authorization page, not with a message in PostQueen. To take a network out of the list, use HIDDEN_PROVIDERS.

Networks that need a developer app

Two names break the pattern: Kick’s secret is KICK_SECRET, and Dribbble’s variables spell it with three b characters.

Meta callback URLs

Meta calls PostQueen when someone removes one of your Meta apps from their account, or asks for their data to be deleted. Each Meta app takes one pair of callback URLs, on NEXT_PUBLIC_BACKEND_URL: With the backend at https://postqueen.example.com/api, the Facebook app’s first URL is https://postqueen.example.com/api/integrations/facebook/platform-deauthorize. A deauthorize request flags that person’s channels for reconnection, and a deletion request deletes the channels and their posts. Meta only calls a public https address, so a local install can skip them. Each Meta setup page shows where the URLs go in the app dashboard.

Networks that need no developer app

These eight read no variable, so they work as soon as PostQueen runs. The person connecting enters their own key or login in the connect form, or registers a Moltbook agent: Things to know on your own server:
  • Addresses on private networks are refused. The Bluesky service, the Lemmy instance, the WordPress site and the Listmonk server must resolve to public addresses, because outgoing requests are guarded against private and local ranges. Set DISABLE_SSRF_PROTECTION=true only when one of them lives on your own network and you trust everyone who can connect a channel.
  • LISTMONK_* does not configure the Listmonk channel. Those variables choose the newsletter that new sign-ups are added to. The channel takes its URL and API user in the connect form.
  • Hashnode cover images need public URLs. With local storage, a cover’s path is made absolute with NEXT_PUBLIC_BACKEND_URL and NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY, and Hashnode must be able to download it from there.
  • Nostr uses a fixed set of relays: nos.lol, relay.damus.io, relay.snort.social, temp.iris.to and vault.iris.to. There is no variable to change them.
Last modified on September 23, 2026