Self-hosting
Self-host it, or let us run it
Run the open-source core on your own server. You'll need Docker for Postgres, Redis and Temporal, Node.js for the apps, and PM2 to keep them running. Here's the short version.
What you need
- A Linux server with 2 vCPU and 4 GB RAM or more
- Docker and Docker Compose
- Node.js 22+ and pnpm
- A domain with HTTPS (a reverse proxy like Caddy or Nginx)
- Developer apps for each network you want to post to
Deploy in six steps
A summary of the deploy guide. Read the repository docs for every environment variable.
- 1
Clone the repository
Get the source and install dependencies with pnpm.
Clone the repository git clone https://github.com/postoni/postoni.git cd postoni pnpm install - 2
Start the infrastructure
Run Postgres, Redis and Temporal with Docker Compose. Temporal runs the scheduled-post workflows.
Start the infrastructure docker compose up -d postgres redis temporal - 3
Configure your environment
Copy the example env file and set your domain, database URL, Redis URL, Temporal address and a long random secret.
Configure your environment cp .env.example .env # set APP_URL, DATABASE_URL, REDIS_URL, # TEMPORAL_ADDRESS and JWT_SECRET - 4
Migrate and build
Push the Prisma schema to Postgres, then build the web app, the API and the orchestrator.
Migrate and build pnpm db:push pnpm build - 5
Run with PM2
Start the web app, API and orchestrator under PM2 so they restart on crashes and reboots.
Run with PM2 pnpm pm2:start pnpm pm2:startup - 6
Connect your networks
Create a developer app on each network, add its keys to the env file and restart. Then connect channels in the app.
Connect your networks # add X_API_KEY, LINKEDIN_CLIENT_ID, … pnpm pm2:reload
Before you start
Network app reviews take time
Meta, TikTok, LinkedIn and Google review apps before they allow posting for everyone. Plan days or weeks, not minutes.
AGPL-3.0 applies
If you modify the code and offer it as a service to others, you must share your changes under the same license.
Back up Postgres
Your posts, channels and tokens live in Postgres. Schedule regular backups and test a restore.
Rather not run servers?
Postoni cloud runs the same core with every network app approved, updates and backups handled, and humans on support. From $29/month, free for 7 days.
Self-hosting FAQ
Is self-hosting really free?
Yes. The core is open source under AGPL-3.0. You pay only for your server and any third-party services you choose to use.
Do I get all the channels?
The open-source core includes the same 30+ network integrations. Each one needs its own developer app and keys, which you set up yourself.
Why is Temporal required?
Temporal runs the background workflows that publish posts at the right time, retry failures and refresh tokens. It's what makes scheduling reliable.
Can I move from self-hosted to Postoni cloud later?
Yes. Create a Postoni account, reconnect your channels and recreate your queue. Your self-hosted instance keeps working until you turn it off.
Read the code, or let us run it.
Either way, you get the same scheduler. Try the hosted version free for 7 days.