Deploy Postiz Threads

Schedule Threads posts from your own Postiz instance

Deploy Postiz Threads

Just deployed

/data

/var/lib/postgresql/data

Just deployed

/uploads

Just deployed

Deploy and Host self hosted Postiz Threads (Self-Hosted Threads Scheduling Setup) on Railway

Postiz Threads is a Railway template for a self-hosted Postiz instance set up to publish to Threads.

About Hosting Postiz Threads open-source software on Railway (self hosted Threads scheduling in self-hosted Postiz template)

Running Postiz on Railway keeps your posts, account connections and scheduling history in your own Postgres database.

The template runs postiz, Temporal 1.28.1, Postgres 18 and Redis 8.2.

Why Deploy Postiz Threads, the Buffer alternative on Railway (Railway Free Trial)

Buffer bills per channel, so every extra Threads account raises the cost.

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Postiz Threads on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

Railway vs Other Hosting Providers and VPS for Postiz Threads self hosting

Postiz Threads runs four services, so your hosting choice decides how much you maintain.

ProviderWhat You Get with RailwayWhat You Get with the Other Provider
DigitalOceanA template with all four services wired together and a public HTTPS domain.A Droplet with root access, but you install Docker and renew certificates.
AWSOne template for the full stack with per-service usage billing.Deep control, but the Meta callback and private Temporal setup take real effort.
HetznerDomain and networking handled, so the Threads redirect URL resolves without DNS work.Cheap RAM, but you own the Docker install, reverse proxy and TLS.

If you already run a VPS and know Docker well, the cheaper box may win on cost, but Railway gets a working Threads connection faster.

Common Use Cases for hosted Postiz Threads

  • Scheduling a week of posts: Queue a week of single Threads posts from a content calendar in one sitting. Temporal publishes each one at its scheduled time, so your laptop can stay closed.

  • Publishing multi-post threads: Each entry in the Postiz value list becomes a reply to the post before it, so a five-part thread schedules as one unit.

  • Avoiding per-channel SaaS fees: Running Postiz on your own Railway service swaps a per-channel subscription for a usage-based bill.

  • Keeping Meta credentials on your own service: THREADS_APP_ID and THREADS_APP_SECRET live as variables on your postiz service, so you can rotate the secret yourself.

  • Testing the token before going live: Generate a token in the Open Graph API Explorer using the threads.net v1 selector. A long alphanumeric token confirms your Meta app and tester setup work.

Dependencies for Postiz Threads Docker hosted on Railway

This template runs four services, and Threads depends on the backend reading two Meta credentials at startup.

Deployment Dependencies for Managed Postiz Threads Service (Social Media Scheduler)

  • postiz: the official Postiz image, public on port 5000, with a volume at /uploads and a health check on /.
  • Temporal 1.28.1: fires scheduled posts, stays private on port 7233, and stores its data in Postgres.
  • Postgres 18: the database for Postiz and Temporal, with its own volume.
  • Redis 8.2: the cache and queue store, with its own volume.

If Temporal cannot reach Postgres, scheduled Threads posts will sit in the queue and never publish.

Implementation Details for Postiz Threads (Using Postiz official docker image)

Set THREADS_APP_ID and THREADS_APP_SECRET on the postiz service.

THREADS_APP_ID=your-threads-app-id
THREADS_APP_SECRET=your-threads-app-secret
MAIN_URL=https://RAILWAY_PUBLIC_DOMAIN
FRONTEND_URL=https://RAILWAY_PUBLIC_DOMAIN
NEXT_PUBLIC_BACKEND_URL=https://RAILWAY_PUBLIC_DOMAIN/api
JWT_SECRET=generated-64-character-value
TEMPORAL_ADDRESS=temporal-private-domain:7233
STORAGE_PROVIDER=local
UPLOAD_DIRECTORY=/uploads
NOT_SECURED=true
DISABLE_REGISTRATION=false

Keep NOT_SECURED=true while you sign in on the default up.railway.app domain, since the login cookie needs it there.

How does Postiz Threads compare against other ways to schedule Threads posts from your own server

Postiz Threads vs Buffer (SaaS Social Scheduler Alternative)

  • Where Buffer wins: It is a hosted product with no Meta app, env vars, or redirect URLs to manage, so you can start scheduling in minutes.
  • Where Postiz Threads wins: You own the instance and the Meta app credentials, and you avoid per-channel SaaS subscriptions.
  • Setup difference: Postiz needs THREADS_APP_ID and THREADS_APP_SECRET set on the postiz service, plus a redirect URI on your Railway domain before Threads shows up in Add Channel.

Postiz Threads vs Hootsuite (Enterprise SaaS Alternative)

  • Where Hootsuite wins: It suits larger teams that need approval workflows, reporting, and vendor support.
  • Where Postiz Threads wins: A small team can run it on Railway without paying per-user enterprise pricing.
  • Trade-off: You are responsible for keeping the Temporal, Postgres, and Redis services healthy, since scheduled posts depend on Temporal.

Postiz Threads vs Meta Business Suite (Meta Free Tool Alternative)

  • Where Meta Business Suite wins: It is free, first-party, and needs no app registration or token generation on your side.
  • Where Postiz Threads wins: It lets you schedule across 20+ networks from one dashboard, with multi-post threads where each entry chains as a reply.
  • Unverified: I have not confirmed how far Meta Business Suite supports Threads scheduling, so check Meta's current feature list before you choose it for Threads.

Postiz Threads vs Typefully (Writing Tool Alternative)

  • Where Typefully wins: It is a polished writing environment focused on X and LinkedIn, with a smoother drafting experience.
  • Where Postiz Threads wins: It covers Threads alongside many other networks, and you keep your data on your own Railway service.
  • Unverified: I have not verified Threads-specific support details for Typefully, so confirm them directly with that product before relying on them.

How to use Postiz Threads (the OSS social media scheduler)?

Get Threads working on Railway in this order, since a missing ID hides the channel.

  1. Create the Meta app at developers.facebook.com/apps/creation/ and select "Access the Threads API." If you see "no business portfolios," enable 2FA at business.facebook.com/latest/settings/business_users. 2. Add threads_content_publish and threads_basic. 3. On the Settings tab, copy the Threads App ID and App Secret. 4.
THREADS_APP_ID=your-threads-app-id
THREADS_APP_SECRET=your-threads-app-secret
MAIN_URL=https://RAILWAY_PUBLIC_DOMAIN
FRONTEND_URL=https://RAILWAY_PUBLIC_DOMAIN
NEXT_PUBLIC_BACKEND_URL=https://RAILWAY_PUBLIC_DOMAIN/api

How to self host Postiz Threads on other VPS Services (Postiz self hosting guide)

Running Postiz on a plain VPS works like the Railway template, but you handle every step.

Clone the Repository

Pull the upstream code and move into the folder.

git clone https://github.com/gitroomhq/postiz-app.git
cd postiz-app

Install Dependencies

Confirm Docker and the Compose plugin are installed.

docker --version
docker compose version

Configure Environment Variables

Copy the example env file, then point the public URLs at your-domain over HTTPS, since Threads OAuth needs it.

cp .env.example .env
# MAIN_URL, FRONTEND_URL, NEXT_PUBLIC_BACKEND_URL use your-domain
# THREADS_APP_ID=your-threads-app-id
# THREADS_APP_SECRET=your-threads-app-secret

Set the Meta redirect URI to https://your-domain/integrations/social/threads and click it once so the form saves.

Start the Postiz Threads Application

Bring the stack up, then restart so the backend reads the Threads variables.

docker compose up -d
docker compose restart

Railway handles the Postgres, Redis and Temporal services, the HTTPS domain and restarts for you.

Official Pricing of Postiz Threads (Postiz pricing)

Postiz itself is free and open source under AGPL-3.0, so there is no license fee to pay for the self-hosted version.

Postiz Threads cloud vs self hosted comparison (Pricing, features, costs, and more)

Postiz offers a hosted cloud at postiz.com with paid monthly plans, while self hosting is free software you run yourself.

Monthly cost of self hosting Postiz Threads on Railway

The Postiz software costs nothing, but Railway bills for the services it runs.

System Requirements for Hosting Postiz Threads on a VPS

Running the official Docker Compose setup on a VPS needs roughly 2 GB of RAM or more, since Postiz, Temporal, Postgres and Redis run together.

Frequently Asked Questions (FAQs)

Why does Threads not appear in the Add Channel dialog?

Postiz only offers Threads once THREADS_APP_ID and THREADS_APP_SECRET are set on the postiz service and the app has restarted.

Why does the redirect URL form not save?

Usually the URL was never activated.

Do I need the Uninstall and Delete callback URLs?

Both forms need a value to save, but Postiz does not support either callback yet.

Why do I need 2FA for the Threads API?

If you see "There are no business portfolios available to connect to this app," your Meta account needs Two-Factor Authentication enabled.

How do I add my Threads account as a tester?

Go to App roles, then roles, open the Testers tab, and add a person with the Threads Tester role using your Threads username.

How do I verify the token works?

In Testing and the Open Graph API Explorer, set the API selector to threads.net v1 and click Generate Threads Access Token.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
50
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51