Hardware
Recommended starting point for a small team (≤ 20 users):
The official Docker Compose has been tested on a 2 GB / 2 vCPU Ubuntu
VM running everything on one host (see Docker Compose).
That works for a single-user install with occasional posting, but
leaves no headroom — once you have multiple users, scheduled
workflows, or external Postgres/Redis on the same host, plan for
4 GB or more.
The build step (
pnpm install / pnpm build from source) is the most
memory-hungry part and can OOM on 2 GB VMs. Bump the Node heap if it
fails:
Recommended install path
The canonical self-host setup is the official Docker Compose repo:postiz-docker-compose
Pre-wired Postiz + Postgres + Redis + Temporal. The fastest way to a working install.
Required services
Postiz needs four external services:
The official docker-compose
ships Postgres, Redis, and Temporal pre-wired. If you’re running them
externally, point Postiz at them via
DATABASE_URL, REDIS_URL, and
TEMPORAL_ADDRESS.
Default ports
Filesystem
IfSTORAGE_PROVIDER=local, set UPLOAD_DIRECTORY to a host path and
mount that path into the backend container. The frontend serves the
same files through /uploads/:path*. See Uploads & storage.
If you’d rather offload media: configure Cloudflare R2.
Outbound network
Postiz initiates outbound HTTPS to every social provider you connect. Strict egress firewalls will break OAuth — make sure the backend can reach:api.twitter.com,upload.twitter.comgraph.facebook.com,graph.instagram.com,graph.threads.netlinkedin.com,api.linkedin.comopenapi.tiktok.com,open.tiktokapis.comgoogleapis.com(YouTube + GMB)- the Mastodon instance you configure via
MASTODON_URL - any other provider you intend to use
HTTPS_PROXY and HTTP_PROXY
on the backend.
Inbound network
The frontend talks to the backend from the browser, soNEXT_PUBLIC_BACKEND_URL must be reachable from your users’ browsers,
not just from the frontend SSR server. A reverse proxy in front of both
ports is the typical setup — see Reverse Proxies.
